next up previous contents
suivant: Plus loin ... monter: Troisième étape précédent: Approche temps réel -   Table des matières

Dernière minute

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