ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
229150 Топик полностью
Лeoнид Ивaнoвич (17.12.2010 12:37, просмотров: 74) ответил Vladimir Ljaschko на 2 Л.И. По программе обработки энкодера - а не кажется ли Вам, что инициализация не совсем корректна - на самом деле правильно инициализировать prev и prevprev текущими значениями, а не stateA?
Инициализировать текущим значением - не выход, так как в нормальном режиме эти переменные всегда не равны. У меня они инициализируются значением State0, при этом ложных импульсов при включении быть не может (ведь EncPrev != StateAB). При первом же вызове функции обработки EncPrev станет равной текущему положению, и только EncPrevPrev останется некорректным. Но это значение корректно инициализировать нет возможности, так как энкодер могут крутить в выключенном состоянии прибора. По этой причине бесполезно сохранять что-то в EEPROM. Все равно начальное значение не будет соответствовать действительности. На практике никаких проблем не замечаю, сразу после включения энкодер реагирует на первый шаг как надо.