Skip to content

Библиотека процедур для интеллектуальной обработки ВВОДА: сканирование Кнопок и Энкодеров (англ. "Intellectual Key/Encoder Input Handling" library)

License

Celeron/avrasm-celeronkeyinputlib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

avrasm-celeronkeyinputlib

НАЗНАЧЕНИЕ:

Библиотека процедур для интеллектуальной обработки ВВОДА: сканирование Кнопок и Энкодеров. ("Intellectual Key/Encoder Input Handling" library)

ОСОБЕННОСТИ:

  1. Математическое подавление ошибок, от наведенных электрических помех и дребезга контактов, для всех "физических каналов" подключённых Кнопок и Энкодеров, с заданной и регулируемой величиной помехоустойчивости. (используется оригинальная авторская методика "интегрирующей защёлки": на двунаправленном инкрементальном счётчике)

  2. Сложные поведения реальных кнопок - сводятся к стандартизованным кодам в "Регистрах Статуса Кнопок", на основании которых можно легко реализовывать очень сложную и гибкую логику поведения устройства:

  • распознаются разные "жесты с кнопками": серии нажатий и удержаний кнопок;

  • различаются варианты кнопочных аккордов: одновременное нажатие/удерживание нескольких кнопок;

  • кнопки различается по времени удержания: обычное, "короткое" или "длинное" удержание. А для продвинутых случаев, наиболее функциональных кнопок, также допустимо различать ситуации "сколько КОНКРЕТНО удерживается кнопка, в пределах 0..16сек?" и программировать различные реакции...

  • и что особенно полезно для низкоуровневого ассемблерного кода: дана чёткая и прозрачная методика написания прикладного кода обработчиков "реакции на события" (предлагаются макросы для тестирования и обработки статус-кодов кнопок). Имеется простая возможность назначать одинаковые обработчики различным альтернативным кнопочным жестам.

  • Простой и понятный механизм "сброса статусных кодов" для уже обработанных кнопок - исключает "побочные эффекты": типа "залипания" или "ошибочные повторные нажания" кнопок... (защита от дурака: при правильно организованном коде обработчиков, пользователь может жать на всё подряд - приложение отреагирует чётко и правильно)

  1. Для распознавания и обработки кодовой последовательности, поступающей от инкрементального Энкодера по двум физическим каналам - предлагаются три разные реализации кода, обладающие разными функциональными возможностями и подходящие для разных ситуаций (лёгкий и простой код, для хорошего и быстрого железа; или усложнённый код, с коррекцией ошибок, для медленного или сбойного железа). Разработчик выбирает вариант кода обработки энкодера - только директивами условной компиляции. Вся активность энкодера обрабатывается библиотекой автоматически и сводит все особенности к простому "Счётчику тиков", который затем используется в прикладном коде обработки событий. (Формат счётчика особой специальной структуры не содержит - это просто знаковое целое число: Signed Int = [-128..127].)

  2. КОД библиотеки "celeronkeyinputlib.inc" УНИВЕРСАЛЕН и не требует (даже не рекомендует) каких-либо вмешательств и переделок под ваше конкретное устройство! Единственная процедура, код которой требуется адаптировать к вашей конкретной физической схеме - это KEY_SCAN_INPUT (через неё осуществляется связь с физическими каналами ввода). Также, под вашу конкретную физическую схему, требуется адаптировать блок определения данных в DSEG (см. в файле "data.inc"): определения блоков регистров Интегратора, статусных регистров Кнопок и Энкодеров, и некоторые константы.

  3. Данная библиотека испытана в реальном физическом устройстве - и зарекомендовала себя как "реально работоспособная", гибкая и эффективная! Пример использования данной библиотеки, реализация клиентского прикладного кода, приведен в файлах: "example.asm" и "data.inc".

ТРЕБОВАНИЯ И ЗАВИСИМОСТИ:

Данная реализация "Библиотеки процедур для интеллектуальной обработки ВВОДА (celeronkeyinputlib)" написана на языке ассемблер "AVRASM2". Соответственно, она предназначена для разработки программных прошивок (firmware) на языке ассемблер, для микроконтроллеров Atmel AVR (8-bit). Описание: http://inventproject.info/blog/celeronkeyinputlib-avrasm-library/ Код скачать: https://github.com/Celeron/avrasm-celeronkeyinputlib

Используется, и требует подключения, нестандартная внешняя "Библиотека базовых Макроопределений (macrobaselib.inc)" - расширяющая стандартный набор ассемблерных инструкций микроконтроллеров Atmel AVR (8-bit AVR Instruction Set)... Описание: http://inventproject.info/blog/avrasm-biblioteka-bazovyh-makroopredelenij-macrobaselib-inc/ Код скачать: https://github.com/Celeron/avrasm-macrobaselib

About

Библиотека процедур для интеллектуальной обработки ВВОДА: сканирование Кнопок и Энкодеров (англ. "Intellectual Key/Encoder Input Handling" library)

Resources

License

Stars

Watchers

Forks

Packages

No packages published