suivant: Plus loin ...
monter: Troisième étape
précédent: Approche temps réel -
  Table des matières
La remarque du paragraphe ci-dessus ayant été prise en compte, on aboutit au
code donné en Annexe B.
Les nombreuses tâches s'occupant de lire les valeurs sur les capteurs, et déclenchant les évènements adéquats
sont remplacées par la fonction suivante,tandis que la fonction
vitesseGrad() lit désormais directement la valeur du capteur
LIGHT_1.
int watchDir()
{
while(1){
if (ULTRA_BRIGHT(LIGHT_3)) dir= 0;
if (ULTRA_BLANC(LIGHT_3)) dir=-1;
if (ULTRA_NOIR(LIGHT_3)) dir= 1;
}
return 0;
}
Avec ceci, les pathologies relevées précédemment ont disparu, on a fait l'économie de quelques sémaphores, et les procédures de lancer fonctionnent mieux, bien qu'il devienne
là aussi nécessaire d'envisager la possibilité d'interagir via une procédure sur les paramètres de cette fonction, en fonction
cette fois de la charge des batteries.
C'est ce code qui sera présenté en Annexe B.2.4
2001-01-11