Энкодер
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Еще одна версия энкодера.
На 2ух прерываниях, но не быстрый.
С изменяемым приращением (быстрое вращение прибавляет по 10).
Как поведет себя на других - не знаю (328, stm, rp2040 работает). [spoiler]_set - при подаче "1" значение со входа _inst предустановится на выходе _ou
_inst - число с этого входа при подаче "1" на _set предустановится на выходе _ou
_res - при подаче "1" значение на выходе _ou обнулится
_ou - чило на выходе будет менятся в большую или меньшую сторону при вращении энкодера
u_p - "1" на один цикл на каждый шаг при увеличении
d_n - "1" на один цикл на каждый шаг при уменьшении
_rotat - "1" на один цикл на каждый шаг при вращении в любую сторону[/spoiler]
На 2ух прерываниях, но не быстрый.
С изменяемым приращением (быстрое вращение прибавляет по 10).
Как поведет себя на других - не знаю (328, stm, rp2040 работает). [spoiler]_set - при подаче "1" значение со входа _inst предустановится на выходе _ou
_inst - число с этого входа при подаче "1" на _set предустановится на выходе _ou
_res - при подаче "1" значение на выходе _ou обнулится
_ou - чило на выходе будет менятся в большую или меньшую сторону при вращении энкодера
u_p - "1" на один цикл на каждый шаг при увеличении
d_n - "1" на один цикл на каждый шаг при уменьшении
_rotat - "1" на один цикл на каждый шаг при вращении в любую сторону[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Ingwar 10 мар 2023, 19:45, всего редактировалось 3 раза.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Энкодер
Ingwar спасибо!
Вечером "крутну на быстродействие", вроди б "летать" должен БП на прерываниях!
[hide]Днем тепло - огород в выходной зовет к себе
[/hide]
Вечером "крутну на быстродействие", вроди б "летать" должен БП на прерываниях!
[hide]Днем тепло - огород в выходной зовет к себе

- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Энкодер
Есть простое решение для AVR.Ingwar писал(а): 05 мар 2023, 12:53 Тут "крылья подрезаны" в угоду универсальности - используется digitalRead...
Более быстрые контроллеры справятся и с digitalRead.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Так то если в ядрах есть поддержка "быстрых" пинов, блок можно подредактировать и получить максимальное быстродействие.
Универсальность никогда не была "бесплатной" ))
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Энкодер
А по поводу "бесплатноси", так это маленький кусочек кода, большую часть которого компилятор вырежет если не используется.
Отправлено спустя 1 минуту 15 секунд:
Отправлено спустя 1 минуту 15 секунд:
И я про него.

-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Когда у меня возникнет желание и накопятся знания, я попробую сколхозить библиотеку, учитывающую все камни (но это не точно).Dryundel писал(а): 05 мар 2023, 13:37 А по поводу "бесплатно и", так это маленький кусочек кода, большую часть которого компилятор вырежет если не используется.
А пока у меня не получилось даже добавить другой камень в Ваш вариант энкодера.
Сначала я искал пару часов как и где описывается наименование камня для добавления их в #elif defined, нашел, добавил, описал, но не "взлетело" )))
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Не верно поняли.
В файле direct_pin_read.h (и в другом) описываются привязки к поддерживаемым камням.
Так вот чтобы добавить привязку к другому, неописанному ранее в этом/их файле камню, нужно указать его имя (типо "__SAMD51__").
Так вот это название и оказалось для меня непросто найти (хотел добавить stm32f103cb).
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 3999
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 149 раз
Энкодер
По теме написал здесь viewtopic.php?f=247&t=8064&p=121908#p121873Ingwar писал(а): 05 мар 2023, 13:45 Когда у меня возникнет желание и накопятся знания, я попробую сколхозить библиотеку, учитывающую все камни (но это не точно).
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Это замечательно (про таймера), но жаль, что пока не мой уровень))ecoins писал(а): 05 мар 2023, 15:08 По теме написал здесь viewtopic.php?f=247&t=8064&p=121908#p121873
З.Ы. Правильное наименование используемого камня находится в строках выводимых IDE во время компиляции.
Например STM32F103CB "называется" STM32F103xB
Находится тут
-ID:\\Portable_FLProg_8-0-2_Win64\\ideV8\\portable\\packages\\STMicroelectronics\\hardware\\stm32\\2.4.0\\system/Middlewares/OpenAMP/virtual_driver" -w -x c++ -E -CC -DSTM32F1xx -DARDUINO=10819 -DARDUINO_GENERIC_F103CBTX -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"GENERIC_F103CBTX\"" "-DVARIANT_H=\"variant_generic.h\"" -DSTM32F103xB -DHAL_UART_MODULE_ENABLED "-ID:\\Portable_FLProg_8-0-2_Win64\\ideV8\\portable\\packages\\STMicroelectronics\\tools\\CMSIS\\5.7.0/CMSIS/Core/Include/"
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 3999
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 149 раз
Энкодер
Есть ощущение, что в обозримое время вызов по таймерам будет реализован. Наверное удастся договориться с разработчиком, что для этого будет предусмотрен отдельный тип плат. По уровню - что увидел у Вас для меня говорит и об уровни, и об потенциале. Работа с таймерами пожалуй существенно проще.Ingwar писал(а): 05 мар 2023, 15:47 Это замечательно (про таймера), но жаль, что пока не мой уровень))
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Дело было не в бобине, программист Ingwar сидел в кабине...
Отредактировал первый пост. Сорян тем, кто скачал для других камней.
Это к вопросу
Похоже использование части кода из примера под STM стало роковым.
Отредактировал первый пост. Сорян тем, кто скачал для других камней.
Это к вопросу
))))ecoins писал(а): 05 мар 2023, 16:34 По уровню - что увидел у Вас для меня говорит и об уровни, и об потенциале.
Похоже использование части кода из примера под STM стало роковым.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Энкодер
Добавил функцию ускоренного счета при быстром повороте - прибавляет/убавляет десятками.
Реакция настраивается в параметрах - время между прерываниями в микросекундах.
Проверено на STM и RP2040 (PICO).
Перезалил в шапке.
Реакция настраивается в параметрах - время между прерываниями в микросекундах.
Проверено на STM и RP2040 (PICO).
Перезалил в шапке.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 3357
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 12 раз
- Поблагодарили: 100 раз
- Контактная информация:
Энкодер
Сделал для себя блок энкодера на библиотеке STM32encoder, выложу сюда, чтобы не создавать тему.
Кнопка встроена в блок , имеет 2 выхода : длинное и короткое нажатие.
Библиотека встроена в блок. Проверена в железе, читайте описание блока. Обязательно припаяйте конденсаторы 100нф к выводам энкодера, если не стоят штатно.
Кнопка встроена в блок , имеет 2 выхода : длинное и короткое нажатие.
Библиотека встроена в блок. Проверена в железе, читайте описание блока. Обязательно припаяйте конденсаторы 100нф к выводам энкодера, если не стоят штатно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей