Nichtsdestotrotz kann ich mich mit der Aussage, dass es "einfach nur falsch" sei, nicht anfreunden. Die Ausdrucksweise ist sicher nicht wissenschaftlich korrekt, aber sie passt hier sehr wohl.
Bitte lese dir meine Antwort auf den Post von Besserwessi nochmal durch.
Es geht nicht darum, dass volatile zu verwenden ist, sondern um das warum.
sonst werden die Werte am ende der ISR wahrscheinlich verworfen weil nie aus den Registern ins RAM kopiert.
Da steht, dass es möglich ist, dass eine veränderte globale Variable in einer Funktion nie (auch nicht am Ende) ins RAM zurück geschrieben wird, und daher die in der Funktion gemachte Veränderung verloren ist. Das ist so grundlegend falsch, dass ich mich beim besten Willen nicht mit "komisch beschrieben" oder "im Grundgedanke richtig" anfreunden kann.


Und nur auf den Sonderfällen rumzureiten, damit eine Aussage nicht als allgemeingültig stehen gelassen werden kann, ist gemein.
Ja, so bin ich, ein fieser kleiner Besserwisser.
Natürlich kann man die Verallgemeinerung so stehen lassen, schließlich ist ein volatile zuviel bei weitem nicht so problematisch, wie ein volatile zuwenig. Ich wollte nur mal darauf hinweisen, dass es sich um eine vereinfachende Verallgemeinerung handelt, und nicht um eine unumstößliche Grundregel.

Besserwessi wollte sicher nur helfen.
Er hat dem OP ja auch geholfen.
Nur wenn die Hilfe auch grundlegend falsche Aussagen beinhaltet, kann man die nicht einfach so stehen lassen, insbesondere wenn der Post hilfreich war. Beim Fragenden würde sich sonst festsetzen: das mit dem volatile hat geholfen, also stimmt wohl auch die Begründung.