نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
این برنامه رو ببین
3 صفحه منو داره
اگه وارد صفحه 2 و 3 شد اما 5 ثانیه هیچ اکشنی انجام نشد برمیگرده به صفحه اول :
کد:
#include <LCD_GFX.h>
#include <NOKIA5110.h>


NOKIA5110 display = NOKIA5110(7, 6, 5, 4, 3);


int mpage = 0;
int flag8 = 0;
int oldflag8 = 0;
int counter = 0;
long long previousMillis = 0;
unsigned long currentMillis = 0;
void setup()   {
  Serial.begin(9600);
  display.begin();
  display.setContrast(60);
  display.display(); // show splashscreen
  delay(2000);
  display.clearDisplay();   // clears the screen and buffer
  pinMode(8, INPUT_PULLUP);
  pinMode(9, INPUT_PULLUP);
  Serial.println("End of setup");
}




void loop() {
  keyAction();
}


void showData(String data) {
  display.println(data);   //Write a Text
  display.setTextSize(1);
  display.display();
  display.clearDisplay();
  display.setCursor(0, 15);
  display.println("Counter=");   //Write a Text
  display.setTextSize(1);
  display.display();
  display.clearDisplay();
  display.setCursor(50, 15);
  display.println(counter);   //Write a Text
  display.setTextSize(1);
  display.display();
  display.clearDisplay();
}


void keyAction()
{
  currentMillis = millis();
  if ( digitalRead(8) == LOW  ) {
    previousMillis = currentMillis;
    flag8++;
    delay(200);
  }
  if ( digitalRead(9) == LOW  ) {
    previousMillis = currentMillis;
    counter++;
    delay(200);
  }
  menuProcess() ;
  menuTimeProcess() ;
}


void menuProcess() {
  if ( flag8 == 0)  {
    Serial.println("first");
    showData("Main menu");
    oldflag8 = flag8;
  }
  if ( flag8 == 1)  {
    Serial.println("second");
    showData("submenu1");
  }
  if ( flag8 == 2) {


    Serial.println("Third");
    showData("submenu2");
  }
  if ( flag8 == 3) {
    flag8 = 0;
  }
}
void menuTimeProcess() {
  long diff = currentMillis - previousMillis;
  if ( diff > 5000 )  {
    flag8 = 0;
  }
}
خیلی هم خوب
من یه نگاه به کد انداختم برام یه سوال پیش اومد
مگه تو اسکچ توابع اصلی loop و setup نیستن؟ اگه باشن پس هر تابع دیگه ای باید حداقل تو یکی از این دوتا تابع فراخوان بشه که عمل کنه دیگه
الان تو این کد برای مثال تابع menuprocess که تعریف شده تو هیچ کدوم از توابع loop یا setup فراخوان نشده ،
پس چجوری تاثیر میذاره؟