Radiohobby Forum

Интернет конференция журнала "Радиохобби"

Вы не вошли.

Объявление

Подписка на новые материалы от Николая Сухова - ролики, схемы, модели, онлайн конференции, консультации, чат.

Внимание! Почта в доменах Яндекс и Mail.ru не будет работать в профилях форумчан, из-за введённых правительством Украины санкций против этих компаний. Всем, кто ранее использовал подобную почту, для сохранения прежней функциональности форума, рекомендуется её поменять.

Огромная просьба, заливать тематические картинки и файлы в личные файловые каталоги на форуме, чтобы они не потерялись, со временем!

Ссылка "Загрузки" находится справа внизу формы набора сообщения.

Подписка на журнал "Радиохобби" прекращена. Подробности. Форум же - продолжает свою работу.

#1 25.03.2007 14:15:11

ASni
Участник
Откуда: Николаев / Украина
Здесь с 18.11.2004
Сообщений: 34

Валкодер и МК

Кто-то может подсказать как он работает?
Хочется прикрутить его к МК, но не знаю как обрабатывать его сигналы...
В инете информация в основном по самодельным из мышки/двигателя.
Производитель не известен, есть 5 выводов. Два - это кнопка. А остальные три для меня загадка, к сожалению нет многоканального логического анализатора или осциллографа, что бы посмотреть, что там происходит...
Кстати продавец сказал что это энкодер. Это одно и то же или есть разница?

i-1.jpg

Отредактировано ASni (25.03.2007 14:54:40)

Вне форума

#2 26.03.2007 00:11:50

Liv
Ветеран
Откуда: Минск
Здесь с 08.02.2004
Сообщений: 1,233

Re: Валкодер и МК

Это, насколько я вижу, энкодер 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

Вне форума

#3 26.03.2007 01:16:14

ASni
Участник
Откуда: Николаев / Украина
Здесь с 18.11.2004
Сообщений: 34

Re: Валкодер и МК

Спасибо большое.

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.026 сек, 11 запросов выполнено - Использовано памяти: 567.95 Кбайт (Пик: 618.31 Кбайт) ]