Index: branch/toribio/Emb_App/SessionM32C_E8a_system.ini
===================================================================
--- branch/toribio/Emb_App/SessionM32C_E8a_system.ini	(revision 436)
+++ branch/toribio/Emb_App/SessionM32C_E8a_system.ini	(revision 437)
@@ -25,4 +25,4 @@
 [Target]
 M32C E8a SYSTEM=Renesas Communications
 [USER_DATA]
-RESET=ff0020
+RESET=ff004e
Index: branch/toribio/Emb_App/programme_principal_etud.c
===================================================================
--- branch/toribio/Emb_App/programme_principal_etud.c	(revision 436)
+++ branch/toribio/Emb_App/programme_principal_etud.c	(revision 437)
@@ -130,6 +130,11 @@
 short sauter=0;
 short noir=0;
 short i=0;
+short zvert=0;
+short tours=0;
+short jeton=0;
+int numero;
+short kc=1;
 
 void asserv0(){
 	while(1){
@@ -176,7 +181,7 @@
 
 void roue(){
 	while(1){
-		short k=2; //Gain du correcteur P
+		//short k=1;	
 		//lecture de la position de la roue
 		CanFrame req,comm;
 		UINT flag;
@@ -185,7 +190,7 @@
 			comm.data.id='D';
 			comm.data.rtr=0; //indique une écriture
 			if (distance>1000);
-			else comm.data.val=k*(distance-700);
+			else comm.data.val=kc*(distance-700);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);	
 		}
@@ -194,7 +199,7 @@
 			comm.data.id='D';
 			comm.data.rtr=0; //indique une écriture
 			if (distance>1000);
-			else comm.data.val=k*(distance-700);
+			else comm.data.val=kc*(distance-700);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);	
 		}
@@ -229,9 +234,9 @@
 		else if ((sauter==0) && (noir==2)){
 			comm.data.id='D';//zone de passage avant pont piste noire
 			comm.data.rtr=0;
-			k=1;
+			kc=1;
 			if (distance>2000);
-			else comm.data.val=k*(distance-300);
+			else comm.data.val=kc*(distance-300);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);			
 		}
@@ -238,9 +243,9 @@
 		else if ((sauter==0) && (noir==3)){
 			comm.data.id='D';//zone de passage avant pont piste noire
 			comm.data.rtr=0;
-			k=1;
+			kc=1;
 			if (distance>2000);
-			else comm.data.val=k*(distance-250);
+			else comm.data.val=kc*(distance-250);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);			
 		}
@@ -247,9 +252,9 @@
 		else if ((sauter==0) && (noir==4)){
 			comm.data.id='D';//zone de passage du pont piste noire
 			comm.data.rtr=0;
-			k=1;
+			kc=1;
 			if (distance>2000);
-			else comm.data.val=k*(distance-150);
+			else comm.data.val=kc*(distance-150);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);			
 		}
@@ -256,9 +261,9 @@
 		else if ((sauter==0) && (noir==5)){
 			comm.data.id='D';//zone après passage du pont piste noire
 			comm.data.rtr=0;
-			k=2;
+			kc=2;
 			if (distance>2000);
-			else comm.data.val=k*(distance-700);
+			else comm.data.val=kc*(distance-700);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);			
 		}
@@ -272,9 +277,9 @@
 		else if ((sauter==0) && (noir==7)){
 			comm.data.id='D';//zone après passage du pont piste noire
 			comm.data.rtr=0;
-			k=2;
+			kc=2;
 			if (distance>2000);
-			else comm.data.val=k*(distance-700);
+			else comm.data.val=kc*(distance-700);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);			
 		}
@@ -281,9 +286,9 @@
 		else if ((sauter==0) && (noir==8)){
 			comm.data.id='D';//zone en herbe du pont piste noire
 			comm.data.rtr=0;
-			k=2;
+			kc=2;
 			if (distance>2000);
-			else comm.data.val=k*(distance-700);
+			else comm.data.val=kc*(distance-700);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);			
 		}
@@ -290,9 +295,9 @@
 		else if ((sauter==0) && (noir==9)){
 			comm.data.id='D';//dernier virage piste noire
 			comm.data.rtr=0;
-			k=2;
+			kc=2;
 			if (distance>2000);
-			else comm.data.val=k*(distance-700);
+			else comm.data.val=kc*(distance-700);
 			snd_dtq(CanTx, comm.msg);
 			dly_tsk(5);			
 		}
@@ -342,7 +347,7 @@
 		else if ((sauter==0) && (noir==9)){
 			requete.data.val=12;} //dernier virage piste noir
 		snd_dtq(CanTx, requete.msg);
-		dly_tsk(5);
+		dly_tsk(10);
 	}
 	
 		
@@ -368,6 +373,20 @@
 	}
 }
 
+void numpiste(){
+	CanFrame Numpiste;
+	UINT flag;
+	while(1){	
+	Numpiste.data.id='M';
+	Numpiste.data.rtr=1;
+	periph[ADDR('M')].ev=0x04;
+	snd_dtq(CanTx,  Numpiste.msg);
+	//Attente de la réponse
+	wai_flg (ev_periph, 0x04, TWF_ANDW, &flag);	
+	numero=periph[ADDR('M')].val<<8;
+	dly_tsk(100);	}	
+}
+
 void saut(){
 	while(1){	
 		if (numcapt==3 && virage!=16896){
@@ -397,7 +416,7 @@
 		}
 		else if ((numcapt==1) && (virage==18944)){
 			noir=3; //zone de virage passage du pont
-			//LED_R=1;
+			
 		}
 		else if ((numcapt==4) && (virage==17152)){
 			noir=9; // dernier virage
@@ -433,7 +452,65 @@
 		dly_tsk(5);
 	}	
 }
+void tour(){
+	while(1){
+	CanFrame vitesse;
+	
+	if(numcapt==1 && virage==22016){
+		jeton=1;
+	}
+	if(numcapt==2 && virage==22016){
+		if(jeton==1){
+			tours++;
+			jeton=0;}
+	}
+	
+	if (tours==3){
+		if(numcapt==1 && virage==22016){
+		vitesse.data.id='V';
+		vitesse.data.rtr=0;
+		vitesse.data.val=0;
 
+		snd_dtq (CanTx,vitesse.msg);
+		
+		isus_tsk(ID_asserv0);
+		isus_tsk(ID_roue);
+		isus_tsk(ID_regvitesse);
+		isus_tsk(ID_dist);
+		isus_tsk(ID_zone);
+		isus_tsk(ID_saut);
+		isus_tsk(ID_pistenoire);
+		isus_tsk(ID_tour);
+		isus_tsk(ID_ecran);
+		isus_tsk(ID_numpiste);
+		}
+	}
+	dly_tsk(5);
+	}	
+}
+void ecran(){
+	while(1){
+		dly_tsk(250);
+		lcd_init();
+		switch(numero){
+			case(256) : lcd_str("VERT|"); break;
+			case(512) : lcd_str("BLEU|"); break;
+			case(768) : lcd_str("ROUGE|"); break;
+			case(1024) : lcd_str("NOIR|"); break;
+		}
+		switch(virage){
+			case(22016) : lcd_str("VERT|"); break;
+			case(17152) : lcd_str("BLEU|"); break;
+			case(20992) : lcd_str("ROUGE|"); break;
+			case(18944) : lcd_str("JAUNE|"); break;
+			case(16896) : lcd_str("CYAN|"); break;
+		}
+		if (p0_4==0) LED_R=1;
+		else LED_R=0;
+	}
+}
+
+
 
 void main()
 {
@@ -455,8 +532,14 @@
 	sta_tsk(ID_dist);
 	sta_tsk(ID_roue);
 	sta_tsk(ID_zone);
-//	sta_tsk(ID_saut);
-	sta_tsk(ID_pistenoire);
+	sta_tsk(ID_tour);
+	sta_tsk(ID_ecran);
+	sta_tsk(ID_numpiste);
+if(numero==768){	sta_tsk(ID_saut);
+ kc=2;}
+if (numero==1024){	sta_tsk(ID_pistenoire);
+kc=2;}
+
 	
    while(1)
     {
Index: branch/toribio/Emb_App/conf_noyau.cfg
===================================================================
--- branch/toribio/Emb_App/conf_noyau.cfg	(revision 436)
+++ branch/toribio/Emb_App/conf_noyau.cfg	(revision 437)
@@ -120,10 +120,46 @@
 	exinf	= 0x0;
 	
 };
+
+task[]{
+	entry_address	= tour();
+	name	= ID_tour;
+	stack_size	= 512;
+	stack_section	= stack;
+	priority	= 5;
+	initial_start	= OFF;
+	exinf	= 0x0;
 	
+};
 
+task[]{
+	entry_address	= ecran();
+	name	= ID_ecran;
+	stack_size	= 512;
+	stack_section	= stack;
+	priority	= 5;
+	initial_start	= OFF;
+	exinf	= 0x0;
+	
+};
 
+task[]{
+	entry_address	= numpiste();
+	name	= ID_numpiste;
+	stack_size	= 512;
+	stack_section	= stack;
+	priority	= 5;
+	initial_start	= OFF;
+	exinf	= 0x0;
 	
+};
+
+
+	
+	
+
+
+	
 task[]{
 	entry_address	= periph_tx();
 	name	= ID_periph_tx;
