Перейти к содержанию

Автозапуск На Pic12F508 Подредактировать Исходник!


Misha161

Рекомендуемые сообщения

Ребята Помогите! кто знает ассемблер, и пишет прошивки, можете подредактировать одно значение! :help: , собрал автозапуск на PIC12F508, и не устраивает что время работы двигателя 5 мин, то есть не успевает прогреваться, хотело бы 10мин или 15(желательно). Я пока на уровне прощивальщика, хотел сам подредактировать, но походу что то не так делаю, уже штук пять жучков запорол :unsure: Помогите! Заранее огромное Спасибо) Исходник http://files.mail.ru...DA6F8892AE453A2

Часть исходника...

; ПЕРЕМЕННЫЕ time_xxx ДОЛЖНЫ БЫТЬ В ДИАПАЗОНЕ ОТ 1 до 255

; время от прихода команды на запуск до включения зажигания

time_wait equ .30 ; секунд * 10

; время от включения зажигания до включения стартера

time_ignition equ .20 ; секунд * 10

; максимальное время работы стартера

time_starter equ .12 ; секунд * 2

; время ожидания между попытками завести двигаль

time_attempt equ .150 ; секунд * 10

; время работы заведенного двигателя

time_engine equ .250 ; секунд

; время от окончания работы до возможности принять следующую команду на запуск

time_next equ .20 ; секунд * 10

; обороты двигателя для определения надежного запуска мотора

round_start equ .200 ; оборотов/мин

; обороты двигателя для определения нажатия на педаль газа

round_acs equ .1500 ; оборотов/мин

; обороты двигателя для выключения зажигания при неуверенной работе

; (не должны отличаться от оборотов определения запуска на приращение

; за 2 секунды с момента старта двигателя)

round_min equ .300 ; оборотов/мин

Изменено пользователем Misha161
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

; UFF, ALL OK ------------------------

full_limit

bcf port,rele_start

nop

nop

clrwdt

clrwdt

bcf port,rele_ignit

nop

nop

clrwdt

clrwdt

; delay 2 sec for waiting (for example)

movlw H'FF' ; 20

movwf count2

delay5

movlw .100 ; 100

movwf count1

delay4

movlw .166 ; 1000

movwf count0

delay3

clrwdt

nop

nop

nop

decfsz count0,f

goto delay3

decfsz count1,f

goto delay4

decfsz count2,f

goto delay5

goto begin

END ; directive 'end of program'

END ; directive 'end of program'

Вот в этом блоке формируется время.

Переменные можно увеличить до H'FF' в counter0,counter1,counter2.Время должно увеличится.Если wdt не помешает

Изменено пользователем cheerful_ man
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Простите за глупые вопросы, я в это 0. Мне просто вставить эту строку movlw H'FF' ; 20 в исходник? Или если Вам не тяжело можете подправленный исходник отправить мне на мыло misha.161@mail.ru, что бы я опять не накосячел :(

m

Ссылка на комментарий
Поделиться на другие сайты

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

А подскажите еще такой момент, прошивать, у меня без проблем, а вот перепрошивать у меня не получается пишет "ошибка проверки по адресу 0113h" Шью через Ic prog в режиме PIC12C508, у меня PIC12F508, стереть её не получается!

Изменено пользователем Misha161
Ссылка на комментарий
Поделиться на другие сайты

bcf port,rele_start ; the starter is OFF

nop

nop

clrwdt

clrwdt

call delay_1sec

; call delay_1sec

call delay_1sec

movlw time_engine ; cycle 3 min for engine work (180 * 1 sec inside cycles)

movwf count2

measure12

;

decfsz count0,f

goto measure10

decfsz count1,f

goto measure11

movf TMR0,w ; over 2000 round/min?

movwf temp

movlw round_acs1

subwf temp,w

btfsc STATUS,Z

goto begin

btfsc STATUS,C

goto begin

movlw round_min1 ; down 400 round/min?

subwf temp,w

btfss STATUS,C

goto begin

decfsz count2,f

goto measure12

decfsz count2,f

goto measure12

; ПЕРЕМЕННЫЕ time_xxx ДОЛЖНЫ БЫТЬ В ДИАПАЗОНЕ ОТ 1 до 255

; время от прихода команды на запуск до включения зажигания

time_wait equ .30 ; секунд * 10

; время от включения зажигания до включения стартера

time_ignition equ .20 ; секунд * 10

; максимальное время работы стартера

time_starter equ .12 ; секунд * 2

; время ожидания между попытками завести двигаль

time_attempt equ .150 ; секунд * 10

; время работы заведенного двигателя

time_engine equ .250 ; секунд

; время от окончания работы до возможности принять следующую команду на запуск

time_next equ .20 ; секунд * 10

; обороты двигателя для определения надежного запуска мотора

Мой кунг-фу не слишком хорош (на уровне Z-80 ;х86 :) , пока нет времени разобраться с контроллерами ), но я попробую что то порекомендовать :)...

Дело в том что константа таймэнгайн имеет близкое к предельному значение ( 250 ,а больше 255 в ячейку не записать) и её не изменить в большую сторону...

Остаётся тогда взять два раза подряд эту задержку...

Синим я показал , как изменить листинг ассемблера..

Итак : фиолетовый - константа, красный подпрограмма, зелёный - обращение к подпрограмме,

синий - модернизация листинга, для увеличения времени в 2 раза

Попробуйте , может получится, для увеличения времени в 3 раза , поставьте 3 раза строки..

Не квалифицированный, но везучий электрик знает в лицо всех архангелов.

Прогресс сделал розетки недоступными для большинства детей. Умирают только самые одаренные.

Ссылка на комментарий
Поделиться на другие сайты

Но есть одно "но" , дело в том, что в теле программы, все задержки связанны..

И увеличив одну, мы можем ещё что то увеличить :)

Не известно как отреагирует управление...

Не квалифицированный, но везучий электрик знает в лицо всех архангелов.

Прогресс сделал розетки недоступными для большинства детей. Умирают только самые одаренные.

Ссылка на комментарий
Поделиться на другие сайты

Но есть одно "но" , дело в том, что в теле программы, все задержки связанны..

И увеличив одну, мы можем ещё что то увеличить :)

Не известно как отреагирует управление...

Спасибо) уже прошил, завтра посмотрим что у нас получилось :crazy: Отпишусь!

Ссылка на комментарий
Поделиться на другие сайты

Хотя есть вероятность, что я перепутал прогу с подпрограммой 8-(...

В таком случае, придётся тот синий текст убрать , а этот добавить...

В принципе от лишней проги ничего не должно изменится, то есть как было 5 мин так и останется...

Попробуйте так и этак или лучше подождите до рекомендации знающего пользователя.

call delay_1sec

; call delay_1sec

call delay_1sec

movlw time_engine ; cycle 3 min for engine work (180 * 1 sec inside cycles)

movwf count2

measure12

movwf count2

measure12

Не квалифицированный, но везучий электрик знает в лицо всех архангелов.

Прогресс сделал розетки недоступными для большинства детей. Умирают только самые одаренные.

Ссылка на комментарий
Поделиться на другие сайты

LL: movlw H'05'

movwf x

movlw time_engine ; cycle 3 min for engine work (180 * 1 sec inside cycles)

movwf count2

measure12

decf sdn,f ; проверка на пора включать анализ датчика

clrf TMR0 ; cycle 1 sec for measure tachometr frec

movlw .250 ; 250 cycles

movwf count1

measure11

movlw .200 ; 4000 cycles

movwf count0

measure10

clrwdt

clrwdt

clrwdt

clrwdt

clrwdt

; clrwdt

; clrwdt

; clrwdt

; clrwdt

movf sdn,f

btfss STATUS,Z

goto jamp_over

incf sdn,f

if park_level

btfss port,parking

else

btfsc port,parking ; to repeat transmission check

endif

goto begin

jamp_over

clrwdt

clrwdt

btfss port,in1

goto begin

clrwdt

clrwdt

if startup

btfss port,in2

goto begin

else

nop

nop

endif

decfsz count0,f

goto measure10

decfsz count1,f

goto measure11

movf TMR0,w ; over 2000 round/min?

movwf temp

movlw round_acs1

subwf temp,w

btfsc STATUS,Z

goto begin

btfsc STATUS,C

goto begin

movlw round_min1 ; down 400 round/min?

subwf temp,w

btfss STATUS,C

goto begin

decfsz count2,f

goto measure12

decfsz x,f

goto LL

Вот посмотри исправленный цикл задержки .Программа задержки будет крутится 5 раз .

Я думаю,что не сразу ,но разберемся.Была добавлена переменная x.

Если будет долго работать ,то изменяя в переменной x ( по метке LL) число можно корректировать время.

Изменено пользователем cheerful_ man
Ссылка на комментарий
Поделиться на другие сайты

Какие ошибки пишет?

Ты в переменных должен обЪявить переменную х и поставить

Я вставил те строки что что вы написали! сори в программировании и редактировании не силен :(

post-176920-0-66908900-1388222536.png

Ссылка на комментарий
Поделиться на другие сайты

А сделать изменения которые изложены в 15 посте не пробовали?

Не квалифицированный, но везучий электрик знает в лицо всех архангелов.

Прогресс сделал розетки недоступными для большинства детей. Умирают только самые одаренные.

Ссылка на комментарий
Поделиться на другие сайты

Значит в первом случае я более менее правильно понял...

Думаю может подсесть на новогодние каникул на ассемблер ПИКа (а затем и АВРа)..

У ПИКов команд то всего три десятка, зато правил в его ассемблере куда больше...

Из за малого колва команд мне и не нравится ПИКи..

Щас посмотрел ещё раз прогу и разглядел, что подпрограмм там где я их увидел нет :)

Это просто метки (хм... я привык что метки расположены в одной строке с операндами)

cheerful_ man

По моему , брать в цикл большой кусок программы не стоит , там как будто

есть условный выход и на второй цикл она может попросту не попасть...

movlw time_engine ; cycle 3 min for engine work (180 * 1 sec inside cycles)

movwf count2

measure12

decf sdn,f ; проверка на пора включать анализ датчика

clrf TMR0 ; cycle 1 sec for measure tachometr frec

movlw .250 ; 250 cycles

movwf count1

measure11

movlw .200 ; 4000 cycles

movwf count0

measure10

clrwdt

clrwdt

clrwdt

clrwdt

clrwdt

; clrwdt

; clrwdt

; clrwdt

; clrwdt

movf sdn,f

btfss STATUS,Z

goto jamp_over

incf sdn,f

А вот зациклить задержку по таймеру можно попробовать...

Сейчас я уйду, нет времени разобраться с таймером счётчиком...попозже попробую, если

cheerful_ man не придумает что то раньше :)...

Изменено пользователем Лалюна

Не квалифицированный, но везучий электрик знает в лицо всех архангелов.

Прогресс сделал розетки недоступными для большинства детей. Умирают только самые одаренные.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Применял обычный тройной квадрат и дисковую антену.
    • Ага, эти как их там Джоули всякие...
    • @100482 Ну не знаю у всех по разному. У меня просто шина у ванны выведена и на ванной ухо под болт, самому не сложно сделать.
    • Очень много думаешь. Для ИИ это вредно. Еще раз для ИИ , тупых и умственно альтернативных   "от входа В ничего не зависит."
    • Такпажжите: Как я понял - для нормального варинья нужно выдержать удобный режим - при котором энергия расходуется наилучшим образом, то-есть: зарядив конденсаторы на рассчитанную ёмкость - ещё ничего не обещаешь, - что делать? Ладно - "расчёт", но, подбирая режим по напряжению - есть риск уйти в огроменное значение ёмкости конденсаторов - что делать? Очевидно - нужно устройство сопряжения... Мне кажется - удобнее всего применять дроссель. Опять-же - всё сводится к методу тыка. Я посмотрел опыт - люди используют 25 вольт и конденсаторов, общей ёмкостью один-два десятка тысяч микрофарад, и вот здесь вопрос: при повышении напряжения - такаяже-ли ёмкость будет использоваться - или меньше? Выгода от повышения напряжения существенна: уменьшаются силы токов, уменьшаются провода и упрощается зарядное устройство. Если использовать, в качестве зарядки, просто диод с сетью 230 - то, на старте будет большой импульс тока, я предлагаю его сглаживать дросселем - первичка трансформатора с железным магнитопроводом. При, собственно варке, фронт будет меньше: наверное стоит использовать толще провод (вторичку), и магнитопровод ферритовый. Прошу высказать соображения. Собственно насущный вопрос - в необходимости сохранении значения ёмкости при увеличении напряжения.   Интереная система зарядки: Заряжание нескольких конденсаторов поочереди: Заряжание нескольких конденсаторов поочереди.webpЗаряжание нескольких конденсаторов поочереди.webp       Плата конденсаторной точечной сварки, по моему, вообще - излишество.   Не знаю как повелось, но люди, замечаю, тыкают двумя электродами в верхнюю пластину из двух сжатых - и потом наблюдают варинье в двух точках с обратной стороны в стыке пластин: мне это кажется глупостью, - много тока проходит по пластине (это очевидно), я-бы контачил один электрод к корпусу аккумулятора.   Можно использовать последовательный метод: не разряжать конденсаторы - а заряжать (поставив последовательно). То-есть: можно коснуться электродом от блока питания, и, чтобы не пошло действие дальше по времени - ставим последовательно конденсатор, который отрубит постоянку после заряда.     Ещё интересно: А можно-ли определить момент достижения успеха? Хочу выбрать момент - после которого можно отключать установку. Типичная сварка на конденсаторах - варинье полностью на длительность разряда, не зависимо от того - а надо-ли вариться металлу. Конечно - это не показатель, ведь дополнительная плавка места варки не повредит (единственно - может перегреться аккумулятор). Но хочется почерпнуть мнение мастеров: как изменяется сила тока (при использовании источника постоянного напряжения (автомобильного аккумулятора)) при изменении варочного состава?   Вычитал: - наверно в этом что-то есть...     Заряжание нескольких конденсаторов поочереди.webp
    • Здравствуйте, форумчане! МинУУло много лет, китайцы по просьбам трудящихся клепают gsm антенны. Появилась необходимость "сотового" интернета. Проблема та-же: "вышка - там, я - тута" Есть ли у кого опыт применения gsm антенн, усилителей и  проч., по типу что на рисунке или что- то другое!
    • Ну бежать то некуда, я в своей квартире нахожусь, а вот требовать выполнения работ надо.
×
×
  • Создать...