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

Код ниже написан для WinAVR.

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