
Zitat von
Klebwax
Besser ist es, sich den Interruptstatus zu merken, dann ihn zu deaktivieren und am Ende den alten Zustand wiederherzustellen. Das kann dann gefahrlos auch verwendet werden, wenn mal aus anderen Gründen der Interrupt gesperrt ist.
Das erfordert mehr Aufwand, den man in manchen Situationen nicht bereit ist zu leisten.

Zitat von
Klebwax
Ich kenne jetzt die avr-libc nicht, aber der Name "ATOMIC_RESTORESTATE" klingt, alsob es da so gemacht wird.
Genau so ist es.
@Ritchie: Warum? Dafür braucht es keine Funktion.
Code:
// tu was und berechne foo
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
bar = foo; // atomare Zuweisung
}
Lesezeichen