Да используется volatile для тех переменных, которые используются в прерывании и в фоне. И предыдущая версия работает как надо. И еще не могу понять - как компилятор мог 20 байт ОЗУ сэкономить ?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)