-
مشکل در اجرای حلقه while
با سلام خدمت دوستان عزیز.من یه کد برنامه دارم که میخوام تنظیمات یک ماژول ساعت رو به صورت دستی ست کنم.اطلاعات مربوط به ساعت،دقیقه و تاریخ رو از طریق کیپد وارد میکنم.هر تنظیکی رو بصورت یک حلقه 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);
}
}
-
از طریق سریال مانیتور یا خود ال سی دی پرینت بگیر ببین بعد از فشار دادن دکمه d چه اتفاقی میوفته .
مجوز های ارسال و ویرایش
- شما نمیتوانید موضوع جدیدی ارسال کنید
- شما امکان ارسال پاسخ را ندارید
- شما نمیتوانید فایل پیوست کنید.
- شما نمیتوانید پست های خود را ویرایش کنید
-
مشاهده قوانین انجمن
SEO by vBSEO