Il y a un truc que je comprend pas dans les codes suivants.
Ca c'est le code d'une fonction :

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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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