Problème sur boucle While
Il y a un truc que je comprend pas dans les codes suivants.
Ca c'est le code d'une fonction :
Code:
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
void Maj_Date()
{
//Le booléen passe à faux
DCF77 = false;
//Boucle de x cycles avec sortie si DCF77 = true
while (essai < 10)
{
static uint8_t longueur = 0;
bool trame_decodee = decodeurDCF77.traiterSignal(digitalRead(PIN_DCF77), millis());
Serial.print("Oui");
if (trame_decodee)
{
Serial.print(' ');
//Serial_printDCF77();
DCF77 = true;
Serial.print("Oui");
}
if (longueur > decodeurDCF77.longueur_trame_en_cours())
{
longueur = 0;
Serial.println();
essai = essai + 1;
Serial.print("Nombre d'essai :");
Serial.print(essai);
Serial.println();
}
while (longueur < decodeurDCF77.longueur_trame_en_cours())
{
Serial.print(decodeurDCF77.bit_trame(longueur++));
}
}
} |
J'y déclenche une boucle qui doit se répéter 10 fois et ça semble bien fonctionner
Mais là ou je ne comprend pas c'est pour cette boucle :
Code:
1 2 3 4
| while (longueur < decodeurDCF77.longueur_trame_en_cours())
{
Serial.print(decodeurDCF77.bit_trame(longueur++));
} |
Selon moi, elle devrait se dérouler sans sortir tant que longueur est < à la longueur de trame du DCF77 non ?
Or ça n'est pas le cas.
Pour tester, j'ai mis un Serial.print en dehors de cette boucle et il est répété indéfiniment
Je ne comprend pas