Здесь у меня есть такая функция. проблема, с которой я столкнулся, при изменении параметра "Параметр". во-первых: я не смог изменить Set_parameter Window Second: так как в моем цикле я говорю, что если ни одна клавиша не нажала на часы отображения. из-за этого, когда я вхожу в меню раздела, он сразу возвращается обратно в Main display clock. Есть ли способ, когда я могу оставаться в разделе меню, если не нажата клавиша Exit/LEFT
Эта основная функция, когда я вызываю функцию LCD_call
void loop()
{
int button;
while(( button = read_LCD_buttons()) != btnNONE)
{
lcd_call();digitalClockDisplay();
}
}
Здесь вызывается LCD_call. LCD_call
break
команда должна прерывать/выходить из цикла. Может случиться так, что условие if
не будет истинным, для любого входного случая.
Попробуйте отладить код, поставив точку останова внутри if
.
if(button==btnSELECT) { break;//place your breakpoint here. }
и проверьте, удовлетворяет ли ваш код условию if
для любого возможного ввода.
Вы уже задали условие в цикле While. Как только условие будет ложным, оно сломает цикл while
Это должно работать:
void lcd_call()
{
while ( (button = read_LCD_buttons()) != btnSELECT)
{
DS_Counter=Display_selection();
switch (DS_Counter)
{
case 1:
lcd.setCursor(0,0);
digitalClockDisplay();
timedBeep(shortBeep,1);
break;
case 2:
lcd.setCursor(0,0);
Display_angle();
timedBeep(shortBeep,1);
break;
case 3:
lcd.setCursor(0,0);
Display_coordinate();
timedBeep(shortBeep,1);
break;
case 4:
lcd.setCursor(0,0);
Display_Wind();
timedBeep(shortBeep,1);
break;
case 5:
break;
}
}
}
read_LCD_buttons()
btnSELECT? Если нет, то это нормально, что ваш цикл никогда не останавливается. Проверьте вашу read_LCD_buttons()
, я уверен, что проблема есть.
break
? С какой линии ты хочешь уйти?