Задолбали! Вот вся функция /* *** Main function *** */
__task void main(void)
{
char c;
MCUinit(); // Initialize ports
LEDinit(); // Initialize LED driver
ADCinit(); // Initialize ADC
InitButtons();
Ch2_low = eCh2_low; // Restore settings from EEPROM
Ch2_high = eCh2_high; //
Ch1_low = eCh1_low; //
Ch1_high = eCh1_high; //
Adjst1 = eAdjst1; //
Adjst2 = eAdjst2; //
InitTimers(); // Timers initialization
SetRelay1(0); // Turn relays off
SetRelay2(0); //
Mode |= CH1_DSPLY; // Display channel 1
__enable_interrupt();
#ifdef CO2_C2 // 2 channels
#endif
for (;;) // Do forever
{
IWDG_KR = 0xAA; // Reset watchdog
c = GetButtons(); // Check the buttons
if (c & ENTER_BTN) // Do setups
Setup(); //
#ifdef CO2_C2 // 2 channels
if (c & PROG_BTN) // Change display mode
Mode ^= CH1_DSPLY; //
#endif
// if (c & SETUP_BTN) // Change the heater mode
// SetMode(); //
if (IntFlags & TIM2_BIT) //
{ //
IntFlags &= ~TIM2_BIT; //
CO2_ppm1 = GetCO2_ppm(1);
#ifdef CO2_C2 // 2 channels
CO2_ppm2 = GetCO2_ppm(2);
// while (!(IntFlags & TIM2_BIT));
// IntFlags &= ~TIM2_BIT; //
#endif
DisplayCO2((Mode & CH1_DSPLY)? 1 : 2); // Display CO2 value
/*
if (Mode & CH1_DSPLY)
DisplayCO2(1); // Display CO2 channel 1 value
else
DisplayCO2(2); // Display CO2 channel 2 value
*/
if (Ch1_low <= Ch1_high)
Purge1();
else
Pump1();
#ifdef CO2_C2 // 2 channels
if (Ch2_low <= Ch2_high)
Purge2();
else
Pump2();
#endif
} //
} //
}