Почему так?

dachnik
Offline
Зарегистрирован: 26.07.2013

Есть функция, вызываю ее с такими параметрами:

manual_mode =0;  on_off_x=1; poliv(sensor_pin, eeprom_solid_var) = 1;

boolean irr_to_flag(boolean manual_mode, boolean on_off_x, byte sensor_pin, byte eeprom_solid_var)
{
  if (!EEPROM.read(manual_mode)) //если auto mode
    {
      if (EEPROM.read(on_off_x)) //если включен полив
        { 
          if (poliv(sensor_pin, eeprom_solid_var)) 
            {return HIGH;}
          else {return 0;}
        } //
      else {return 0;}
    }
  else {return 0;}
}

При true всех IF возвращает 0. хотя должна возвращать HIGH...чё не так?

T.Rook
Offline
Зарегистрирован: 05.03.2016

dachnik пишет:

      if (EEPROM.read(on_off_x)) //если включен полив
        { 
          
        } //

А поясните, пожалуйста, какой смысл Вы вкладываете в  приведённую выше конструкцию (при том что: boolean on_off_x)?

Потому что странновато задавать адрес чтения из EEPROM логической величиной.

 

dachnik
Offline
Зарегистрирован: 26.07.2013

Спасибо большое! =) недоглядел тип данных.... бывает