Не могу по кнопке выйти из цикла
- Войдите на сайт для отправки комментариев
Втр, 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 кнопок повесить на прерывание.
Но так же можно тупо опрашивать кнопки внутри цикла из которого нужно выйти.
Что-то не сработала соображалка, можешь, пожалуйста, кодом написать?
Что-то не сработала соображалка, можешь, пожалуйста, кодом написать?
"кодом" тут помогают в платном разделе
Что-то не сработала соображалка, можешь, пожалуйста, кодом написать?
Мы ещё Вашего кода не видели. Хотя, я просил Вас выложить.