Как стать автором
Обновить
14
0

Пользователь

Внешние прерывания у 8-bit avr, использование кнопок

Время на прочтение 3 мин
Количество просмотров 101K
Программирование микроконтроллеров *
Из песочницы
Здравствуйте, на днях решил поэкспериментировать с внешними прерываниями на attiny2313A. Думаю тем кто занимался программированием микроконтроллеров известно, что МК не всегда быстро может реагировать на нажатие кнопки, т.к. проверка PINа стандартно осуществляется в бесконечном цикле и если программа достаточно большая — это может затормозить опрос ножки.
Код ниже написан для WinAVR.

image

Стандартный опрос:


  • DDRxy&=~(1<<y); PORTxy&=~(1<<y);
    с одной стороны кнопка подключена к плюсу (VCC), а с другой стороны к ножке.
    В таком случае провод который подключен к ножке выступает в роли антенны и любое возмущение электромагнитного поля вокруг проводка вызывает срабатывание кнопки, что неприемлемо.

  • DDRxy&=~(1<<y); PORTxy|=(1<<y);
    С одной стороны кнопка подключена к минусу (GND), а с другой стороны к ножке.
    Это наиболее приемлемый вариант, наводок не возникает и кнопка срабатывает стабильно.

Читать дальше →
Всего голосов 26: ↑22 и ↓4 +18
Комментарии 22

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность