ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
192981 Топик полностью
VVB_ (04.05.2010 14:12, просмотров: 1) ответил VVB_ на В моей жизни пока не было случая, чтобы предполагалось, что переменная, изменяемая в прерывании, может измениться в последовательной цепочки обработки внутри какой-то функции. Как правило (в моих проектах), при входе в функцию надо один раз узнать
Ну и применительно к Вашему примеру наиболее безопасно будет при входе в функцию, расчитывающую усреднение (или перед операцией деления) запретить прерывания, создать локальные копии, снова разрешить прерывания, выполнить деление. Это из-за того, что за время между загрузкой одного операнда в регистр и следующей командой загрузки второго операнда или операцией деления возможно прерывание, изменяющее первый операнд. Вроде бы очевидно. И volatile нафиг не нужен.