Вы не вошли.
Страницы 1
Кто-то может подсказать как он работает?
Хочется прикрутить его к МК, но не знаю как обрабатывать его сигналы...
В инете информация в основном по самодельным из мышки/двигателя.
Производитель не известен, есть 5 выводов. Два - это кнопка. А остальные три для меня загадка, к сожалению нет многоканального логического анализатора или осциллографа, что бы посмотреть, что там происходит...
Кстати продавец сказал что это энкодер. Это одно и то же или есть разница?
Отредактировано ASni (25.03.2007 14:54:40)
Вне форума
Это, насколько я вижу, энкодер Bourns PEC-16. Широко их использую. Вот пример обработки на ASM для AVR:
;Encoder read:
mEnc: rcall EScan ;scan encoder
mov Cnt,temp ;save encoder state
eor temp,EncSt ;check for changes
breq no_ch ;return, no changes
ldi temp,ENDEBV ;debounce delay for encoder
bbrc temp,2,no_sw
ldi temp,SWDEBV ;debounce delay for switch button
no_sw: rcall Delay
rcall EScan ;scan encoder
cp temp,Cnt ;check encoder state
brne no_ch ;return, bounce
mov temp,EncSt ;previous encoder state
mov EncSt,Cnt ;save new encoder state
;Switch button check:
bbrc temp,2,s_0
bbrs Cnt,2,q1x ;no changes
ldi Msg,msgKdn ;key down message
rjmp e_ret
s_0: bbrc Cnt,2,q1x ;no changes
ldi Msg,msgKup ;key up message
rjmp e_ret
;1x quadrature decoder:
q1x: bbrc temp,0,a_0
a_1: bbrc Cnt,0,a_10
rjmp no_ch
a_0: bbrs Cnt,0,a_01
rjmp no_ch
a_01: bbrc Cnt,1,pls
rjmp no_ch
a_10: bbrc Cnt,1,min
rjmp no_ch
pls: ldi Msg,msgInc ;send increment message
rjmp e_ret
min: ldi Msg,msgDec ;send decrement message
rjmp e_ret
no_ch: ldi Msg,msgNop ;send no operation message
e_ret: ret
Вне форума
Спасибо большое.
Вне форума
Страницы 1
[ Сгенерировано за 0.037 сек, 7 запросов выполнено - Использовано памяти: 567.77 Кбайт (Пик: 618.14 Кбайт) ]