Index: branch/best/sp4a12/main.c
===================================================================
--- branch/best/sp4a12/main.c	(revision 579)
+++ branch/best/sp4a12/main.c	(revision 580)
@@ -28,7 +28,7 @@
 
 int decode_int(char c){ //Cette fonction renvoie la valeur decimale associée à un caractère donné en paramètre compris entre '0' et '9' et renvoie -1 sinon.
     int val = c - '0';
-    if (val<0 || val>9){
+    if (val<0 || val>9){ //**En premier faire le test pour ne pas faire opération pour rien
         val = -1;
     }
     return val;
@@ -44,17 +44,18 @@
 }
 
 float conv_lat(char * latitude){ //La fonction convertie la latitude en sexa en degré.
-    float val = decode_nombre(latitude,4);
+    float val = decode_nombre(latitude,4); //* bof
     float res = 0;
     for (int i = 5; i < 9;i++){
         val += (decode_int(latitude[i]))*pow(10,-i+4); //On replace chaque chiffre au bonne endroit (unité, dizaine ...).
     }
-    res = (int)(val/100);
+    res = (int)(val/100);  //****
     res += (val - res*100)/60;
-    return res;}
+    return res;
+}
 
 float conv_long(char * longitude){ //La fonction convertie la longitude en sexa en degré.
-    float val = decode_nombre(longitude,5);
+    float val = decode_nombre(longitude,5);  //**
     float res = 0;
     for (int i = 6; i < 10;i++){
         val += (decode_int(longitude[i]))*pow(10,-i+5);
@@ -65,7 +66,7 @@
 
 float conversion(char * chaine){ //Cette fonction convertie soit une latitude soit une longitude en degré.
     int cpt = 0;
-    while (chaine[cpt]!='\0'){
+    while (chaine[cpt]!='\0'){  //***, .
         cpt++;
     }
     if (cpt == 9){
@@ -79,13 +80,13 @@
     }
 }
 
-typedef struct {
+typedef struct { //*
     float latitude;
     float longitude;
 } Position;
 
 int decode_trame(char * trame, Position *p){
-    char longi[10];
+    char longi[10]={'\0'};  //*** trame -> @ lati -> @
     char lati[9];
     int cpt = 0;
     int i = 0;
@@ -95,7 +96,7 @@
         while (trame[i] != '\0'){
             if (trame[i] == ','){ //On compte le nombre de virgule.
                 cpt += 1;
-                i ++;
+                i += 1;
             }
             if (cpt == 2) { //On regarde si le nombre de virgule correspond à 2, ie la latitude
                 lati[j] = trame[i]; //On stocke caractère par caractère pour isoler la latitude afin de la convertir.
@@ -102,12 +103,13 @@
                 j ++;
             }
             if (cpt == 4) { //On regarde si le nombre de virgule correspond à 4, ie la longitude
-                longi[y] = trame[i]; //On stocke caractère par caractère pour isoler la longitude afin de la convertir.
+                longi[y] = trame[i];
                 y ++;
             }
-            i ++;
+            i += 1;
         }
-        p->latitude = conv_lat(lati);
+        p->latitude = conv_lat(lati);  //***************** vous avez de la chance &trame[15], trame+15
+
         p->longitude = conv_long(longi); //On stocke la latitude et la longitude convertie dans structure position.
         return 1;
     }
@@ -122,7 +124,7 @@
 }
 
 float calcule_vitesse(Position p_1, Position p_2){
-    return calcule_distance(p_1,p_2)*3600; //On calcul la vitesse avec la formule v=d/t avec t=1s.
+    return calcule_distance(p_1,p_2)*3600; //On calcul la vitesse (en km) avec la formule v=d/t avec t=1s.
 }
 
 typedef struct{
@@ -137,20 +139,18 @@
 
 int distance_a_la_plus_poche_zone(Position p, Zone r[], int nb_zones, float *d){
     int index = 0;
-    float distance = calcule_distance(p, r[0].rpos); //On initialise une distance pour pouvoir ensuite la comparer et chercher le minimum.
+    *d = calcule_distance(p, r[0].rpos); //On initialise une distance pour pouvoir ensuite la comparer et chercher le minimum.
     for (int i = 1; i<nb_zones; i++){ //On parcours la table de zone dangereuse.
-        if (calcule_distance(p,r[i].rpos) < distance){
+        if (calcule_distance(p,r[i].rpos) < *d){
             index = i;
-            distance = calcule_distance(p,r[i].rpos);
+            *d = calcule_distance(p,r[i].rpos);
         }
     }
-    *d = distance;
     return index;
 }
 
 Position pos_prec;
-
-//Fonction à modifier !!!!!
+
 void traitement(char * trame){
     Position pos;
     int alarme;
Index: branch/best/sp4b2/SPAb2/SPAb2/SPAb2.c
===================================================================
--- branch/best/sp4b2/SPAb2/SPAb2/SPAb2.c	(revision 579)
+++ branch/best/sp4b2/SPAb2/SPAb2/SPAb2.c	(revision 580)
@@ -29,138 +29,23 @@
 void lcd_str(unsigned char *str); // envoi d'une chaîne de caractère
 void lcd_car(unsigned char car);// envoi d'une donnée à afficher
 void clav_init(void); //initialisation du clavier
+void clavier(void); // detection des touches du clavier
+void affichage(unsigned char *str); // Affichage sur l'ecran
 
 
 void main(void)
 {
 	char t;
-	char touche = 0;
 	lcd_init();
 	clav_init();
 	while(1)
 	{
-		t = p10;  //**
-		if(t  !=0xf0)
-		{
-			p10 = 0xfe;
-			t = p10;
-			if (t==0xbe)
-			{
-				lcd_com(0x01,0); //Clear LCD  //**********
-				tpo_ms(50);  //**
-				touche = '1';  //**
-				lcd_str("50 Km/h");
-			}
-			if (t==0xde)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);  //******
-				touche = '2';
-				lcd_str("70 Km/h");
-			}
-			if (t==0x7e)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '3';
-				lcd_str("90 Km/h");
-			}
-			p10 = 0xfd;
-			t = p10;
-			if (t==0xbd)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '4';
-				lcd_str("110 Km/h");
-			}
-			if (t==0xdd)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '5';
-				lcd_str("130 Km/h");
-			}
-			if (t==0x7d)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '6';
-				lcd_str("...");
-			}
-			p10 = 0xfb;
-			t = p10;
-			if (t==0x7b)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '9';
-				lcd_str("...");
-			}
-			if (t==0xdb)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '8';
-				lcd_str("...");
-			}
-			if (t==0xeb)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '7';
-				lcd_str("Ajout Zone");
-			}
-			p10 = 0xf7;
-			t = p10;
-			if (t==0xd7)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '0';
-				lcd_str("Arret Alarme");
-			}
-			if (t==0x77)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '#';
-				lcd_str("#");
-			}
-			if (t==0xe7)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '*';
-				lcd_str("*");
-			}
-			p10 = 0xf;
-			t = p10;
-			if (t==0xbe)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '1';
-				lcd_str("50 Km/h");
-			}
-			if (t==0xde)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '2';
-				lcd_str("70 Km/h");
-			}
-			if (t==0x7e)
-			{
-				lcd_com(0x01,0); //Clear LCD
-				tpo_ms(50);
-				touche = '3';
-				lcd_str("90 Km/h");
-			}
+		t = p10;
+			
+		if (t != 0xF0){
+			clavier();
 		}
-
-	}
-	
+	}	
 }
 
 void lcd_4b(unsigned char car){
@@ -219,23 +104,21 @@
 void lcd_init(void){
 	pd3 = 0xFF; //initialisation des ports en sorties
 	tpo_ms(15);
-    lcd_4b(0x30,0);
+    lcd_4b(0x30);
     tpo_ms(5);
-    lcd_4b(0x30,0);
+    lcd_4b(0x30);
     tpo_us(100);
-    lcd_4b(0x30,0);
+    lcd_4b(0x30);
     tpo_us(100);
-    lcd_4b(0x20,0); //mode 4 bits activé 
-    lcd_com(0x28,0); //mode 4bits - 2 lignes 0x20 4 bits | 0x08 2 lignes
-    lcd_com(0x06,0); //Incremente vers la gauche
-    lcd_com(0x0E,0); //LCD à on, curseur à on
-    lcd_com(0x01,0); //Clear LCD
+    lcd_4b(0x20); //mode 4 bits activé 
+    lcd_com(0x28); //mode 4bits - 2 lignes 0x20 4 bits | 0x08 2 lignes
+    lcd_com(0x06); //Incremente vers la gauche
+    lcd_com(0x0E); //LCD à on, curseur à on
+    lcd_com(0x01); //Clear LCD
     tpo_ms(5);
 }
 
 
-/*void _tp_prolog(){
-}*/
 void tpo_us(unsigned short duree){
 	tcspr = 0x8A;
 	ta0mr = 0x82;
@@ -270,3 +153,69 @@
 	pu31 = 1;
 	p10 = 0;
 }
+
+void clavier(void){
+	unsigned char t;
+		
+	p10 = 0x0E;
+	t = p10;
+	if (t == 0xBE){
+		affichage("50 Km/h");
+	}
+			
+	if (t == 0xDE){
+		affichage("70 Km/h");
+	}
+		
+	if (t == 0x7E){
+		affichage("90 Km/h");
+	}
+		
+	p10 = 0x0D;
+	t = p10;
+	if (t == 0xBD){
+		affichage("110 Km/h");
+	}
+	
+	if (t == 0xDD){
+		affichage("130 Km/h");
+	}
+		
+	if (t == 0x7D){
+		affichage("...");
+	}
+		
+	p10 = 0x0B;
+	t = p10;
+	if (t == 0xEB){
+		affichage("Ajout Zone");
+	}
+		
+	if (t == 0xDB){
+		affichage("...");
+	}
+		
+	if (t == 0x7B){
+		affichage("...");
+	}
+				
+	p10 = 0x07;
+	t = p10;
+	if (t == 0xE7){
+		affichage("*");
+	}
+		
+	if (t == 0xD7){
+		affichage("Arret Alarme");
+	}
+	
+	if (t == 0x77){
+		affichage("#");
+	}
+}
+
+void affichage(unsigned char *str){
+	lcd_com(0x01);
+	tpo_ms(50);
+	lcd_str(str);
+}
Index: branch/best/sp4b3/SP4b3/SessionM32C_E8a_SYSTEM.ini
===================================================================
--- branch/best/sp4b3/SP4b3/SessionM32C_E8a_SYSTEM.ini	(revision 579)
+++ branch/best/sp4b3/SP4b3/SessionM32C_E8a_SYSTEM.ini	(revision 580)
@@ -18,6 +18,8 @@
 PROCESSOR_MODE=0
 [COMMUNI]
 COMSPEED=8
+COMSPEED PROGRAM FLASH=8
+COMSPEED DATA FLASH=8
 [Driver Configuration]
 Renesas Communications=USB interface,0,
 [Target]
Index: branch/best/sp4b3/SP4b3/SP4b3.c
===================================================================
--- branch/best/sp4b3/SP4b3/SP4b3.c	(revision 579)
+++ branch/best/sp4b3/SP4b3/SP4b3.c	(revision 580)
@@ -9,6 +9,7 @@
 /*  NOTE:THIS IS A TYPICAL EXAMPLE.                                    */
 /***********************************************************************/
 
+
 void main(void)
 {
 	
