|
два бита - старое значение, два бита - новое. потом прокинуть по таблице (16 значений) и получить результат.
в некоторых случаях может оказаться значительно быстрее.
// Таблица перекодировки энкодера old 00 01 10 11
// new - новое значение new
// old - предыдущее 00 nc - + er
// 0bnnoo - так формируем индекс 01 + nc er -
// для decode_tbl, из таблицы берем 10 - er nc +
// инкремент-декремент или ошибка 11 er + - nc
nc - состояние не изменилось
er - ошибка с энкодера, либо пропустили импульсы, либо ченить гденить оторвалось ;)
E-mail: info@telesys.ru