ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
219290
mazur (01.11.2010 21:46 - 21:49, просмотров: 16413)
Я тут, знаете ли, плюшками побаловался. В общем, давно хотел написать подпрограмму опроса кнопок. Требования к драйверу были следующие: любые комбинации клавиш, игнорирование ложных комбинаций, удерживание, автоповтор, если потребуется, изменяющийся (то есть при удержании клавиши скорость автоповтора увеличивается). Что-то это дело у меня туго пошло. Пока не скачал 8-ую часть цикла статей Татарчевского. Там все разжевано и разложено на атомы. Мощный алгоритм. Хоть 100 кнопок теперь подключай. Главная особенность алгоритма - все кнопки опрашиваются как одна. Наконец-то драйвер был написан. У меня STK-500. Накидал простейшую программу. Подключил драйвер клавиатуры. В пробной программе использовал 4 клавиши. "Enter","Esc","Plus","Minus". В таблицу вписал только "Plus" и "Minus". Проверка драйвера была простой, "Plus" - инкремент счетчика, "Minus" - декремент. Состояние счетчика в порт на светодиоды. При проверке сразу же вылез баг. Удерживал, например "плюс", и периодически нажимал какую-нибудь еще. При отпускании ложной кнопки (нужная кнопка удерживается) срабатывала функция. Стал разбираться. Открыл в винде текстовый редактор и давай клаву мучать. Потом в статью опять полез. В программу. Понимаю, что алгоритм не поменять. Напряг единственную извилину, которая и так прямая. Решил. Прошил кристалл. С трепетом нажимаю одну клавишу. Есть. Комбинация клавиш. Есть! Ложная комбинация. Есть!! Удерживание. Есть!!! Автоповтор. Есть!!!! Скорость автоповтора меняется. Есть!!!!! Работает, бля!!!!!!!!!!! Жена была в шоке от моего танца в стиле чумба-юмба вокруг отладочной платы. :))))))) Итак. Драйвер работает. Теперь надо добиться: универсальность, полная автономность (Plug_And_Play, короче). Работа с любыми видами клавиш, от кнопок висящих на одном порту до матричной клавиатуры 8x8 (компьютерная как-нибудь потом, теперь это не проблема), только модули с необходимыми параметрами подключай. Считай доделано. При написании этого драйверы использовались следующие материалы: Бесграничное терпение, советы и маты коллег на сахаре и ирк-канале #ru_embedded. Моя благодарность к вам не знает границ (в пределах допустимого, конечно :о) ). Татарчевский. Применение SWITCH-технологии при разработке прикладного программного обеспечения для микроконтроллеров.Часть 8.pdf Бескрайний океан информации в интернете. Чей-то проект добавил мне несколько идей. Ссылка прилагается. Правда, спасибо вам за терпение и наставления.