un #define un peu compliqué pour gérer un time out

J'ajoute tout de même que ce qui me pose problème, c'est l'utilisation de "condition" dans un #define. Je suis vraiment pas sûr que ça marche...

Par contre, le code en dur suivant marche à la perfection :

boolean timeOutOK;

  timeOutOK = false; // initialiser la variable de résultat : false si la condition ne se réalise pas dans le temps imparti.
  msB = 2000;      // initialiser le compteur msB
  timer0_start;    // démarrer le timer0
  while(msB) {      // tourner en boucle tant que msB n'est pas à 0 
    if(PIND & 0x10) {  // la condition est vérifiée?
      timeOutOK = true; // alors on arrête tout, c'est bon!
      break;
    }
  }
  timer0_stop;  // arrêter le timer
  if (timeOutOK) {  // la condition a été vérifiée
    ...
  } else {  // la condition n'a pas été vérifiée
    ...
  }