квадратурный энкодер
помогите с энкодером, как определить когда вправо крутиш а когда в лево
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
- Реклама
TIM0_OVF:
push temp
in temp, SREG
push temp
push cnt_int
push c
in temp, pind
cpi temp,0xff
breq tim_end
;rcall wait_5
;in c, pind
cpi temp,0b11111110
breq com_left
;cpi temp,0b11111100
;breq com_right
cpi temp,0b11110111
breq com_ok
rjmp tim_end
com_left:
rcall wait_5
in temp,pind
cpi temp,0b11111111
brne com_left
ldi comand2,0x78
sbr flag,(1<<new_com)
rjmp tim_end
com_right:
rcall wait_5
in temp,pind
cpi temp,0b11111101
brne com_left
ldi comand2,0x62
sbr flag,(1<<new_com)
rjmp tim_end
com_ok:
rcall wait_5
in temp,pind
cpi temp,0b11110111
brne com_left
ldi temp, 0b00000000
out portb,temp
rjmp tim_end
push temp
in temp, SREG
push temp
push cnt_int
push c
in temp, pind
cpi temp,0xff
breq tim_end
;rcall wait_5
;in c, pind
cpi temp,0b11111110
breq com_left
;cpi temp,0b11111100
;breq com_right
cpi temp,0b11110111
breq com_ok
rjmp tim_end
com_left:
rcall wait_5
in temp,pind
cpi temp,0b11111111
brne com_left
ldi comand2,0x78
sbr flag,(1<<new_com)
rjmp tim_end
com_right:
rcall wait_5
in temp,pind
cpi temp,0b11111101
brne com_left
ldi comand2,0x62
sbr flag,(1<<new_com)
rjmp tim_end
com_ok:
rcall wait_5
in temp,pind
cpi temp,0b11110111
brne com_left
ldi temp, 0b00000000
out portb,temp
rjmp tim_end
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
пины энкодера подключены к pind0 pind1
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
меня кто нибуть слышит ???? помогите !! сделал по другому
вывод А подключил на внешнее прерывание настроил по спаду
а вывод В в обработчике проверяю . как с дребезгом бороться???
вывод А подключил на внешнее прерывание настроил по спаду
а вывод В в обработчике проверяю . как с дребезгом бороться???
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
- Сообщения: 39
- Зарегистрирован: Вт сен 02, 2008 18:17:29
- Реклама
Если правильно сделать то энкодеру не требуется борьба с дребезгом. По крайней мере у меня сделано так - прерывания таймера с частотой 2кГц опрашивают пины энкодера. Потом по примерно такой таблицеEsya писал(а):меня кто нибуть слышит ???? помогите !! сделал по другому
вывод А подключил на внешнее прерывание настроил по спаду
а вывод В в обработчике проверяю . как с дребезгом бороться???
Код: Выделить всё
0 - A and B low
1 - A high B low
3 - A high B high
2 - A low B high все всем пасибо, то не в дребезге дело было, то у меня руки кривые в программе накосячил.
Русский человек читает инструкцию тогда, когда точно понял, что поломал.


