при оптимизации Low/None
Код
// 45 Alarm_On &= ~alarm_bit;
BIC.B R10, &Alarm_On
// 46 Alarm_Off &= ~alarm_bit;
BIC.B R10, &Alarm_Off
BIC.B R10, &Alarm_On
// 46 Alarm_Off &= ~alarm_bit;
BIC.B R10, &Alarm_Off
при medium/high
Код
// 45 Alarm_On &= ~alarm_bit;
MOV.B R10, R14
XOR.B #0xff, R14
AND.B R14, &Alarm_On
// 46 Alarm_Off &= ~alarm_bit;
AND.B R14, &Alarm_Off
MOV.B R10, R14
XOR.B #0xff, R14
AND.B R14, &Alarm_On
// 46 Alarm_Off &= ~alarm_bit;
AND.B R14, &Alarm_Off
Все задействованные переменные типа uint8_t. alarm_bit - локальная, две другие - глобальные. В чем подвох?