Маленькая и быстрая библиотека для энкодера

Apr 22, 2017 17:00

Оригинал взят у elchupanibrei в Маленькая и быстрая библиотека для энкодера
Давно хотел разобраться с крутилкой и наконец нашлось время и желание. В паутине нашел три метода обработки кода грея для экодра.

Первый самы тупой с и пользованием кучи if else и програмным debounce отжирающим ресурсы процессора.

Второй на основе таблицы состояний энкодера. Он намного-о-о резвее первого и ему не нужен прогаммный подавитель дребезга контактов. Его недостаток в том, что часть памяти съедается массивом состояний, а драгоценные такты расходуются на обращение к этому масиву.

Самы продвинутый - это расчет состяния таблицы на лету с помощью булевой алгебры  без применения тежелых вычислений и замена всех if else на более быстрый switch case. Именно так и сделано в библиотеке. Может работать с прерываниями и без.

Рекрмендую добавить два конденсатора по 0.1мкФ как показанно на картинке



Если купить популярный шилд KY-040 то резисторы допаивать не надо, они уже есть на плате. Энкодер установленный на шилде делает 4 пульса на клик и  20 кликов на один оборот.



Потом добавлю больше информации по всем трем методам.

Забирать как всегда тут.
Previous post Next post
Up