Всем привет. Есть Код:
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, далее снова удержал кнопку - не могу больше изменять значения.
СПАСИБО за помощь.