Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
void ENCODER(void)
{
switch (coder)
{
case st1: if (old_coder==st4) ++encoder_div;
if (old_coder==st2) --encoder_div;
break;
case st2: if (old_coder==st1) ++encoder_div;
if (old_coder==st3) --encoder_div;
break;
case st3: if (old_coder==st2) ++encoder_div;
if (old_coder==st4) --encoder_div;
break;
case st4: if (old_coder==st3) ++encoder_div;
if (old_coder==st1) --encoder_div;
break;
}
old_coder=coder;
}
где "coder" младшие два бита - линии энкодера
encoder_div - знаковое число определяющее количество тактов экодера