Не могу по кнопке выйти из цикла
- Войдите на сайт для отправки комментариев
Втр, 06/07/2021 - 19:51
Есть несколько кнопок, каждая зажигает диодку и проигрывает аудиофайл. Надо сделать так, чтобы при нажатии одной кнопки во время работы другой, цикл первой прерывался и начинался цикл следующей. А сейчас приходиться ждать, пока первая кнопка закончит работу. Попробовал сделать это с помощью команды break, почему-то ничего не изменилось. спасибо за помощь. if (customKey == '7'){//если нажата кнопка 7 Serial.println(customKey);//выводим нажатый символ в монитор порта Mp3Player.controller->volume (50); Mp3Player.controller->playSDSong ("0007.mp3"); for (int o = 0; o < LED_COUNT; o++) //тушим диоды на ленте { strip.setPixelColor(o, strip.Color(0, 0, 0)); strip.show(); } for (int o = 0; o < 119; o++) //зажигаем диоды на ленте { strip.setPixelColor(o, strip.Color(0, 0, 255)); strip.show(); char customKey = customKeypad.getKey();//записывем нажатый символ if (customKey != '7') break;// Если нажата любая кнопка кроме "7" прерываем цикл } }
ну почему, если нажать кнопку в самом конце песни - она сработает
А как сделать чтобы не нужно было ждать? Чтобы следующая кнопка срабатывала. Там не одна кнопка, а семь.
А как сделать чтобы не нужно было ждать? Чтобы следующая кнопка срабатывала. Там не одна кнопка, а семь.
Для начала привести код полностью. По возможности, сократить. выбросить лишнее и привести полный код, который можно запустить.
В том виде, как он сейчас, ничего сказать нельзя.
хорошо, сейчас
https://drive.google.com/drive/folders/1SyxJds6HxBXqAPZJEU7iE97vgyuhqnzz...
Даже не открывал ссылку. Но как совет (вроде соображалка работает, не?) такой алгоритм: Заведи отдельную кнопку «прервать» повесить на прерывание, в прерывании ранее установленный «флаг» «брейка» установить в положение «прервать» и в каждой итерации цикла проверять его состояние, если состояние равно «прервать», то 1. Сбросить флаг в состояние «не прерывать», 2. Выйти из цикла по «брейку».
Или я опять что то не верно понял? Или нужно без прерываний?
Можно и все 7 кнопок повесить на прерывание.
Но так же можно тупо опрашивать кнопки внутри цикла из которого нужно выйти.
Что-то не сработала соображалка, можешь, пожалуйста, кодом написать?
Что-то не сработала соображалка, можешь, пожалуйста, кодом написать?
"кодом" тут помогают в платном разделе
Что-то не сработала соображалка, можешь, пожалуйста, кодом написать?
Мы ещё Вашего кода не видели. Хотя, я просил Вас выложить.