Teensy 3.1 (ARM) プロジェクトに 1 つのプッシュボタン (およびロータリー エンコーダー) があります。スリープ状態にするのに問題があることを除けば、すべて問題ありません。リセット後初めてすべてが機能しますが、その後は毎回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