Цитата(Rash @ Oct 2 2015, 14:56)

компилятор я нигде не обвинял
А можно было бы. Изредка и он виноват. Я сталкивался не единожды.
Цитата(Rash @ Oct 2 2015, 14:56)

спрашивал, что не так, в расчёте, что укажут на ошибку или я смогу понять где она
Увы, не получится. Вы привели очень маленький кусок кода, собака легко могла порыться совсем в другом месте программы.
Цитата(Rash @ Oct 2 2015, 14:56)

С volatile или без результат одинаковый...
А всё-таки, поясните, зачем там volatile? Если нет RTOS, прерываний и аппаратных регистров, то volatile ничего не изменит.