Составители:
249
отпускание кнопки. При инициализации необходимо указать задержку перед
повтором символа (первый параметр) и скорость повтора символа (второй
параметр). Рекомендуемая величина задержки перед повтором – 1 секунда (не
меньше).
Алгоритм опроса матричной клавиатуры рекомендуется реализовать в виде
конечного автомата (Finite State Machine) – функции, которая в зависимости от
своего состояния (значения определенной переменной) и входного воздействия,
выполняет
разную работу [30, 86, 97].
Драйвер клавиатуры должен адекватно обрабатывать одновременное
нажатие нескольких кнопок.
Каждое нажатие кнопки на клавиатуре должно сопровождаться коротким
звуковым сигналом, что требует использования драйвера звукового излучателя
(генерация звука реализуется после попадания символа в буфер клавиатуры).
Драйвер звукового излучателя должен работать по прерыванию от таймера.
Длительность генерации звука – десятки миллисекунд
. Таким образом,
получается «музыкальная клавиатура».
Кроме того, должен быть предусмотрен контроль ввода корректных
значений в рамках второй задачи программы (лабораторная работа № 3).
Сигнализация в случае ввода некорректных значений – сообщение об ошибке в
последовательный канал и зажигание светодиодов.
Рассмотрим применение конечных автоматов на более простом примере
работы с одной клавишей без
переповторов. Драйвер такой клавиши содержит:
• Функцию инициализации, в которой производится инициализация
портов ввода-вывода микроконтроллера, к которым подключена
клавиша; определение начальных значений буфера клавиатуры,
счетчика нажатий клавиши и т.д.
• Функции опроса клавиши и определения ее нажатия/отпускания,
которые вызываются в обработчике прерывания от таймера (рис. 140, а).
• Циклический
буфер клавиатуры, в котором сохраняются сообщения о
том, что клавиша нажата или не нажата.
• API-функцию чтения символа из буфера клавиатуры.
Страницы
- « первая
- ‹ предыдущая
- …
- 248
- 249
- 250
- 251
- 252
- …
- следующая ›
- последняя »
