Агрх... Уже который час парюсь, никак не могу успокоить оптимизатор.
Взял примерчик из Samples в Proteus'e с терморегулятором, обернул в свою функцию
Код:
|
extern unsigned char TermoSensor_Temperature(void); |
при использовании в теле main, как
Код:
|
State.Temperature = TermoSensor_Temperature();
while (1)
{
Device.Temperature = TermoSensor_Temperature();
//код обработчик результата
} |
Первый вызов полностью игнориться, т.е. в дизасме видно, что нету команд и отладчик проскакивает место.
так же всякие _delay_ms(), _delay_ns() тоже вырезанные.
При О = 0 и О = 1, роли никак не играет. Танцы и пляски с volatile не помогли =(
Собсно знатоки, подскажите как указать, чтобы оптимизатор не вырезал?