Если разберетесь, то ... Считывание сигналов с кодера происходит в процедуре прерывания от таймера.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено _Bill 23 ноября 2006 г. 15:28
В ответ на: Вопрос по инкрементальному энкодеру(+) отправлено <font color=gray>k_serg</font> 23 ноября 2006 г. 15:13


signed char incTable[16] = { // Encoder increment table
0, // 0
-1, // 1
1, // 2
0, // 3
1, // 4
0, // 5
0, // 6
-1, // 7
-1, // 8
0, // 9
0, // 10
1, // 11
0, // 12
1, // 13
-1, // 14
0 // 15
};

Pos <<= 2; // Move the old data left two places
if (!(ARC_PIN & ARC_UP))
Pos |= (1<<0);
if (!(ARC_PIN & ARC_DN))
Pos |= (1<<1);
_tmp = incTable[Pos & 0x0F];
if (_tmp == 1)
Data.arc += ARC_DELTA;
else if (_tmp == -1)
Data.arc -= ARC_DELTA;


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание