Проект "своими лапами" видел здесь
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
сделал все-таки как в обучалке - через цикл задержки. все равно срабатывает не всегда. попробую, наверное, кнопку поменять.ploop писал(а):Зависит от качества кнопки. Можете для эксперимента подпаять параллельно ей кондёр 0,1 - 1 мкФвообще, время дребезга ориентировочно какое? микросекунды, милли? можно ли на аналоговом осцилле оценить его длительность для конкретной схемы, например?
Использовать прерывания для кнопок нецелесообразно. Лучше их опрашивать тогда, когда необходимо. Делается это просто - читаете содержимое порта и накладываете маску:я использовал срабатывание прерывания по заднему фронту
Код: Выделить всё
in R16, PINB ; читаем содержимое порта
andi R16, 0b00010000 ; отсекаем всё, кроме четвёртого бита
; Далее условия - BRNE, BREQ ...
В принципе - без разницы, с точки зрения дребезга, т. к. разное время этого процесса, зависит от конструкции кнопки. Если вы наблюдаете срабатывание "через раз", то это может быть: слишком большая задержка или неисправная кнопка.Necroteeth писал(а):как лучше распознавать нажатие - по фронту/смене уровня или как?
Код: Выделить всё
--- основной цикл
in tr,PIND
sbrs tr,6
rcall decCorrection
--- подпрограмма
decCorrection: ; декремент коррекции
dec Correction
ddl4:
in tr,PIND
sbrs tr,6
rjmp ddl4
retесли честно, я не очень понял смысл этого действа.ploop писал(а):Чтоб просто задействовать кнопки для отладки, я делаю так: во время нажатия загоняю программу в бесконечный цикл, пока не отпустишь.Код: Выделить всё
--- основной цикл in tr,PIND sbrs tr,6 rcall decCorrection --- подпрограмма decCorrection: ; декремент коррекции dec Correction ddl4: in tr,PIND sbrs tr,6 rjmp ddl4 ret
Объясняю.если честно, я не очень понял смысл этого действа.
Значит это программно сделана такая задержка. А сама программа в МК стартует после запуска тактового генератора + несколько его тактов (чтоб он вошел в рабочий режим) Время исчисляется милли- или даже микро-секундами, так что человек это никак не заметит.запуск внутренней программы идет примерно через 10 секунд после включения питания (или после RESET)
Это не есть суть проблемы, туда я собрался залить прошивку от AVRDopper'aAI_Disable писал(а):Да пофиг на эти кондёры. Главное не забудьте включить фьюз SCOPT. Ну и на всякий, заземлите корпус кварца