Как присвоить переменной число?
- Войдите на сайт для отправки комментариев
Пт, 18/11/2016 - 14:16
Здравствуйте все. Что-то понять не могу почему не получаеться присвоить переменной число. Делаю так:
До void setup()
long CHPlus = 16769565;
В теле программы уже:
switch (results.value) {
case CHPlus:
lcd.setCursor(2,5);
lcd.print("OK1");
break;
case 16769055:
lcd.setCursor(2,5);
lcd.print("OK2");
break;
}
Вот на CHPlus и ругается. Если прям числом записать - всё работает.
"Оператор switch сравнивает значение переменной со значением, определенном в операторах case. Когда найден оператор case, значение которого равно значению переменной, выполняется программный код в этом операторе."
http://arduino.ru/Reference/SwitchCase
Хотите сравнивать с переменными - if, else if, else if и т.д.
Добавьте слово const в самое начало строки
longCHPlus = 16769565;Так это-то и понятно. До оператора switch у меня:
if ( irrecv.decode( &results )) { // если данные пришлит.е. мне и нужно сравнить то что пришло. Приходят цифры (типа 16738455) с пульта. Вот хотел все эти циферки в более удобный вид привести, чтоб каждый раз не набирать их (их много и свитчей тоже много).
А ругается у меня "the value of 'CHPlus' is not usable in a constant expression"
Добавьте слово const в самое начало строки
longCHPlus = 16769565;Ой. Спасибо. Помогло.
Ой. Спасибо. Помогло.
Блин, я уж думал, ято совсем умом тронулся, написал пример, скомпилировал у себя, убедился, что всё нормально и совсем было собрался громко ругаться :)
Блин, я уж думал, ято совсем умом тронулся, написал пример, скомпилировал у себя, убедился, что всё нормально и совсем было собрался громко ругаться :)
Ошибку свою не сразу понял. Просто перед switch (ради проверки) продублировал без const. Убрал строку и всё заработало.
Еще в таких ситуациях #define можно использовать