Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Помотрите, правильно ли я понял Ваш код? Что-то не работает.

Отправлено Леонид Иванович 18 сентября 2008 г. 13:59
В ответ на: Ломает соображать про пред-пред и гистерезис. Там есь 5-й бит, "знак" состояния. Граф переходов хотите? отправлено maik-vs 18 сентября 2008 г. 13:02


void Encoder_Exe(void)
{
static char biphase;
register char tmp1 = 0;
if(Pin_ENC_F1) tmp1 = 0x40;
if(Pin_ENC_F2) tmp1 |= 0x80;
if((tmp1 & 0xC0) != (biphase & 0xC0)) return;
biphase >>= 2;
tmp1 |= biphase;
tmp1 &= 0xF0;
if(biphase & (1 << 1))
tmp1 |= (1 << 3);
biphase = tmp1;
if(tmp1 >= 0x90) return;
tmp1 = __swap_nibbles(tmp1);
if(tmp1 & (1 << 7))
tmp1 += 0x89;
switch(tmp1)
{
case 2:
case 4: biphase |= 8; break;
case 10:
case 17: biphase &= ~8; break;
case 8: Keyboard_SetCode(ENC_UP); break;
case 11: Keyboard_SetCode(ENC_DN); break;
}
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

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

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 387:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru