> Kommt es da auch auf die steilheit der Schaltflanke an?
Nein, beim pegelgetriggerten Interrupt zählt nur der Pegel. Die
AVR-Eingänge haben ja ohnehin Schmitt-Trigger drin.
Bei Pegeltriggerung hättest Du damit nur ein Problem, wenn direkt nach
dem CLI der zum Interrupt führende Pegel am Eingang eintrifft, dieser
Pegel aber bereits beim SEI wieder verschwunden ist. Mit Deinen
beiden Befehlen dazwischen wären das also effektiv drei
Prozessortakte, die das Signal kurz sein müßte, um keinen Interrupt
auszulösen. Wahrscheinlich wäre es ohnehin besser, derart kurze
Nadeln zu ignorieren. ;-)
Diese Funktionsweise ist dadurch bedingt, daß bei Pegeltriggerung der
externe Pegel unmittelbar für die Interruptauslösung genutzt wird,
d. h. er wird nicht z. B. in einem Flip-Flop zwischengespeichert. Nur
so ist es möglich, daß ein pegelgetriggerter externer Interrupt den
Prozessor auch aus dem völligen Tiefschlaf (Takt abgeschaltet) wieder
wecken kann.
Praktisch alle internen Interrupts jedoch sind flankengetriggert,
d. h. beim Eintreffen des Interrupt-Ereignisses wird ein Flip-Flop
gesetzt. Wenn in diesem Moment die Interrupts verboten sind, wird der
Zustand dennoch gemerkt, und der Interrupt wird ausgelöst, sowie es
wieder möglich ist. Irgendwann danach wird dann das Flip-Flop (meist
durch die Hardware selbst; Ausnahme: TWI) wieder gelöscht.
Ansonsten aber nur Zustimmung: ISRs sollten keine globalen Register
zerstören.