Index: branch/bacher/Emb_App/SessionM32C_E8a_system.ini
===================================================================
--- branch/bacher/Emb_App/SessionM32C_E8a_system.ini	(revision 434)
+++ branch/bacher/Emb_App/SessionM32C_E8a_system.ini	(revision 435)
@@ -25,4 +25,4 @@
 [Target]
 M32C E8a SYSTEM=Renesas Communications
 [USER_DATA]
-RESET=ff005a
+RESET=ff00ac
Index: branch/bacher/Emb_App/programme_principal_etud.c
===================================================================
--- branch/bacher/Emb_App/programme_principal_etud.c	(revision 434)
+++ branch/bacher/Emb_App/programme_principal_etud.c	(revision 435)
@@ -144,10 +144,15 @@
 int compte_tour=0;
 int i_tour=0;
 int stop=0;
-int i_urgence=0;
-int s_urgence=0;
-int cu;
+int i_urgence=0; //incrément d'urgence
+int s_urgence=0; //signal d'urgence
+int cu=0;
 
+int Temps;
+int sec;
+int cent_sec;
+char c_Temps[6];
+
 FLGPTN flag_capt;
 FLGPTN flag_pist;
 
@@ -154,6 +159,7 @@
 CanFrame vit_roue; //canal de commande de la vitesse
 CanFrame capteur; 
 CanFrame piste;
+CanFrame demande_temps;
 
 void demarre()
 {
@@ -161,33 +167,39 @@
 	piste.data.id='M';
   	piste.data.rtr=1; 
 	periph[ADDR('M')].ev=0x04;
-	snd_dtq(CanTx, piste.msg);
-	wai_flg (ev_periph, 0x04, TWF_ANDW, &flag_pist);
-
-	retour_M=periph[ADDR('M')].val;
-	num_piste=retour_M & 0x007F;
-	switch(num_piste){
-		case 4: //piste noire
-			vitesse=30;
-			vitesse_virage=30;
-			mode=0;
-			break;
-		case 1: //piste verte
-			vitesse=70;
-			vitesse_virage=30;
-			mode=0;
-			break;
-		case 2: //piste bleue
-			vitesse=50;
-			vitesse_virage=30;
-			mode=0;		
-			break;
-		case 3: //piste rouge
-			vitesse=60;
-			vitesse_virage=30;
-			mode=0;
-			break;
+	while(col_feu!=-1){
+		snd_dtq(CanTx, piste.msg);
+		wai_flg (ev_periph, 0x04, TWF_ANDW, &flag_pist);
+	
+		retour_M=periph[ADDR('M')].val;
+		num_piste=retour_M & 0x007F;
+		col_feu=retour_M>>15;
+	
+		switch(num_piste){
+			case 4: //piste noire
+				vitesse=30;
+				vitesse_virage=30;
+				mode=0;
+				break;
+			case 1: //piste verte
+				vitesse=65;
+				vitesse_virage=30;
+				mode=0;
+				break;
+			case 2: //piste bleue;
+				vitesse=50;
+				vitesse_virage=30;
+				mode=0;		
+				break;
+			case 3: //piste rouge
+				vitesse=60;
+				vitesse_virage=30;
+				mode=0;
+				break;
 		}
+		dly_tsk(200);
+	}
+	sta_tsk(ID_LCD);
 	vit_roue.data.id='V'; 
     vit_roue.data.rtr=0; 
     vit_roue.data.val=vitesse;
@@ -200,7 +212,7 @@
 	CanFrame req;
 	CanFrame reponse;
 	while(1){
-		
+		if(s_urgence==0){
 			
     		req.data.id='R'; 
     		req.data.rtr=1;
@@ -213,8 +225,8 @@
     		comm.data.val=valeur;
     		if(s_urgence==0)snd_dtq (CanTx,comm.msg); //on envoie la modification à effectuer
 			if(retour!=cons) valeur=k*(cons-retour);
-			dly_tsk(20);
-		
+		}
+		dly_tsk(20);	
 	}
 }
 
@@ -259,7 +271,7 @@
 	CanFrame req;
     UINT flag;
     while(1){
-			
+		if(s_urgence==0){	
         	req.data.id='U';
         	req.data.rtr=1;
         	periph[ADDR('U')].ev=0x02;
@@ -271,8 +283,8 @@
 			else {
 				distance=periph[ADDR('U')].val;
 				}
-			dly_tsk(10);
-			
+		}
+		dly_tsk(10);			
 	}
 }
 
@@ -281,7 +293,7 @@
     CanFrame req,comm;
     UINT flag;
    	while (1) {
-		
+		if(s_urgence==0){	
 			req.data.id='D';
         	req.data.rtr=1;
         	periph[ADDR('D')].ev=0x01;
@@ -300,8 +312,8 @@
         		
 			}
 			if(s_urgence==0)snd_dtq(CanTx, comm.msg); 
-			dly_tsk(10);
-		
+		}
+		dly_tsk(10);	
 	}
 }
 
@@ -319,33 +331,9 @@
 		numcapt=retour_C & 0x00ff;
 		if ((retour_C & 0xff00)!=colcapt) {
 		colcapt=retour_C & 0xff00;
-		//AFFICHAGE DE LA COULEUR ET DU CIRCUIT
-		switch(colcapt){
-			case 0x5600:
-			lcd_init();
-			lcd_str("vert");
-			break;
-			case 0x4a00:
-			lcd_init();
-			lcd_str("jaune");
-			break;
-			case 0x5200:
-			lcd_init();
-			lcd_str("rouge");
-			break;
-			case 0x4200:
-			lcd_init();
-			lcd_str("bleu");
-			break;
-			case 0x4300:
-			lcd_init();
-			lcd_str("cyan");
-			break;
 		}
 		
-		}
 		
-		
 
 //COMPTEUR DE TOUR
 		
@@ -367,6 +355,7 @@
 //CAPTEURS POUR LA PISTE ROUGE	
 		if (retour_C==0x5603 && i==0 && num_piste==3){ //si on passe le capteur avant le tremplin
 			i++;
+			vitesse_virage=50;
 			dly_tsk(1500);
 			i_tremplin=1;
 			vitesse=45;
@@ -383,11 +372,19 @@
 			vitesse_virage=20;
 			i=0;
 		}
-		if (retour_C==0x5604 && num_piste==3){ //on reprend les paramètres de départ
+		
+		if (retour_C==0x5604 && num_piste==3){
+			vitesse=40;
+			vitesse_virage=30;
+			i_ralenti=0;
+		}	
+			
+		if (retour_C==0x4304 && num_piste==3){ //on reprend les paramètres de départ
 			vitesse=60;
 			vitesse_virage=30;
 			i_ralenti=0;
 		}
+
 		
 /*	
 //CAPTEURS POUR LA PISTE BLEUE
@@ -484,23 +481,113 @@
 	while(1){
 		
 		while (p0_4==0){
-				s_urgence=1;
-				vit_roue.data.val=0; 
-				snd_dtq (CanTx,vit_roue.msg);
-				cu=1;
-				i_urgence=0;
-			}
+			vit_roue.data.val=0;					 
+			snd_dtq (CanTx,vit_roue.msg);
+			cu=1;
+			s_urgence=1;
+			i_urgence=0;
+		}
 		if (p0_4==1 && i_urgence==0){
-				i_urgence==1;
-				s_urgence=0;
-				vit_roue.data.val=vitesse; 
-		  		snd_dtq (CanTx,vit_roue.msg);
-				cu=1;		
-			}
+			i_urgence==1;
+			s_urgence=0;
+			vit_roue.data.val=vitesse; 
+	 		snd_dtq (CanTx,vit_roue.msg);
+			cu=0;		
+		}
 	dly_tsk(20);
 	}
 }
-
+char decode_int(int a){
+	switch(a){
+		case 0:
+			return '0';
+			break;
+		case 1:
+			return '1';
+			break;
+		case 2:
+			return '2';
+			break;
+		case 3:
+			return '3';
+			break;
+		case 4:
+			return '4';
+			break;
+		case 5:
+			return '5';
+			break;	
+		case 6:
+			return '6';
+			break;	
+		case 7:
+			return '7';
+			break;
+		case 8:
+			return '8';
+			break;
+		case 9:
+			return '9';
+			break;
+	}	
+}
+
+void aff_LCD()
+{
+	while(1){
+//AFFICHAGE DE LA COULEUR ET DU CIRCUIT
+		switch(colcapt){
+			case 0x5600:
+				lcd_init();
+				lcd_str("vert_");
+				break;
+			case 0x4a00:
+				lcd_init();
+				lcd_str("jaun_");
+				break;
+			case 0x5200:
+				lcd_init();
+				lcd_str("roug_");
+				break;
+			case 0x4200:
+				lcd_init();
+				lcd_str("bleu_");
+				break;
+			case 0x4300:
+				lcd_init();
+				lcd_str("cyan_");
+				break;
+		}
+		switch(num_piste){
+			case 1:
+				lcd_str("verte      Temps: ");
+				break;
+			case 2:
+				lcd_str("bleue      Temps: ");
+				break;
+			case 3:
+				lcd_str("rouge      Temps: ");
+				break;
+			case 4:
+				lcd_str("noire      Temps: ");
+				break;
+		}
+//AFFICHAGE DU TEMPS
+		demande_temps.data.id='H';
+    	demande_temps.data.rtr=1;
+        snd_dtq (CanTx,demande_temps.msg);                 // Interrogation du peripherique sur le temps de course actuel.
+        Temps=periph[ADDR('H')].val; 
+		c_Temps[0]=decode_int(Temps/1000);
+		c_Temps[1]=decode_int((Temps%1000)/100);
+		c_Temps[2]=':';
+		c_Temps[3]=decode_int(((Temps%1000)%100)/10);
+		c_Temps[4]=decode_int(((Temps%1000)%100)%10);
+		c_Temps[5]=' ';
+		dly_tsk(150);
+		lcd_str(c_Temps);
+		dly_tsk(20);
+	}
+}	
 void main()
 {	
 	ports_mcu();
@@ -520,19 +607,9 @@
 	sta_tsk(ID_demarre);
 	sta_tsk(ID_capteur);
 	sta_tsk(ID_urgence);
-	
+
     while(1){
-	/*			
-		while (p0_4==0){
-				s_urgence=1;
-				vit_roue.data.val=0; 
-				snd_dtq (CanTx,vit_roue.msg);
-				i_urgence=0;
-			}
-			if (p0_4==1 && i_urgence==0){
-				i_urgence==1;
-				s_urgence=0;
-			}*/
+			
 	}	 
 }
 
Index: branch/bacher/Emb_App/conf_noyau.cfg
===================================================================
--- branch/bacher/Emb_App/conf_noyau.cfg	(revision 434)
+++ branch/bacher/Emb_App/conf_noyau.cfg	(revision 435)
@@ -2,7 +2,7 @@
 //
 //    kernel.cfg : building file for MR308 Ver.4.00
 //
-//    Generated by M3T-MR308 GUI Configurator at 2018/12/20 16:21:00
+//    Generated by M3T-MR308 GUI Configurator at 2019/01/09 9:29:45
 //
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -20,7 +20,7 @@
 
 // max definition
 maxdefine{
-	max_task	= 9;
+	max_task	= 10;
 	max_flag	= 3;
 	max_dtq	= 2;
 	max_cyh	= 1;
@@ -115,6 +115,15 @@
 	initial_start	= OFF;
 	exinf	= 0x0;
 };
+task[]{
+	entry_address	= aff_LCD();
+	name	= ID_LCD;
+	stack_size	= 256;
+	stack_section	= stack;
+	priority	= 3;
+	initial_start	= OFF;
+	exinf	= 0x0;
+};
 
 flag[]{
 	name	= ev_bus_fin_tr;
Index: branch/bacher/Emb_App/conf_noyau.hcf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
