David Mueller schrieb:
> Also verändern in Form von +1 ist ja ok, aber nicht das sich das
> überschneidet und nicht mehr funktioniert.
natürlich musst du.
Aber das hat jetzt nichts mit volatile zu tun.
So ein Compiler ist ja kein Geistheiler, bei dem man nur das richtige
Stichwort aufsagen muss und alle Probleme lösen sich in Luft auf.
> - Es dürfen keine Impulse verloren gehen (Also kein abschalten der ISR)
Das wirds nicht spielen. Denn zwischen
> etwas mit counter machen
und
> counter = 0; // counter reset
wirst du die Interrupts abschalten müssen.
Was aber nicht notwendigerweise bedeutet, dass du sie soooo lange
abschalten musst, dass welche verloren gehen. Man kann ja auch mit einer
Hilfsvariablen erst mal die Interrupts abschalten, den Counter-Wert
sicher, den Counter auf 0 setzen und die Interrupts wieder frei geben,
ehe man dann mit dem so in der Hilfsvariablen gesicherten 'Counter' Wert
weiterarbeitet. Dann sind die Interrupts nur ganz kurz aus und wenn dir
dann immer noch einer verloren geht, dann hast du ein viel
grundlegenderes Problem.