квадратурный энкодер

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Встал на лапы
Аватара пользователя
Сообщения: 133
Зарегистрирован: Ср фев 20, 2008 03:09:21
Откуда: Украина г.Харьков

Сообщение Esya »

помогите с энкодером, как определить когда вправо крутиш а когда в лево
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 133
Зарегистрирован: Ср фев 20, 2008 03:09:21
Откуда: Украина г.Харьков

Сообщение Esya »

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
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 133
Зарегистрирован: Ср фев 20, 2008 03:09:21
Откуда: Украина г.Харьков

Сообщение Esya »

пины энкодера подключены к pind0 pind1
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 133
Зарегистрирован: Ср фев 20, 2008 03:09:21
Откуда: Украина г.Харьков

Сообщение Esya »

меня кто нибуть слышит ???? помогите !! сделал по другому
вывод А подключил на внешнее прерывание настроил по спаду
а вывод В в обработчике проверяю . как с дребезгом бороться???
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 39
Зарегистрирован: Вт сен 02, 2008 18:17:29

Сообщение Bird55 »

Esya писал(а):меня кто нибуть слышит ???? помогите !! сделал по другому
вывод А подключил на внешнее прерывание настроил по спаду
а вывод В в обработчике проверяю . как с дребезгом бороться???
Вот посмотрите тут или тут. А вообще, google Вам в руки :)
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

Esya писал(а):меня кто нибуть слышит ???? помогите !! сделал по другому
вывод А подключил на внешнее прерывание настроил по спаду
а вывод В в обработчике проверяю . как с дребезгом бороться???
Если правильно сделать то энкодеру не требуется борьба с дребезгом. По крайней мере у меня сделано так - прерывания таймера с частотой 2кГц опрашивают пины энкодера. Потом по примерно такой таблице

Код: Выделить всё

0 - A and B low
1 - A high B low
3 - A high B high
2 - A low B high 
делается преобразование пинов в текущее состояние энкодера. Соотв потом вычитанием полученного числа из предыдущего значения (состояние энкодера в прошлом прерывании ) вычисляется куда энкодер повернулся. Для контактного энкодера с 24 состояниями получается 4 изменения на один клик, тоесть если накапливать изменения то за полный оборот будет 24*4 = 96 единиц.
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Neekeetos, пожалуйста, смени аватарку
Встал на лапы
Аватара пользователя
Сообщения: 133
Зарегистрирован: Ср фев 20, 2008 03:09:21
Откуда: Украина г.Харьков

Сообщение Esya »

все всем пасибо, то не в дребезге дело было, то у меня руки кривые в программе накосячил.
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»