Index: branch/font/Emb_App/programme_principal_etud.c
===================================================================
--- branch/font/Emb_App/programme_principal_etud.c	(revision 289)
+++ branch/font/Emb_App/programme_principal_etud.c	(revision 290)
@@ -132,13 +132,15 @@
 int distance1;
 int vitesse = 60;					//vitesse souhaitée
 int vitesse_virage = 25;			//vitesse pendant un virage souhaitée
-int vitesse_montee = 25;
-int angle_roue;				
-int kroue = 1;
-int k = 1;
-int num_piste;
-int num_piste1;
-int capteur;
+int vitesse_montee = 45;			//vitesse pendant la montée piste bleu
+int vitesse_saut = 45;				//vitesse pendant le saut piste rouge
+int vitesse_recep = 10;
+int angle_roue = 0;						
+int kroue = 1;						//coefficient asservissement tourelle
+int ktour = 1;						//coefficient asservissement roues
+int num_piste;						//valeur du périphérique 'M'
+int num_piste1;						//numéro de la piste
+int capteur;						//valeur du dernier capteur franchi
 int a = 0;
 char saut = 0;
 int feu;
@@ -146,22 +148,22 @@
 int montee = 0;
 
 void lecture_telemetre(){
-	CanFrame reponsed, requeted;
+	CanFrame requete;
 	UINT flag;
 	
 	while(1){
 		//Lecture distance mesurée
-		requeted.data.id = 'U';
-		requeted.data.rtr = 1;	//requete de lecture
+		requete.data.id = 'U';
+		requete.data.rtr = 1;	//requete de lecture
 		periph[ADDR('U')].ev = 0x02;
-		snd_dtq(CanTx, requeted.msg); 
+		snd_dtq(CanTx, requete.msg); 
 		wai_flg(ev_periph, 0x02, TWF_ANDW, &flag);	//Attente de lecture
 		distance1 = periph[ADDR('U')].val;
-		if(distance1 > 2000){}
+		if(distance1 > 1500 || distance1 < -1500){}
 		else {
 			distance = distance1;
 		}
-		dly_tsk(5);
+		dly_tsk(6);
 	}
 }
 
@@ -176,15 +178,16 @@
 		periph[ADDR('D')].ev = 0x03;
 		snd_dtq(CanTx, requete.msg); 
 		wai_flg(ev_periph, 0x03, TWF_ANDW, &flag);	//Attente de lecture de l'angle des roues
-		
 		comm.data.rtr = 0;
-		if(saut == 0){ 						//Aucun saut franchi
-			 angle_roue = kroue * (distance - distance_bord);	//Asservissement de l'angle
+		//if(saut == 0){
+			angle_roue = kroue * (distance - distance_bord);	//Asservissement de l'angle
+		//}
+		if(saut == 1) {
+			angle_roue = 0;
 		}
-		else angle_roue = 0;
 		comm.data.val = angle_roue;
 		snd_dtq(CanTx, comm.msg);
-		dly_tsk(5);		
+		dly_tsk(6);		
 	}
 }
 
@@ -205,7 +208,7 @@
 		//asservissement en vitesse de rotation de la tourelle
 		comm.data.id = 'T';
 		comm.data.rtr = 0;
-		comm.data.val = k * (angle_tourelle - alpha);
+		comm.data.val = ktour * (angle_tourelle - alpha);
 		snd_dtq(CanTx, comm.msg);
 		dly_tsk(5);		
 	}
@@ -238,7 +241,7 @@
 		snd_dtq(CanTx, requete.msg);
 		wai_flg(ev_periph, 0x05, TWF_ANDW, &flag); //Attente de la réponse
 		capteur = periph[ADDR('C')].val;	//acquisition du dernier capteur franchi
-		dly_tsk(5);
+		dly_tsk(6);
 	}
 }
 
@@ -247,7 +250,7 @@
 	
 	while(1){
 		if(num_piste1 == 2){ //détection piste rouge
-			if( capteur == 0x5604 ){	//détection capteur avant saut
+			if( capteur == 0x5604 ){	//détection capteur avant montee
 				montee = 1;
 			}	
 			else {
@@ -254,7 +257,7 @@
 				montee = 0;
 			}
 		}
-		dly_tsk(5);
+		dly_tsk(6);
 	}
 }
 
@@ -262,8 +265,9 @@
 void gestion_saut (){
 	
 	while(1){
-		if(num_piste1 == 7){ //détection piste rouge
+		if(num_piste1 == 3){ 			//détection piste rouge
 			if( capteur == 0x5603 ){	//détection capteur avant saut
+				dly_tsk(1000);
 				saut = 1;
 			}	
 			else {
@@ -270,7 +274,7 @@
 				saut = 0;
 			}
 		}
-		dly_tsk(5);
+		dly_tsk(6);
 	}
 }
 
@@ -288,7 +292,7 @@
 		wai_flg(ev_periph, 0x06, TWF_ANDW, &flag); //Attente de la réponse
 		feu = periph[ADDR('M')].val;	//acquisition du dernier capteur franchi
 		feuv = feu & 0x8000;
-		dly_tsk(3);
+		dly_tsk(6);
 	}
 }
 
@@ -307,22 +311,29 @@
 		snd_dtq(CanTx, comm.msg);
 	
 			while(1){
-			comm.data.id = 'V';
-			comm.data.rtr = 0;
-			if(angle_roue > 40 || angle_roue < -40){	//ralentissement de la voiture si angle demandé trop grand
-				comm.data.val = vitesse_virage;
-				snd_dtq(CanTx, comm.msg);
-			}	
-			else{
-				comm.data.val = vitesse;
-				snd_dtq(CanTx, comm.msg);
-			}
-			if(montee == 1){
-				comm.data.val = vitesse_montee;
-				snd_dtq(CanTx, comm.msg);
-				a = 1;
-			}
-			dly_tsk(3);	
+				comm.data.id = 'V';
+				comm.data.rtr = 0;
+				if(angle_roue > 40 || angle_roue < -40){	//ralentissement de la voiture si angle demandé trop grand
+					comm.data.val = vitesse_virage;
+					snd_dtq(CanTx, comm.msg);
+				}	
+				else{
+					comm.data.val = vitesse;
+					snd_dtq(CanTx, comm.msg);
+				}
+				if(montee == 1){
+					comm.data.val = vitesse_montee;
+					snd_dtq(CanTx, comm.msg);
+				}
+				if(saut == 1){
+					comm.data.val = vitesse_saut;
+					snd_dtq(CanTx, comm.msg);
+				}
+				if(capteur == 0x4203 && num_piste1 == 3){
+					comm.data.val = vitesse_recep;
+					snd_dtq(CanTx, comm.msg);
+				}
+				dly_tsk(6);	
 		}
 	//}	acolade if départ feu vert
 }
