Index: branch/najib_idzim/tp_info6/Emb_App/SessionM32C_E8a_system.ini
===================================================================
--- branch/najib_idzim/tp_info6/Emb_App/SessionM32C_E8a_system.ini	(revision 355)
+++ branch/najib_idzim/tp_info6/Emb_App/SessionM32C_E8a_system.ini	(revision 356)
@@ -25,4 +25,4 @@
 [Target]
 M32C E8a SYSTEM=Renesas Communications
 [USER_DATA]
-RESET=ff0028
+RESET=ff0026
Index: branch/najib_idzim/tp_info6/Emb_App/programme_principal_etud.c
===================================================================
--- branch/najib_idzim/tp_info6/Emb_App/programme_principal_etud.c	(revision 355)
+++ branch/najib_idzim/tp_info6/Emb_App/programme_principal_etud.c	(revision 356)
@@ -129,16 +129,19 @@
 int lireCapt();
 char typeCapteur();
 int lireEvent();
+short lireClavier();
 
-unsigned short distance = 56;
+
 int capt = 0;
 int even = 0;
+short code_touche = 0;
+
 void main()
 {
 	ports_mcu();
     lcd_init();
 	periph_init();
-	periph_nom("#Ferrari");
+	periph_nom("#Auto");
           
     can_init();
     clavier_init(1);
@@ -145,7 +148,7 @@
 	capture_init();
 
 	sta_cyc(ID_acqui);
-	sta_tsk(ID_periph_rx); // tache de tri de reponse du simulateur
+	sta_tsk(ID_periph_rx); // tache de tri des reponses du simulateur
 	
 	
 	
@@ -160,9 +163,16 @@
 	
     while(1)
     {
+		
+		even = lireEvent();
 		capt = lireCapt();
-		even = lireEvent();
-		dly_tsk(100);
+		code_touche = lireClavier();
+		if ( (capt == 0x5202) && (even == 0x0001) )
+			{
+				vitesseVoiture(46);
+				cmdRoue(0);
+			
+			}
 		
     }
 }
@@ -283,6 +293,7 @@
 	snd_dtq(CanTx, requete.msg);
 	
 	wai_flg(ev_periph, 0x03, TWF_ANDW, &flag);
+	
 	return  periph[ADDR('C')].val;
 }
 
@@ -292,14 +303,14 @@
 	int capteur = lireCapt();
 	char val;
 	
-	lsb &= 0b00001111;
-	msb &= 0b11110000; 
+	lsb = capteur & 0x00FF;
+	msb = capteur & 0xFF00; 
 	
-	if (lsb == 6)
+	if (msb == 0x5600)
 	{
-		if (msb == 'C')
+		if (lsb == 0x03)
 		{
-			return 'C';
+			return 1;
 		}
 	}
 	return 0;
@@ -306,26 +317,6 @@
 }
 
 // les evenements
-
-// Si le simulateur envoi un evenement sur 16 bits il est recu grace a:
-// par exemple:  wai_flg(event,(FLGPTN) 0x0007,TWF_ORW,&flag); // Declarer la variable flag comme : FLGPTN flag
-// Attention l'evenement n'est pas efface apres reception, il faut donc utiliser clr_flg(event,~flag); par example
-//Bit   Information associee            Remarque
-//0     Capteur Vert,                   remis a zero lors de la lecture du peripherique 'C'
-//1     Capteur Jaune,                  remis a zero lors de la lecture du peripherique 'C'
-//2     Capteur Rouge,                  remis a zero lors de la lecture du peripherique 'C'
-//3     Capteur Bleu,                   remis a zero lors de la lecture du peripherique 'C'
-//4     Capteur Cyan,                   remis a zero lors de la lecture du peripherique 'C'
-//5
-//6     Collision avec le sol,          remise a zero au changement de piste.
-//7     Fin de course (capteur vert),   remis a zero lors de la lecture du peripherique 'C'
-//8     La piste a change ,             remis a zero lors de la lecture du peripherique 'M'
-//9     Le mode de course a change ,    remis a zero lors de la lecture du peripherique 'M'
-//10
-//11    Le vehicule a termine un tour,   remis a zero au changement du mode de course.
-//12    Sortie de la piste,
-//13    Teleportation a ete utilisee,   remis a zero au changement de piste ou du mode de course.
-//14    Faux depart                     remise a zero au changement du mode de course.
 
 int lireEvent()
 {
@@ -356,7 +347,6 @@
 		posSortie = posTourelle();         
 		vit = k*( posCons - posSortie);  //correcteur Prop
 		vitesseTourelle(vit);
-		
 		dly_tsk(100);
 	}
 
@@ -369,13 +359,12 @@
 	int angle;
 	
 	
-	k = 2.8;                //gain definni experimentalement
+	k = 2.5;                //gain definni experimentalement
 	distanceCons = 500;//disMur(); //Pos initiale milieu de piste
 	
 	while(1)
 	{
 		distanceMesure = disMur();
-		
 		if ( distanceMesure >= 1000)   // detection des trous
 		{
 			cmdRoue(0);
@@ -386,6 +375,18 @@
 			cmdRoue(angle);
 			
 		}
+	
 		dly_tsk(25);
 	}
 }
+
+//clavier
+
+short lireClavier()
+{
+	short touche;
+	vrcv_dtq(QdmTouche, &touche);
+	return touche;
+}
+
+//LCD
