tram de préambule sur telecomande IR

Bonjour les amis

Voici une partie de mon programme de décodage IR

void loop()
{
        int i = 0;
        unsigned long t = 0;
 
        byte prevBit = 0;
        byte bit = 0;
 
       
 
        // latch 1
        while((t < 9480 || t > 10350))
        {       t = pulseIn(rxPin, LOW, 1000000);
        }
 
        // latch 2
        while(t < 2550 || t > 2700)
        {       t = pulseIn(rxPin, LOW, 1000000);
        }
 
        // data
        while(i < 64)
        {
                t = pulseIn(rxPin, LOW, 1000000);
 
                if(t > 200 && t < 365)
                {       bit = 0;
                }
                else if(t > 1000 && t < 1360)
                {       bit = 1;
                }
                else
                {       i = 0;
                        break;
                }

Je voudrait doubler le préambule
J’ai donc ajouté "unsigned long t2 = 0; » ainsi que latch 3 et latch 4

void loop()
{
        int i = 0;
        unsigned long t = 0;
        unsigned long t2 = 0;
 
        byte prevBit = 0;
        byte bit = 0;
 
        
 
        // latch 1
        while((t < 9480 || t > 10350))
        {       t = pulseIn(rxPin, LOW, 1000000);
        }
 
        // latch 2
        while(t < 2550 || t > 2700)
        {       t = pulseIn(rxPin, LOW, 1000000);
        }
         // latch 3
        while((t2 < 9480 || t2 > 10350))
        {       t = pulseIn(rxPin, LOW, 1000000);
        }
 
        // latch 4
        while(t2 < 2550 || t2 > 2700)
        {       t2 = pulseIn(rxPin, LOW, 1000000);
        }

Il y a surement plus simple que de rajouter "unsigned long t2 = 0; » ainsi que latch 3 et latch 4
J’ai essayé un compteur mais ça ne marche pas
Je galère depuis quelque jours la dessus
Si vous avez une idée ce serait cool
Merci d’avance

si le while ne met pas à jour la variable qui sert dans sa condition vous allez être coincé à vie…

while((t2 < 9480 || t2 > 10350)) {
  t = pulseIn(rxPin, LOW, 1000000);  // <==== t2 pas t ...
}