внешний кварц 4мгц
кнопки подключены к portD pd1,pd2,pd4,pd5 ,через сопротивление 10ком
к +5в ,замыкаются на минус.
возникла следующая проблема:Для работы мне необходимо отслеживать длинное и короткое нажатие кнопки.
сейчас в основном цикле просто проверяю наличие 0
Код: Выделить всё
.equ K1 = PD1 ;
.equ K2 = PD2 ;
.equ K3 = PD4 ;
.equ K4 = PD5 ;
.def zz0 = r16
.def zz1 = r17
.def zz2 = r18
;основной цикл программы
next:
sbis PIND,K1 ; если 0 то переход
rcall K1
sbis PIND,K2
rcall K2
sbis PIND,K3
rcall K3
sbis PIND,K4
rcall K4
....
....
rjmp next
K1:
ldi zz2 ,$02
ldi zz1 ,$71
ldi zz2 ,$00
rcall delay
...................
ret
delay:
subi zz0 , 1
sbci zz1 , 0
sbci zz2 , 0
brcc delay
ret
не нравится то что ,приходится использовать задержку в основном цикле
Работаю над тем, как сделать опрос клавы с помощью таймера,
проверять там каким то образом длинное и короткое нажатии и только после этого проверять код нажатой клавиши в основном цикле?????
Может кто знает как это делается!!!!!!!


