با سلام خدمت دوستان عزیز.من یه کد برنامه دارم که میخوام تنظیمات یک ماژول ساعت رو به صورت دستی ست کنم.اطلاعات مربوط به ساعت،دقیقه و تاریخ رو از طریق کیپد وارد میکنم.هر تنظیکی رو بصورت یک حلقه while نوشتم.مشکل اینجاست که با تغییر واریانت حلقه while،در صورت افزایش به حلقه بعد میره ولی به حلقه قبل بر نمی گرده.از راهنمایتون ممنون میشم.دکمه u جهت بالا و دکمه d جهت پایین در کیپده.با فشار دکمه u به حلقه بعد میره ولی با فشار d هیچ کاری انجام نمیده

void Time&Date(){

DateTime now = RTC.now();
while(submenu==1){
button = customKeypad.getKey();

if (button >='0' && button <='9')
{
temph = temph*10 + (button -'0');
hourupg=temph;
}
else if (temph>=24) {
lcd.print("Not Valid!");
delay(500);
temph=0;
hourupg=0;
}
else if(button=='u')
{
submenu=submenu+1;
lcd.clear();
}
else if(button=='d')
{
submenu=submenu-1;
lcd.clear();
}
else if(button=='b')
{
submenu=0;
menu=1;
lcd.clear();
}

else {
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(0,1);
lcd.print(hourupg, DEC);
delay(50);
}
}
// Setting the minutes
while(submenu==2)
{
button = customKeypad.getKey();
if (button >='0' && button <='9')
{
tempmi = tempmi*10 + (button -'0');
minupg=tempmi;
}
else if (tempmi>=60) {
lcd.print("Not Valid!");
delay(500);
tempmi=0;
minupg=0;
}
else if(button=='u')
{
submenu=3;
lcd.clear();
}
else if(button=='d')
{
submenu=submenu-1;
lcd.clear();
}

else if(button=='b')
{
submenu=0;
menu=1;
lcd.clear();
}

else {
lcd.setCursor(0,0);
lcd.print("Set Minutes:");
lcd.setCursor(0,1);
lcd.print(minupg, DEC);
delay(50);
}
}

// setting the year
while(submenu==3)
{
button = customKeypad.getKey();

if (button >='0' && button <='9')
{
tempy = tempy*10 + (button -'0');
yearupg=tempy;
delay(50);
}
else if (tempy>=2100) {
lcd.print("Not Valid!");
delay(500);
tempy=0;
yearupg=0;
}
else if(button=='u')
{
submenu=submenu+1;
lcd.clear();
}
else if(button=='d')
{
submenu=submenu-1;
lcd.clear();
}
else if(button=='b')
{
submenu=0;
menu=1;
lcd.clear();
}

else {
lcd.setCursor(0,0);
lcd.print("Set Year:");
lcd.setCursor(0,1);
lcd.print(yearupg,DEC);
delay(50);
}
}