Zitat Zitat von Ceos
@sternst zu 1. die variablen können in einem zug gelesen werden(8bit), deshalb sind sie generell unkritisch beim zugriff

zu 2. bin ich mir nicht ganz sicher ob während eines interrupt veränderte variablen nicht eventuell durch den stack des unterbrochenen programms überschrieben werden, wenn der interrupt beendet ist und die variiable nicht volatile deklariert ist
Offenbar vermischt du hier ganz kräftig "volatile" und "atomarer Zugriff". Auch wenn beides gerne im Doppel auftritt, sind es doch verschiedene Sachen. Die Notwendigkeit für "volatile" hat prinzipiell nicht das Geringste mit dem Datentyp zu tun. Am besten schaust du nochmal genau nach, was das volatile überhaupt macht.

Aber auch in Bezug auf "atomarer Zugriff" stimmt die Aussage "zu 1" nicht. Read-Modify-Write-Zugriffe (z.B. x++) sind bei 8-Bit-Variablen ebenso kritisch (und entsprechend zu schützen), wie bei größeren Datentypen.