Was passiert weiss ich nicht...

Aber es gibt ein paar Grundregeln die man bei Interrupts unbedingt beachten sollte:
(dann hat man solche Probleme garnicht)
- niemals mehr Befehle als zwingend notwendig in die Interruptroutinen stecken
- wenn überhaupt, dann nur sehr kurze Funktionen innerhalb einer ISR aufrufen


Bei einem ADC-Interrupt z.B. liest man nur den neuen Wert ein, schreibt ihn in irgendeine Variable und verlässt die ISR sofort wieder...
Irgendwelche Berechnungen o.ä. erledigt man dann in Ruhe im Hauptprogramm