Интересный блок. Работает нормально.aidar_i писал(а): 02 апр 2024, 14:05 Сделал для себя блок энкодера на библиотеке STM32encoder, выложу сюда, чтобы не создавать тему.
Добавил немного описания от себя, прилепил пару выводов на вход (для поиграть). Не хватает выводов ± на выходе, что бы "меню" листать.
А может то что есть со временем допилю, если до "меню" руки дойдут, тоже как вариант с пред загрузками.
[spoiler]
Выходы:
pos_enc - позиция энкодера (диапазон от -65536 до 65535, счёт идёт постоянно при вращении энкодера)
my_var - значения определенные границами параметра min_var, max_var. (например от 0 до 100, или от -100 до 100)
Short_press - короткое нажатие; (менее 2сек), на выходе короткий импульс.
Long_press - длинное нажатие. (более 2сек), на выходе короткий импульс.
===================================================================
Параметры:
PIN - вывод подключения кнопки энкодера.
Таймер - используемые таймеры STM32(TIM1 - TIM14).
Выводы энкодера для подключения к:
TIM2 - PA0, PA1.
TIM3 - PA6, PA7,
TIM4 - PB6, PB7,
TIM1 - PA8, PA9.
===================================================================
dir(Bytte) - установка значения шага на щелчёк.(например 1)
min_var, max_var - предельные границы выхода my_var. (например 0 и 100 или -100 и 100)
Внимание: обязательно припаять между контактами CLK и GND, DT и GND энкодера конденсаторы 100нф для устранения дребезга.
подключить подтягивающие резисторы на контакты энкодера с "+" питания МК.
Кнопка подключается относительно минуса МК, подтягивающий резистор настроен.
==================================================================================
Входы (часть из них тестовые)
==================================================================================
en_enc - разрешающий работу вход (1-разрешение, 0-запрет)
Set - установка предварительного значения, настроенна на короткое нажатие кнопки. Значение должно быть в пределах min_var, max_var
Reset - установка нулевого значения, настроенно на длиное нажатие кнопки. Значение должно быть в пределах min_var, max_var
[/spoiler]
. . .
P.s.
Прикрепил "+" и "-" к блоку энкодера. Вроде даже работает.
viewtopic.php?f=231&t=9055&p=130288#p130288