ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
30 июля
1532893 Топик полностью
Michael75 (28.07.2025 11:33, просмотров: 25) ответил Ig_B на Все в таймере, и запуск и считывание, но поочереди. В любой момент в volatile переменной лежит последний результат.
Если у вас переменная с неатомарным доступом меняется в прерывании, а обрабатывается в основном потоке, то её значение может быть искажено, даже если вы её объявили volatale. 

Переменная a0_volt, в которой лежит результат вычислений, по всей видимости, объявлена как float. Если вы в основном потоке оперируете её значением, то прерыванию никто не мешает возникнуть и изменить её значение в любой момент времени, даже если она объявлена как volatile. Поэтому ваше утверждение о том, что в volatile переменной будет находиться корректное последнее измерение неверно, а определитель volatile к этому отношение не имеет