Index: branch/euphrasie_auguste/Emb_App/SessionM32C_E8a_system.ini
===================================================================
--- branch/euphrasie_auguste/Emb_App/SessionM32C_E8a_system.ini	(revision 270)
+++ branch/euphrasie_auguste/Emb_App/SessionM32C_E8a_system.ini	(revision 271)
@@ -3,14 +3,14 @@
 [RESET_RELEASE]
 ENABLE=0
 [CPU_SELECT]
-DEVICE=M30879FL
+DEVICE=M30865FJ
 EMUSEL=0
-MCU_GROUP=M32C__87 Group
+MCU_GROUP=M32C__86 Group
 [POWER_SUPPLY]
 VOLTAGE_5_0=1
 VOLTAGE_3_3=0
 [FW_LOCATE]
-FWADDRESS=f000
+FWADDRESS=f800
 RAMADDRESS=04
 [WDT]
 WDT_USE=0
Index: branch/euphrasie_auguste/Emb_App/programme_principal_etud.c
===================================================================
--- branch/euphrasie_auguste/Emb_App/programme_principal_etud.c	(revision 270)
+++ branch/euphrasie_auguste/Emb_App/programme_principal_etud.c	(revision 271)
@@ -134,6 +134,7 @@
 void assser_tourelle(void);
 void asser_roue_vitesse(void);
 void decode_int(void);
+void capteur(void);
 
 short i;
 short touche;
@@ -150,10 +151,11 @@
 float dist_mur_droit;
 
 float k_V = 1.0;
-short commande_V_max = 40;
+short commande_V_max = 100;
 short commande_V;
 
-unsigned short num_piste;
+unsigned short num_piste;
+unsigned short cap_touch;
 
 void main()
 {
@@ -164,29 +166,21 @@
 		switch(num_piste)
      	   {
      	   	case 1: 
-				 terrain_vert();
-     	   	     break;	
+				 terrain_vert();	break;	
 			case 2: 
-     	   	     terrain_bleu();
-                 break;
+     	   	     terrain_bleu();	break;
 			case 3: 
-     	   	     terrain_rouge();
-                 break;
+     	   	     terrain_rouge();	break;
 			case 4: 
-     	   	     terrain_noir();
-                 break;
+     	   	     terrain_noir();	break;
 			case 5: 
-				 terrain_vert();
-     	   	     break;
+				 terrain_vert();	break;
 			case 6: 
-     	   	     terrain_bleu();
-                 break;
+     	   	     terrain_bleu();	break;
 			case 7: 
-     	   	     terrain_rouge();
-                 break;
+     	   	     terrain_rouge();	break;
 			case 8: 
-     	   	     terrain_noir();
-                 break;
+     	   	     terrain_noir();	break;
 		   }
     }
 }
@@ -196,15 +190,36 @@
 
 void terrain_vert(void){
 	while((num_piste == 1) || (num_piste == 5)){
-		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
+		commande_V_max = 0;
+		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
 		periph_command('T', 0);
 		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
+		periph_command('D', 0);
+		periph_command('V', 60);
+		dly_tsk(250);
 		while((num_piste == 1) || (num_piste == 5)){
-			
 			assser_tourelle();
 			asser_roue_vitesse();
+			capteur();
 			
-			
+			switch(cap_touch)
+     	   {
+     	   	case 86: //ligne droite
+				 k_D = 1.0;
+				 commande_V_max = 60;
+				 distance_centre = 700;	break;
+			case 74 :
+			case 82 :
+			case 66 :
+			case 67 : //virage
+				 k_D = 1.25;
+				 commande_V_max = 40;
+				 distance_centre = 800;	break;
+			default :
+				 k_D = 1.25;
+				 commande_V_max = 40;
+				 distance_centre = 650;	break;
+		   }
 			num_piste = (periph_requete('M') << 8) >> 8;
 			dly_tsk(50);
 		}
@@ -213,17 +228,37 @@
 
 void terrain_bleu(void){
 	while((num_piste == 2) || (num_piste == 6)){
-		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
+		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
 		periph_command('T', 0);
 		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
+		periph_command('D', 0);
+		periph_command('V', 60);
+		dly_tsk(250);
 		while((num_piste == 2) || (num_piste == 6)){
+			assser_tourelle();
+			asser_roue_vitesse();
+			capteur();
 			
-			
-			
-			
-			
+			switch(cap_touch)
+     	   {
+     	   	case 86: //ligne droite
+				 k_D = 1.3;
+				 commande_V_max = 50;
+				 distance_centre = 500;	break;
+			case 74 :
+			case 82 :
+			case 66 :
+			case 67 : //virage
+				 k_D = 1.4;
+				 commande_V_max = 25;
+				 distance_centre = 500;	break;
+			default :
+				 k_D = 1.25;
+				 commande_V_max = 50;
+				 distance_centre = 500;	break;
+		   }
 			num_piste = (periph_requete('M') << 8) >> 8;
-			dly_tsk(50);
+			dly_tsk(40);
 		}
 	}
 }
@@ -230,15 +265,34 @@
 
 void terrain_rouge(void){
 	while((num_piste == 3) || (num_piste == 7)){
-		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
+		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
 		periph_command('T', 0);
 		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
 		while((num_piste == 3) || (num_piste == 7)){
+			assser_tourelle();
+			asser_roue_vitesse();
+			capteur();
 			
-			
-			
-			
-			
+			switch(cap_touch)
+     	   {
+     	   	case 86: //ligne droite
+				 k_D = 1.0;
+				 commande_V_max = 100;
+				 distance_centre = 500;	
+				 break;
+			case 74 :
+			case 82 :
+			case 66 :
+			case 67 : //virage
+				 k_D = 1.25;
+				 commande_V_max = 15;
+				 distance_centre = 500;	
+				 break;
+			default :
+				 k_D = 1.0;
+				 commande_V_max = 100;
+				 distance_centre = 500;	break;
+			}
 			num_piste = (periph_requete('M') << 8) >> 8;
 			dly_tsk(50);
 		}
@@ -247,7 +301,7 @@
 
 void terrain_noir(void){
 	while((num_piste == 4) || (num_piste == 8)){
-		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
+		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
 		periph_command('T', 0);
 		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
 		while((num_piste == 4) || (num_piste == 8)){
@@ -263,11 +317,13 @@
 }
 
 
+void capteur(void){
+	cap_touch = (periph_requete('C') >> 8);
+}
 
 
 
 
-
 void decode_int(void){
 	//short i = 0;
 	//while(touche != '#'){
@@ -294,11 +350,13 @@
 	
 	if(commande_D < 0)	commande_D = commande_D * (-1);
 	
-	commande_V = commande_V_max - (k_V * (commande_D/10));
+	//commande_V = commande_V_max - (k_V * (commande_D/10));
 	
-	if(commande_V < 0)	commande_V = commande_V * (-1);
+	//if(commande_V < 0)	commande_V = commande_V * (-1);
 	
-	periph_command('V', commande_V);
+	if(Bp_D == 1){commande_V_max = 0;}
+	
+	periph_command('V', commande_V_max);
 }
 
 
@@ -314,7 +372,7 @@
 	ports_mcu();
     lcd_init();
 	periph_init();
-	periph_nom("#AutoTest*");
+	periph_nom("#Auguste*");
     can_init();
     clavier_init(1);
 	capture_init();
@@ -322,11 +380,12 @@
 	sta_tsk(ID_periph_rx);
 }
 
+
 void acqui()
 {
 	LED_V=!LED_V;
 	//consigne_T = ad00;
-	commande_V_max = ad01/10;
+	//commande_V_max = ad01/10;
 }
 
 void assser_tourelle(void){
