Цитата(ar__systems @ Feb 11 2011, 16:43)

Переменная однобайтовая. Какая атомарность?
Да байтовая но в ней 8 бит-флагов:
как происходит изменение бита в ОЗУ, а вот так:
1 load
2 modify
3 store
так если произойдёт прерывание между пунктами 1-3 изменяющее этот же байт, то все изменения сделанные в прерывании будут похерены пунктом 3.
И напоследок:
volatile нужен для
любой переменной хоть битовой хоть байтовой, хоть QWORD , если эта переменная используется (пишется или только читается) в прерываниях или является частью SFR.
Всё! Учим наизусть и повторяем вместо мантры:-)
Не хотите читать стандарт - поищите по форуму, тема про
volatile уже неоднократно всплывала.