Bonjour à tous et merci d'avance à ceux qui auront la gentillesse de me répondre. Mon problème est apparemment ultra simple mais je ne trouve la solution . Je veux lancer une commande "MarcheAvant" d'un robot , attendre et ne rien faire pendant 10 secondes puis reprendre la main. Pour cela j'utilise Mstimer2 qui me génère une interruption toute les secondes. Voici le programme qui tient en quelques lignes.

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
#include <MsTimer2.h>
static byte Compteur = 0;
 
void setup() {
    Serial.begin(115200);
    MsTimer2::set(1000, MAJ);  MsTimer2::start();
}
 
void MAJ(){ Compteur++;}   // le compteur augmente de 1 toutes les secondes
 
void loop(){
   MarcheAvant();               // pour info :lance en marche avant le robot
    while (Compteur<=10);  // tant que le compteur est inférieur à 10 j'attends
    // suite du programme
}
Voilà le programme, il est très simple mais il ne sort jamais du "while" mais si j'écris :
while (Compteur<=10){ Serial.println(Compteur);}, là il fonctionne ????

J'ai beau tourner le problème dans tous les sens je ne comprends pas.
Merci à ceux prendront la peine de me répondre