Помогите с программой на ASM для AVR
в определении направления и угла поворота устройства с перфорированным диском от мышки и с двумя, смещенными на половину относительно прорези, оптопарами. Можно получить число импульсов в два раза больше, чем прорезей на диске - по переднему и заднему фронту прорези.
Нужен оптимальный алгоритм обработки сигналов от двух оптодатчиков для счетчика положения диска.
[color=darkred][/color]
Оптимальный алгоритм определения угла поворота endcodera
- Реклама
- teoretic
- Открыл глаза
- Сообщения: 50
- Зарегистрирован: Чт июн 15, 2006 23:46:55
- Откуда: Раша, Москоу
- Контактная информация:
подробный алгоритм работы энкодера и модуль на С можно найти в avrlib http://hubbard.engr.scu.edu/avr/avrlib/avrlib.zip.
Если нужна оптимальность - то можно написать простейшую программку.
-оптопары смещены на 180гр, одну вешаем на прерывание-факт шага, другая задает направление движения.
кажется так...
Если нужна оптимальность - то можно написать простейшую программку.
-оптопары смещены на 180гр, одну вешаем на прерывание-факт шага, другая задает направление движения.
Код: Выделить всё
INTx: // одну из оптопар - на прерывание
sbis PINx, BITx //то, куда подключена вторая оптопара
rjmp INTX_inc
INTx_dec:
dec r0 //регистр где хранится число шагов
rjmp INTx_end
INTx_inc:
inc r0
INTx_end:
reti
