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
...
}