我在一个 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