Как реализовать корректно выход из условия

Всем привет. Есть Код:

void mode_display_h1(){ // функция отображения режим H1 
  
  if (numSubMenuSet == 0)
  {           
      // просто отображение символов
  }

  if (numSubMenuSet == 1) {
      int cc = timeUPDOWN % 100/10; 
      int dd = timeUPDOWN % 10;
      ..........
      // просто отображение символов
      ............     

                if (timeUPDOWN >59) {timeUPDOWN=00;}
                if (timeUPDOWN <0)  {timeUPDOWN=59;}   

                if (butt2.isClick()) {timeUPDOWN++; tone(SPEAKER, 1000, 10);}
                if (butt3.isClick()) {timeUPDOWN--; tone(SPEAKER, 1000, 10);}
                
                if (butt2.isHold()) {timeUPDOWN++; tone(SPEAKER, 1000, 10);}
                if (butt3.isHold()) {timeUPDOWN--; tone(SPEAKER, 1000, 10);} 
                  
                if (butt4.isHold())  {tone(SPEAKER, 1000, 100);} 
                if (butt4.isRelease()) { numSubMenuSet = 0;}
    } 
    if (butt4.isHold())  {tone(SPEAKER, 1000, 100); numSubMenuSet = 1; }   // если удержал, то поменял флаг numSubMenuSet  на 1, и зашел в   if (numSubMenuSet == 1) 
}

В общем, если я подержал кнопку 4, то переменная “флаг”, поменяла на 1, далее запустился код в условии if (numSubMenuSet == 1) {…}, но при повторном нажатии флаг на 0 не меняется, а получается одновременное считывание кнопки в 2-х местах, соответственно код работает криво(((

Вообще логика должна быть такой: удержал кнопку, могу менять значения переменных кнопками 2 и 3, далее снова удержал кнопку - не могу больше изменять значения.

СПАСИБО за помощь.

Думаешь, рисуешь алгоритм на бумажке, пялишься в него, исправляешь, опять думаешь, и пишешь. А затем по новой, если надо.) А как ещё?

1 лайк

Да вот сижу, уже не первый день, пытаюсь реализовать обычное просто меню, но через кнопку удержания, в одну сторону работает, а вот что бы вернуться на шаг назад - нет ))))

А что получается если 27 строку на 5 переместить? А содержание условия из 25 строки переместить, наверное, в условие 24 строки?

Уже не прокатит, полностью переделал логику. Спасибо

А что такое “выход из условия”?