Несколько кнопок на одно прерывание

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013
есть три кнопки (концевика, но по сути одно и то же) и только прерывания INT0 и INT1 на пинах 2 и 3. Свободные пины тоже есть: 4, 7, 8.
 
а) как можно узнать какая кнопка нажата? Пока на ум приходит следующее: одну кнопку посадить на пин 3, еще две на пины 7 и 8, и их через резисторы также на пин 3. В прерывании INT1 читать состояние пинов 3, 7, 8. Это корректно?
б) если я займу одно из этих прерываний под отслеживание кнопок, ШИМ на остальных пинах останется?
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Tomasina, на 7 пине есть свободное прерывание компаратора тыц  Не говоря о том, что прерывания PCINT есть вообще на всех ногах в атмега328 :)

Logik
Offline
Зарегистрирован: 05.08.2014

Работать с кнопками по прерываниям не самая лучшая идея. Кнопки как правило штука медленная.  Проверять их раз в 50-100 мс  из лупа допустимо и даже полезно - дребезг не будет беспокоить. Для концевиков правда бывают исключения, но редко.