Изменение переменной при отсутствие данных с ИК пульта.

Sanchos07
Offline
Зарегистрирован: 15.10.2016
Всем доброго времени суток!!! очередной новичок ломающий мозг с кодом)))
Подскажите пожалуйста как задать переменную если данные не поступают на приемник.
Имеется переменная dl при получении кода, она меняет значение, а как сделать что бы во время когда на ИК приемник не идут данные,
 я мог присвоить переменной другое значение. Типа если данные не пришли? или куда и как вставить там else.
void loop(){ 
  if ( irrecv.decode( &results )) // если данные пришли
  { switch ( results.value )
  { case 0x6083ED25: dl = 2;
  break;}
  irrecv.resume();}
  
  Serial.println(dl);

 

 

saftik
Offline
Зарегистрирован: 08.04.2015

Sanchos07 пишет:

Всем доброго времени суток!!! очередной новичок ломающий мозг с кодом)))
Подскажите пожалуйста как задать переменную если данные не поступают на приемник.
Имеется переменная dl при получении кода, она меняет значение, а как сделать что бы во время когда на ИК приемник не идут данные,
 я мог присвоить переменной другое значение. Типа если данные не пришли? или куда и как вставить там else.
void loop(){ 
  if ( irrecv.decode( &results )) // если данные пришли
  { switch ( results.value )
  { case 0x6083ED25: dl = 2;
  break;}
  irrecv.resume();}
  
  Serial.println(dl);

 default:
      // выполняется, если не выбрана ни одна альтернатива
      // default необязателен

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Else нужно установить после строки irrecv.resume();} (в следующий раз включай нумерацию, чтобы было проще говорит в какой строке проблема).

Только при этом нужно помнить, что этот else будет выполняться очень быстро и часто.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

saftik пишет:

 default:
      // выполняется, если не выбрана ни одна альтернатива
      // default необязателен

default здесь не при делах. Если бы ТС хоть чуток озаботился бы форматированием кода, было бы видно, что switch находится под if, т.е. "сигнал пришёл". Ему же надо что-то присваивать, если ничего не пришло.

ТС,

чтобы сделать то, что Вы хотите, просто поставьте после закрывающей фигурной скобки if'а что-нибудь типа

else dl = 100500;

только, боюсь это решит ту проблему, что Вы описали, а не ту, которую Вам реально нужно решить.