У меня есть одна кнопка (и поворотный энкодер) в проекте Teensy 3.1 (ARM). Все хорошо, только у меня проблемы со сном. Все работает в первый раз после сброса, но каждый раз после этого, attachInterrupt() не работает.
Использование этой библиотеки для вызова спящего режима.
Псевдокод:
#include LowPower_Teensy3.h
#include MyButton.h
TEENSY3_LP LP = TEENSY3_LP();
MyButton mySwitch(SWITCH_PIN); // pinMode(SWITCH_PIN, INPUT_PULLUP)
// interrupt handler
void wakeup(void)
{
digitalWrite(LED, HIGH);
detachInterrupt(SWITCH_PIN);
}
void setup(){
// omitted for clarity
}
void loop() {
switch(menuSelection) {
// poll switch and encoder to determine menu selection
// lots of other cases omitted. all work as expected
case SLEEP_MENU:
digitalWrite(LED, LOW);
attachInterrupt(SWITCH_PIN, wakeup, FALLING);
LP.Sleep();
break;
}
}
Похоже, что SWITCH_PIN
больше не связано с mySwitch
после прерывания.