Zitat Zitat von thewulf00
Er hats komisch beschrieben, aber der Grundgedanke ist korrekt.
Der Grundgedanke, warum hier volatile zu verwenden ist, ist weder "komisch" beschrieben, noch korrekt, sondern einfach nur falsch.

Wird eine Variable von zwei verschiedenen Stellen (ISR und Hauptprogramm) benutzt, so muss sie volatile sein,
Auch das ist eigentlich eine falsche Verallgemeinerung. Es ist zwar sehr oft so, aber nicht immer. Im konkreten Fall ist das volatile bei zyklus z.B. überflüssig.

sonst wird sie beim Benutzen der Optimierung wegen nicht erneut aus dem RAM ausgelesen
Nur dass das Lesen im konkreten Fall gar nicht der Knackpunkt ist, sondern das Schreiben der Variable helligkeit ins RAM in der main-Schleife.