Bonjour à tous,
Je suis nouveau sur le forum et j'apprécie déjà beaucoup cet endroit^^
Je travaille en ingé méca et je viens de me lancer dans le C++ depuis peu pour bricoler le weekend. Je ne connaissais jusqu'à maintenant que les langages d'automatisme indus.
Je suis en train de remplacer l'électronique de mon sèche linge afin d'avoir un afficheur LCD des capteurs d'humidité, horloge, consommation ect
J’espère que quelqu'un pourra m'apprendre ce qui cloche dans l'extrait de mon code ci dessous (j'ai enlever tout le reste pour que mon problème soit plus lisible):
J'arrive facilement à contourner le problème en créant une variable globale mais j'aimerais vraiment comprendre pourquoi Disptime change d'état alors que les conditions du if ne sont pas atteintes.. Si je supprime la ligne dans le if, la variable ne change pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 void setup() { Serial.begin(9600); } void loop() { bool Sel; unsigned char Nav; bool Disptime; Serial.print ("avant le if :");Serial.print (Sel);Serial.print (Nav);Serial.println (Disptime); //le resultat print est=> 000 if (Sel == true && Nav==5){ Disptime = true; } //le résultat print est=> 001 //Pourquoi l'état change alors que les conditions du if ne sont pas atteintes???????!!! Serial.print ("après le if :");Serial.print (Sel);Serial.print (Nav);Serial.println (Disptime); Serial.println(); delay(2000); } //le "bug" est contourner si je déplace "bool Disptime;" en variable globale.. //mais Pourquoi??? je peut aussi init la variable en false à chaque scrutations mais //je ne veut pas faire ça.
Merci d'avance pour votre aider
Partager