Aller au contenu

GO Print

kusi

Membres
  • Compteur de contenus

    1
  • Inscrit(e) le

  • Dernière visite

Contact

Récompenses de kusi

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In

Badges récents

0

Réputation sur la communauté

  1. kusi

    Déshydrateur

    Salut ! Pour modifier une variable, il faut que celle-ci soit déclarée en globale et que la fonction de callback du menu correspondant te permette de la modifier. Pour cela tu peux t'inspirer du fonctionnement de la fonction displayMenu en l'adaptant quelque peu pour afficher une variable et la modifier grâce au clavier. Voici un exemple minimal montrant l'idée : int myVar=0; static const char* MAIN_MENU_ITEMS[] = { "Cycle simple", "Cycle express" }; static const Menu_t MAIN_MENU = { "Votre choix ?", MAIN_MENU_ITEMS, 2, &doMainMenuAction }; void setup(void){} void loop(void){ displayMenu(MAIN_MENU); } void doMainMenuAction(byte selectedMenuItem) { if(selectedMenuItem == 0) { setMode(0); } else { setMode(1); } } void setMode(int Mode){ int tempVar = myVar; //On stocke la valeur de myVar dans une variable temporaire bool myVar_is_set =false; Button_t buttonPressed; while(!myVar_is_set){ lcd.clear(); lcd.print(F("MyVar :")); lcd.setCursor(0, 1); lcd.print(tempVar); while((buttonPressed = readPushButton()) == BP_NONE); delay(30); while(readPushButton() != BP_NONE); switch(buttonPressed) { case BP_UP: tempVar++; //On incrémente de 1 la valeur affichée break; case BP_DOWN: if(tempVar>0){ tempVar--; } break; case BP_RIGHT: myVar=tempVar; //On enregistre la valeur souhaitée myVar_is_set=true; break; case BP_LEFT: return; break; } } //myVar est fixée, on continue runCycle(Mode); } void runCycle(int Mode){ La fonction qui va gérer les cycles } tu as un menu principal te permettant de gérer les différents cycles. Quand tu en sélectionnes un, tu te retrouves devant un écran te proposant de donner une valeur à "myVar", géré par la fonction setMode. Une fois que c'est fait, la fonction runCycle est appelée pour gérer ton cycle. Ce n'est qu'un exemple, mais tu devrais pouvoir l'adapter à ton cas et à tes variables J'avais utilisé la méthode de skywodd dont tu parles pour créer les menus d'un capteur de pression. Au besoin je pourrai te retrouver le code si tu as besoin d'un exemple plus "réel"
×
×
  • Créer...