Problem mit Interrupt und delay

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

1.) In Interrupts geht kein delay() und Serial sollte man da auch auf keinen Fall machen
2.) Interrupts sind dazu da kurze Dinge zu tun und sollten so kurz wie möglich sein
3.) Sowas langsames wie Taster fragt man nicht mit Interrupts ab
4.) Auf einem AVR können sich Interrupts nicht gegenseitig unterbrechen. Darin die Interrupts zu deaktivieren ist also überflüssig.