Не могу понять где собака зарыта!
Задача состоит в седеющем:
•При температуре внутри бокса от 10°C до 33°C ничто не работает
•При достижении температуры 33°C включается циркуляционный вентилятор (FAN1)
•При достижении температуры 35°C дополнительно включается вытяжной вентилятор (FAN2)
•При достижении температуры 40°C дополнительно включается приточный вентилятор (FAN3)
•При охлаждении до 30°C все вентиляторы выключаются
•При понижении температуры до 10°C включается циркуляционный вентилятор (FAN1)
•При понижении температуры до 8°C дополнительно включается обогреватель (HEATER)
•При нагреве до 12°C все выключается
Код :
Код:
|
for(;;)
if (err) errors();
convert_temp();
delay_ms(800);
celcius=read_temp()››1;// определяется температура
itoa( celcius, buffer, 10);
uart_puts_P("
");
uart_puts(buffer);
uart_puts_P("
");
if (celcius ›= 12) { uart_puts_P("›12 OK
");
if (celcius ‹=30) {uart_puts_P("‹30 OK
");
if (PINB&0b00000001) {// все выключается
uart_puts_P("FAN OK
");
PORTB=0b00000000;
continue;
}
continue;
}
}
if (celcius›=33){uart_puts_P("›33 OK
");
FAN1;
if (celcius›=35){uart_puts_P("›35 OK
");
FAN2;
if (celcius›=40){uart_puts_P("›40 OK
");
FAN3;
}
}
continue;
}
else if (celcius‹=10){uart_puts_P("‹10 OK
");
FAN1;
if (celcius‹=8){uart_puts_P("‹8 OK
");
HEATER;
}
}
} |
Но моя программа почему-то при
celcius=35 обрабатывает условие
celcius›=40 и считает его TRUE???
При
celcius‹8 условие
celcius‹=8 не обрабатывается???
Я только начинаю разбираться с микроконтроллерами и немому понять, почему моя программа не выдает нужного результата