Hallo mal wieder!

Achso war das gemeint. Soweit ich den Code überblickt habe, deaktiviert sich der Interrupt von selbst, nachdem er einmal ausgelöst wurde.
Code:
00248 SIGNAL (SIG_INTERRUPT1)
00249 {
00250   switched = 1;
00251   GICR &= ~(1 << INT1);                 // Externen Interrupt 1 sperren 
00252 //  StopSwitch ();
00253 }
das steht hier. Das deaktivieren passiert in Zeile 251. Demnach tritt ein erneuter Interrupt beim Tastendruck nur dann ein, wenn man ihn per StartSwitch() wieder aktiviert.
Für das Programm muss man für jede Interrupt-Abfrage, die man machen will, die Variable switched wieder zurücksetzen und StartSwitch() aufrufen. Macht man das nicht, passiert nichts.

Nur das zurücksetzen der switched-Variable per switched = 0; oder dergleichenaktiviert den Interrupt nicht wieder.

Ich hoffe, das war, was du meintest =)

Bääääär