Hallo farratt,
genervt wird hier nicht.

Für die, die den Thread suchen: Asuro: PollSwitch im Interrupt betrieb
Und darin das Beispiel von farrett mit Lösungsvorschlag ist hier.

Die dort von dir gefundene Lösung ist mir nicht einleuchtend.
Spätestens wenn mit dem Aufruf von StartSwitch(), nachdem ein Schleifendurchlauf erfolgte, darin wieder SWITCH_OFF aufgerufen wird, sollte das Verhalten so sein, als ob dein eingebautes SWITCH_ON nicht ausgeführt worden wäre.
Außerdem wird mit dem SWITCH_xxx ja nur? die Datenrichtung vom Interrupt-Pin kontrolliert. Dies deutet mir auf ein Timing-Problem hin.
Ich habe gerade etwas mehr als nur ein Stündchen zu dem Thema hinter mir, und kann auch keine andere Lösung finden, die ich dann auch noch erklären könnte.

Eventuell hilft hier anderen der Hinweis, dass der Interrupt im über das Register MCUCR im Low-Level-Mode betrieben wird, und in diesem Mode das Interrupt-Flag INTF1 im Register GICR nie gesetzt wird. So hat man auch keine Chance dieses Flag selber zu beeinflussen.

@m.a.r.v.i.n
Hast du hier eine andere Lösung in der Tasche? Oder kannst du das erklären?

Gruß Sternthaler