Index: branch/nan_cao/Emb_App/SessionM32C_E8a_system.ini
===================================================================
--- branch/nan_cao/Emb_App/SessionM32C_E8a_system.ini	(revision 465)
+++ branch/nan_cao/Emb_App/SessionM32C_E8a_system.ini	(revision 466)
@@ -25,4 +25,4 @@
 [Target]
 M32C E8a SYSTEM=Renesas Communications
 [USER_DATA]
-RESET=ff0012
+RESET=ff014e
Index: branch/nan_cao/Emb_App/programme_principal_etud.c
===================================================================
--- branch/nan_cao/Emb_App/programme_principal_etud.c	(revision 465)
+++ branch/nan_cao/Emb_App/programme_principal_etud.c	(revision 466)
@@ -126,6 +126,7 @@
 short vitesse;
 short vitourelle;
 short num_piste;
+short col_zone;
 short m;
 short cap;
 short numcap;
@@ -132,6 +133,7 @@
 short couleurcap;
 short mod;
 short angle;
+short notour;
 
 CanFrame comm_ang;
 CanFrame comm_vitesse;
@@ -181,7 +183,7 @@
 			comm_ang.data.id='D';						//angle de roue
 			comm_ang.data.rtr=0;
 			comm_ang.data.val=angle;
-	 		if(distance < 1100) angle=-(700-distance);
+	 		if(distance < 2000) angle=-(700-distance);
 			else comm_ang.data.val=0;
 			snd_dtq(CanTx,comm_ang.msg);
 			dly_tsk(20);
@@ -202,7 +204,8 @@
 			wai_flg(ev_periph, 0x04, TWF_ANDW,&flag);
 			
 			cap=periph[ADDR('C')].val;				// contient la valeur de retour du simulateur.
-
+			col_zone= cap&0xFF00>>8;
+			
 			req.data.id='M';						//mode de course
 			req.data.rtr=1; 	
 			periph[ADDR('M')].ev=0x05;
@@ -210,7 +213,8 @@
 			wai_flg(ev_periph, 0x05, TWF_ANDW,&flag);
 			
 			mod=periph[ADDR('M')].val;				// contient la valeur de retour du simulateur. numero de piste, tricouleur et mode
-			num_piste= mod&0x000F;
+			num_piste= mod&0x00FF;
+		
 
 		}	
 
@@ -242,8 +246,6 @@
 }
 */
 
-
-/*   6 seance
 void vit(){
 		
 	while(1)
@@ -251,31 +253,75 @@
 			dly_tsk(500);
 			comm_vitesse.data.id='V';						//Vitesse de la tour
 			comm_vitesse.data.rtr=0;
-			comm_vitesse.data.val=vitesse;
+			
+			if(Bp_G==1 || notour==4) comm_vitesse.data.val=0;
+			else comm_vitesse.data.val=vitesse;
 			snd_dtq(CanTx,comm_vitesse.msg);
 		}
 }
-*/
 
-void vit(){
+
+void tour(){
+		CanFrame req;
 		
 	while(1)
 		{	
-			dly_tsk(500);
-			comm_vitesse.data.id='V';						//Vitesse de la tour
-			comm_vitesse.data.rtr=0;
 			
-			if(Bp_G==1) comm_vitesse.data.val=0;
-			else comm_vitesse.data.val=vitesse;
-			snd_dtq(CanTx,comm_vitesse.msg);
+			comm_vitesse.data.id='E';						//nombre de tour
+			comm_vitesse.data.rtr=1;
+			
+			snd_dtq(CanTx,req.msg);
+			notour=periph[ADDR('E')].val;
+			dly_tsk(20);
 		}
 }
+
+int act_time;
+
+void timez(){
+		CanFrame req;
+		char afficher[20];
+		
+	while(1)
+		{	
+			
+			comm_vitesse.data.id='H';						//nombre de tour
+			comm_vitesse.data.rtr=1;
+			
+			snd_dtq(CanTx,req.msg);
+			act_time=periph[ADDR('H')].val;
+			
+			sprintf(afficher, "%d", act_time);
+			lcd_str(afficher);
+			dly_tsk(20);
+		}
+}
+
 void affichage()
 {
+	char str1[20];
+	char str2[20];
+	
+	int flage=1;
+	
 	while(1){
-		dly_tsk(10);
-		lcd_putc('mod');
+		dly_tsk(50);
+		if(num_piste==1 && flage)
+		{
+			lcd_str("piste vert");
+			flage=0;
 		}
+		if(num_piste==2)
+		lcd_str("piste bleu");
+		if(num_piste==3)
+		lcd_str("piste rough");
+		if(num_piste==4)
+		lcd_str("piste noire");
+		
+		
+	//	if(col_zone==1)
+	//	lcd_str("zone vert");
+		}
 	}
 
 
@@ -289,16 +335,19 @@
 	periph_init();
 	periph_nom("#nan*");
 
-	lcd_putc(1);
+	
     can_init();
     clavier_init(1);
 	capture_init();
 	
-	sta_tsk(ID_affichage);
+
 	sta_tsk(ID_ang_roue);
 	sta_tsk(ID_ang_tourelle);
 	sta_tsk(ID_vitesse);
-	sta_tsk(ID_capteur);
+	sta_tsk(ID_affichage);
+	sta_tsk(ID_capteur);
+	sta_tsk(ID_time);
+	sta_tsk(ID_tour);
 	sta_cyc(ID_acqui);
 	sta_tsk(ID_periph_rx);
 	
@@ -308,23 +357,27 @@
 		
 			switch(num_piste){
 			case 1:
-				vitesse=30;
+				if(distance < 850) vitesse=40;	
+				
+				else vitesse=1;
+			break;
 			
-			break;
 			case 2:
-				vitesse=30;	
+				if(distance < 850) vitesse=35;	
+				else vitesse=1;
 			break;
 			
 			case 3:
-				if(cap==0x7601) {
-					vitesse=60;
-				}
+		
+			 if (cap==0x7601) vitesse=60;
 				else if (cap==0x4203) vitesse=5;
 				else if (cap==0x5202) vitesse=40;
+				else if (cap==0x5603) vitesse=60;
 				else if (cap==0x7610) vitesse=0;
-				else if (cap==0x7602) vitesse=5;
+				else if (cap==0x7602) vitesse=10;
 				else if (cap==0x5604) vitesse=5;	
-				else vitesse=30;
+				else if (distance < 850)vitesse=35;
+				else vitesse=1;
 				break;			
 			}
 	
@@ -348,3 +401,4 @@
 }
 
 
+
Index: branch/nan_cao/Emb_App/conf_noyau.cfg
===================================================================
--- branch/nan_cao/Emb_App/conf_noyau.cfg	(revision 465)
+++ branch/nan_cao/Emb_App/conf_noyau.cfg	(revision 466)
@@ -67,7 +67,7 @@
 	name	= ID_vitesse;
 	stack_size	= 512;
 	stack_section	= stack;
-	priority	= 7;
+	priority	= 2;
 	initial_start	= OFF;
 	exinf	= 0x0;
 };
@@ -80,18 +80,34 @@
 	initial_start	= OFF;
 	exinf	= 0x0;
 };
-
 task[]{
 	entry_address	= affichage();
 	name	= ID_affichage;
 	stack_size	= 512;
 	stack_section	= stack;
-	priority	= 7;
+	priority	= 4;
 	initial_start	= OFF;
 	exinf	= 0x0;
 };
-
 task[]{
+	entry_address	= tour();
+	name	= ID_tour;
+	stack_size	= 512;
+	stack_section	= stack;
+	priority	= 6;
+	initial_start	= OFF;
+	exinf	= 0x0;
+};
+task[]{
+	entry_address	= timez();
+	name	= ID_time;
+	stack_size	= 512;
+	stack_section	= stack;
+	priority	= 6;
+	initial_start	= OFF;
+	exinf	= 0x0;
+};
+task[]{
 	entry_address	= periph_tx();
 	name	= ID_periph_tx;
 	stack_size	= 256;
Index: branch/nan_cao/bsp/lcd.c
===================================================================
--- branch/nan_cao/bsp/lcd.c	(revision 465)
+++ branch/nan_cao/bsp/lcd.c	(revision 466)
@@ -120,5 +120,5 @@
 {
 int i;
 
-	for  (i=0;i<n*60;i++);
+;	for  (i=0;i<n*60;i++);
 }
\ No newline at end of file
