Index: branch/Antourou/Emb_App/SessionM32C_E8a_system.ini
===================================================================
--- branch/Antourou/Emb_App/SessionM32C_E8a_system.ini	(revision 349)
+++ branch/Antourou/Emb_App/SessionM32C_E8a_system.ini	(revision 350)
@@ -25,4 +25,4 @@
 [Target]
 M32C E8a SYSTEM=Renesas Communications
 [USER_DATA]
-RESET=ff0024
+RESET=ff0022
Index: branch/Antourou/Emb_App/programme_principal_etud.c
===================================================================
--- branch/Antourou/Emb_App/programme_principal_etud.c	(revision 349)
+++ branch/Antourou/Emb_App/programme_principal_etud.c	(revision 350)
@@ -31,12 +31,11 @@
 	CanFrame requete;
 	UINT flag;//FLGPTN flag
 //	short position, distance; // valeur de l'angle renvoyée par le simulateur
-//
 
 // Potentiometre: lire les registres ad00 et ad01, les valeurs sont sur 10 bits.
 
 // Clavier: vrcv_dtq(QdmTouche,&code_touche) pour lire la derniere touche appuyee sur le clavier.
-// 			la variable code_touche doit etre du type short.
+// 	la variable code_touche doit etre du type short.
 
 // Bouton poussoir: Bp_G, Bp_M, Bp_D permettent de lire l'etat des boutons de la carte I/O
 
@@ -48,7 +47,9 @@
 
 // Exemple:
 // 		CanFrame comm;
-//			comm.data.id='T'; comm.data.rtr=0; comm.data.val=-100;
+//			comm.data.id='T'; 
+//			comm.data.rtr=0; 
+//			comm.data.val=-100;
 //			snd_dtq (CanTx,comm.msg);
 
 // Pour interroger un peripherique et recuperer les donnees brutes renvoyees simulateur:
@@ -59,7 +60,7 @@
 //			snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
 // 			rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
 // 			reponse.data.val contient la valeur de retour du simulateur.
-// ATTENTION: Ne pas utiliser rcv_dtq(CanRx... si la tache ID_periph_rx est active
+///////////////////////////////////// ATTENTION: Ne pas utiliser rcv_dtq(CanRx... si la tache ID_periph_rx est active////////////////////////////////////////
 
 // Lors de l'utilisation de la tache de reception et distribution des messages ID_periph_rx
 // Demarrer cette tache : sta_tsk(ID_periph_rx);
@@ -66,7 +67,8 @@
 // Pour lire la valeur d'un peripherique:
 // Il faut envoyer une demande de lecture:
 // 	CanFrame comm;
-// 		comm.data.id='R'; comm.data.rtr=1;
+// 		comm.data.id='R';
+//		 comm.data.rtr=1;
 // 		snd_dtq (CanTx,comm.msg);
 //
 // Des l'arrivee de la reponse du simlateur, les variables suivantes sont mises a jour:
@@ -125,7 +127,7 @@
 //				disponible. 0xab avec a-> nombre de couleurs bien placées et b -> couleurs présentes mais mal placées.
 //'I'/73/Ox49 : Définition du nom du véhicule. Doit débuter par le caractère '#' et entraine le chargement de la configuration de piste
 //				correspondant au nom du véhicule si le nom se termine par '*'
-
+// NOTE MR LAFFONT !!!!!!
 /* passage piste verte :
 1: asserv_tourelle dans le while(1) du main
 2: mettre asserv_tourelle dans une tache 
@@ -136,151 +138,145 @@
 */
 
 // fonction du programme:                        
-void acquivitessetourelle(int vitesse);// acquisition de la vitesse de la tourelle
-unsigned short acquipositiontourelle();// acquisition de la position de la tourelle
-unsigned short longeurtel();// acquisition de la distance mesuré par le télemètre
-unsigned short mesuredistance();// lecture de la distance des roues au mur
-void Avancementvoit(int vitesse);// vitesse de la voiture en r/s
-void rouedirectrices(unsigned short angleroue);//angle des roues en 10e de degre
-void Asservissment_tourelle();// asservissment de la tourelle
+	void acquivitesse_Tour(int vit);        		//vitesse tourelle   
+	unsigned short position_tourelle();             // lire la  position de la tourelle 
+	unsigned short acqui_distance_Telem();          // acquisition distance du telemetre en cm
+	unsigned short distanceaumur();                 //acquisition distance des roues au mur en cm
+	void vitesse_vehicule(int vitesse);         	// réglage de la  vitesse du vehicule 
+	void roue_directrices(unsigned short angle);   	// commande des roues  (angle des  en 10e de degre)
 
 
-unsigned short alpha;
-unsigned short distancemesure;
 
-// commande de la tourelle+acquisition de la distance avec le télémètre
-unsigned short acquipositiontourelle()
-{				
-                CanFrame requete ;
-                UINT flag ;        
-                
-                      //acquisition de l'angle mesurée par la tourelle  
-                        requete.data.id='R'; //angle de la tourelle
-                        requete.data.rtr=1; //req de lecture
-                        snd_dtq(CanRx, requete.msg);
-						//rcv_dtq(CanRx, &repon.msg);
-                        periph[ADDR('R')].ev=0x01;
-                        snd_dtq(CanTx,requete.msg);
-                        wai_flg(ev_periph, 0x01, TWF_ANDW,&flag);
-						alpha=periph[ADDR('R')].val;
-						return alpha;
-			
- 
-}                        
-void acquivitessetourelle(int vitessetourelle)
-{						int vitessetourelle;
-                        //asservissement de  la tourelle
-                        comm.data.id='T'; 
-                        comm.data.rtr=0;// commande d'écriture
-                        comm.data.val=vitessetourelle;
-                        snd_dtq(CanTx,comm.msg);
-                        dly_tsk(100);
-                       
-                
+unsigned short position_Tourelle() // lire la  position de la tourelle
+{
+        CanFrame req;
+        UINT flag;
+        req.data.id = 'R';
+        req.data.rtr = 1;          // Requete de lecture 
+        periph[ADDR('R')].ev =0x01;
+        snd_dtq(CanTx, req.msg);
+      	wai_flg(ev_periph, 0x01, TWF_ANDW, &flag);
+        
+        return  periph[ADDR('R')].val; 
 }
-unsigned short longeurtel()// acquisition de la distance mesuré par le télemètre
-{ 				
-				CanFrame req, longtourn ;
-				int distancecons,k;
-                UINT flag;
-				req.data.id='U'; 
-                req.data.rtr=1; //requ de lecture
-                snd_dtq(CanRx, req.msg);
-                //rcv_dtq(CanRx, &repon.msg);
-              	periph[ADDR('U')].ev=0x02;
-             	snd_dtq(CanTx,req.msg);
-              	wai_flg(ev_periph, 0x02, TWF_ANDW,&flag);
-            	return periph[ADDR('U')].val; 
-				
+void acquivitesse_Tour(int vit)//vitesse tourelle 
+{
+        CanFrame comm;
+        comm.data.id = 'T';
+        comm.data.rtr = 0; //ecriture
+        comm.data.val = vit;
+        snd_dtq (CanTx,comm.msg);
 }
-unsigned short distanceaumur()// lecture de la distance des roues au mur
+unsigned short acqui_distance_Telem()// acquisition distance du telemetre en cm pour le calcul de la distance
 {
-				unsigned short distance, longtourn,alpha;
-				distance=longtourn * sin( 3,14 * (alpha/10) * 180.0 );
-				return distance;
+        CanFrame requete;
+        UINT flag;
+      	requete.data.id = 'U';
+        requete.data.rtr = 1;// Requete de lecture 
+        periph[ADDR('U')].ev =0x02;
+        snd_dtq(CanTx, requete.msg);
+        
+        wai_flg(ev_periph, 0x02, TWF_ANDW, &flag);
+        
+        return  periph[ADDR('U')].val; 
 }
-void rouedirectrices(unsigned short angleroue)//angle des roues en 10e de degre
-{	
-        		CanFrame comm;
-				comm.data.id = 'D';// 
-        		comm.data.rtr = 0; //ecriture
-        		comm.data.val = angleroue;// écriture dans angleroue la valeur de l'angle des roues directrices
-        		snd_dtq (CanTx,comm.msg);
-				
+void vitesse_vehicule(int vitesse)// réglage de la  vitesse du vehicule 
+{
+        CanFrame comm;
+        comm.data.id = 'V';
+        comm.data.rtr = 0; //requete d'ecriture
+        comm.data.val = vitesse;
+        snd_dtq (CanTx,comm.msg);
 }
-void Avancementvoit()   //(ne pas toucher)// vitesse du véhicule
+unsigned short distanceaumur()//acquisition distance des roues au mur en cm
 {
-        	CanFrame requete;
-        	requete.data.id='V';
-        	requete.data.rtr=0;
-        	requete.data.val=30;// valeur de la vitesse
-        	snd_dtq(CanTx,requete.msg);
+        unsigned short longtelem, pos_tourelle, distanceaumur; 
+        longtelem = acqui_distance_Telem();
+        pos_tourelle = position_Tourelle();
+        distanceaumur= longtelem * sin( 3.14*(pos_tourelle/10)/180.0 );
+        return distanceaumur; 
+}
+
+
+void roue_directrices(unsigned short angleroue)// commande des roues  (angle des  en 10e de degre)
+{
+        CanFrame comm;
         
+        comm.data.id = 'D';
+        comm.data.rtr = 0;     //commande d'ecriture
+        comm.data.val = angleroue;
+        snd_dtq (CanTx,comm.msg);
+        
 }
-void Asservissment_tourelle()// asservissment de la tourelle
+void regulation_roue()
 {
-	unsigned short  pos_tourelle;
-	int k, vites;
-	k=3;
-	while(1)
+       	unsigned short  dConsigne , distance, k;
+        int angleroue;
+        k = 3;                //gain dpour l'asservissment
+        dConsigne = 500;//position au début
+        
+        while(1)
         {
-                pos_tourelle = acquipositiontourelle();         
-                vites = k*( 450 - pos_tourelle);  //correcteur Prop
-                acquivitessetourelle(vites);
-				
+                distance = distanceaumur();
+               	if  ( distance >= 800)  // s'il y'a des  trous dans les bords
+                {
+    					roue_directrices(0);
+                }
+                else
+				{		angleroue = -k*( dConsigne - distance );  //Corection de la direction 
+                        roue_directrices(angleroue);
+                }
+                dly_tsk(25);
+        }
+}
+
+
+void asservissment_tour()
+{
+        unsigned short posConsigne,posf;
+        short k,vit;
+        k = 3;         //gain definni experimentalement
+        posConsigne = 450;
+        
+        while(1)
+        {
+                posf = position_Tourelle();         
+                vit = k*( posConsigne - posf);  //correcteur Prop
+                acquivitesse_Tour(vit);
                 dly_tsk(100);
-        }	
-} 
-void regul_roue()
-{ //asservissment véh
-				
-				int k, distancecons;
-				int angleroue;
-			 	k=3;// gain pour asservissement 
-           		distancecons=500;
-				while(1)
-                {     
-                 	distancemesure=distanceaumur();
-					angleroue=-k*(distancecons-distancemesure);// correction
-					rouedirectrices(angleroue);
-					    
-					dly_tsk(25);
-                }						
-}          
+        }
+}
 
-void main ()
+
+// MAIN:
+void main()
 {
-        CanFrame requete,reponse,comm;
-        ports_mcu();
-   		lcd_init();
-        periph_init();
-        periph_nom("#TEST001*");
-    	can_init();
-    	clavier_init(1);
-        capture_init(); 
+        	ports_mcu();
+    		lcd_init();
+        	periph_init();
+        	periph_nom("#mimi001");// changement du nom du véhicule
+          
+    		can_init();
+    		clavier_init(1);
+        	capture_init();
+        	sta_cyc(ID_acqui);
+        	sta_tsk(ID_periph_rx); 
+        	sta_tsk(ID_asservissment_tour);
         
+        	dly_tsk(500);
+        	sta_tsk(ID_regulation_roue);
+        	dly_tsk(500);
+        	vitesse_vehicule(45);
         
-        sta_cyc(ID_acqui);// //Var g utlisées par les asservissements
-        sta_tsk(ID_periph_rx);
-       	Avancementvoit();
-		sta_tsk(ID_Asservissment_tourelle);
-	
- 		sta_tsk(ID_regul_roue);
-	
-		
-        
-        
     while(1)
     {
-                 
-                LED_J=1;
+               	LED_J=1;
                 dly_tsk(100);
                 LED_J=0;
                 dly_tsk(100);
+                
     }
-        
 }
-
 void acqui()
 {
         LED_V=!LED_V;
@@ -299,9 +295,5 @@
 
 
 
-
-
-
-
 	
 	
\ No newline at end of file
Index: branch/Antourou/Emb_App/conf_noyau.cfg
===================================================================
--- branch/Antourou/Emb_App/conf_noyau.cfg	(revision 349)
+++ branch/Antourou/Emb_App/conf_noyau.cfg	(revision 350)
@@ -62,8 +62,8 @@
 	exinf	= 0x0;
 };
 task[]{
-	entry_address	= Asservissment_tourelle();
-	name	= ID_Asservissment_tourelle;
+	entry_address	= asservissment_tour();// tache d'asservissment de la tourelle
+	name	= ID_asservissment_tour;
 	stack_size	= 256;
 	stack_section	= stack;
 	priority	= 6;
@@ -72,8 +72,8 @@
 };
 
 task[]{
-	entry_address	= regul_roue();
-	name	= ID_regul_roue;
+	entry_address	= regulation_roue();// assr'vissement de la direction des roues directices
+	name	= ID_regulation_roue;
 	stack_size	= 1024;
 	stack_section	= stack;
 	priority	= 7;
