|
клава на 4 кнопки, в силу причин сделал не на землю замыкание, а именно сканированием. Работает странно - 2 кнопки нормально, две - "черти что и сбоку бантик" - то перепрыгивают, то вообще не срабатываю. Задержку пробовал ставить до опроса - еще хуже. Крутится на 4 Мгц на 2313. Дребезг устранять в прерывании!! (каковы величины задержки удобней - кто подскажет?)
kscan: ;( -> kcode=scan) tmpi damaged
in tmpi, sreg
push tmpi
in tmpi, DDRD ;set mask direction
andi tmpi, 0b11110011
ori tmpi, 0b00000011
out DDRD, tmpi ;done
in tmpi, PORTD ;mask PORTD
andi tmpi, 0b11111110
ori tmpi, 0b00001110
out PORTD, tmpi ;row0
nop
sbis PIND, 2
ldi kcode, 0x01
sbis PIND, 3
ldi kcode, 0x02
andi tmpi, 0b11111101 ;mask PORTD
ori tmpi, 0b00001101
out PORTD, tmpi ;row1
nop
sbis PIND, 2
ldi kcode, 0x04
sbis PIND, 3
ldi kcode, 0x08
andi tmpi, 0b11111100
out PORTD, tmpi
ldi tmpi, 0xFF
w: dec tmpi
brne w
lp1: in tmpi, PIND
andi tmpi, 0b00001100
cpi tmpi, 0b00001100
brne lp1
pop tmpi
out SREG, tmpi
reti
E-mail: info@telesys.ru