IrRemote + Цикл
- Войдите на сайт для отправки комментариев
Вс, 05/07/2020 - 12:57
Ребята привет, столкнулся с такой проблемой, кнопками пульта нужно вызывать функции с циклами, и тут возникает проблема, если в цикле написать irrecv.resume(); то цикл остановится ожидая команды с пульта, без irrecv.resume(); цикл будет выполнятся, но тогда уже на команды пульта не будет реакции, подскажите как выйти из этого положения?
Выкладывайте код, без этого разговор ни о чем.
Ну например вот так,
void loop() { if (irrecv.decode(&results)) { if(results.value == 16187647){ test(); } if(results.value == 16220287){ test2(); } irrecv.resume(); } delay(1000); } void test(){ while(1){ Serial.println("Test"); irrecv.resume(); delay(1000); } } void test2(){ Serial.println("Test2"); irrecv.resume(); delay(1000); }Функции вызываются обе по нажатию кнопок, но на test2 не переключается если вызвана test, просто работает цикл, а если сначала вызвать test2, то на test переключается без проблем
Ну например вот так,
void loop() { if (irrecv.decode(&results)) { if(results.value == 16187647){ test(); } if(results.value == 16220287){ test2(); } irrecv.resume(); } delay(1000); } void test(){ while(1){ Serial.println("Test"); irrecv.resume(); delay(1000); } } void test2(){ Serial.println("Test2"); irrecv.resume(); delay(1000); }Функции вызываются обе по нажатию кнопок, но на test2 не переключается если вызвана test, просто работает цикл, а если сначала вызвать test2, то на test переключается без проблем
ну с выходом понятно, но почему пульт перестает отрабатываться, если в цикл добавить строку
должен вроде выводиться код кнопки, но нет, постоянно выводится код который вызвал эту функцию, коды других кнопок не показывает, поэтому и прерывание скорее всего не сработает
ну с выходом понятно, но почему пульт перестает отрабатываться, если в цикл добавить строку
должен вроде выводиться код кнопки, но нет, постоянно выводится код который вызвал эту функцию,
а разве строке 03 что то формируется? это же проверка нажатия любой кнопки
а разве строке 03 что то формируется? это же проверка нажатия любой кнопки
а ты значок & в скопках виишь? А он есть....
Вот так вроде начало работать
void test(){ while(results.value == 16187647){ irrecv.decode(&results); Serial.println(results.value); Serial.println("Test"); irrecv.resume(); delay(1000); } }Вот так вроде начало работать
void test(){ while(results.value == 16187647){ irrecv.decode(&results); Serial.println(results.value); Serial.println("Test"); irrecv.resume(); delay(1000); } }Я даже боюсь спросить, зачем вам этот цикл?
Это будет следующий вопрос топикстартера, "Ребята, а зачем здесь цыкал?"
Конкретно этот цикл, чисто для примера, суть проекта эффекты для ws2812b, которые будут выполняться в циклах, и возможность менять их пультом
суть проекта эффекты для ws2812b, которые будут выполняться в циклах, и возможность менять их пультом
Тогда вопросов будет ещё много :-)