Главная » Статьи » Мои статьи

EP3C10 Devboard Урок 2 Обработка кнопок

                                                   Урок 2

                                         Обработка нажатий кнопок

На прошлом уроке мы научились использовать светодиоды как устройства вывода информации. На этом уроке попробуем освоить устройства ввода, а именно – пять кнопок расположенных на плате EP3C10 DevBoard.

В прошлый раз, при подготовке проекта, мы уже сконфигурировали выводы, подключенные к кнопкам. Используем проект LED_Blinking, дополнив его  модулем обработки кнопок.

Выводы ПЛИС , к которым подключены кнопки, подтянуты резисторами к «плюсу» питания, сами кнопки, при срабатывании, замыкают положительный потенциал вывода на землю. Таким образом, для фиксирования нажатия, достаточно «увидеть» уровень логического ноля на соответствующем выводе.

Но не все так просто, известен такой эффект как «дребезг контактов» , когда в момент срабатывания кнопки ( замыкания контактов ), происходит очень быстрое, хаотическое изменение напряжения на ней. В этом случае, если бы мы хотели например запускать какую-то функцию по нажатии кнопки, вместо одного запуска на нажатие мы можем получить с десяток.  Особенно, если учесть что быстродействие входной логики нашей ПЛИС порядка 200МГц, борьба с «дребезгом» является необходимым условием для работы с кнопками.

Алгоритмы подавления «дребезга» достаточно просты. Например, самый популярный, после фиксации нажатия, подождать 100мсек и проверить состояние кнопки еще раз. 100мсек – достаточное время, чтобы процесс «дребезга» прекратился и можно было уверенно фиксировать нажатия.

Скачать статью полностью в формате docx

Категория: Мои статьи | Добавил: rolin791 (10.12.2014)
Просмотров: 1040 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar