Hallo,
ich spiele grade mit den Interupts ein bisschen rum. Folgenden Code habe ich aktuell am Laufen:
void setup() {
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), switchPressed, FALLING);
Serial.begin(115000);
}
void loop() {
Serial.println("loop");
delay(200);
}
void switchPressed()
{ detachInterrupt(digitalPinToInterrupt(2));
Serial.println("ISR");
delay(10000);
Serial.println("END ISR");
attachInterrupt(digitalPinToInterrupt(2), switchPressed, FALLING);
}
Wenn ich jetzt den Pin 2 gegen GND ziehe erwarte ich eigentlich, dass "ISR" im SerialMonitor ist. Dann 10s nichts passiert und dann "ISR END" kommt und dann alle 0.2s "loop".
Allerdings passiert folgendes: Es kommt "ISR" und danach direkt "ISR END" ohne die 10s Pause. Danach kommt wie erwartet alle 0.2s "loop".
Kann mit jemand erklären warum das so ist? Bzw. wir ich das erreiche was ich eigenlich erwartet hatte.
Vielen Dank
Tim