نمایش نتایج: از 1 به 2 از 2

موضوع: مشکل در اجرای حلقه while

  1. #1
    Junior Member
    تاریخ عضویت
    Feb 2018
    نوشته ها
    1

    مشکل در اجرای حلقه 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);
    }
    }

  2. #2
    Senior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    153
    از طریق سریال مانیتور یا خود ال سی دی پرینت بگیر ببین بعد از فشار دادن دکمه d چه اتفاقی میوفته .

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO