programme ines avce xbee

Dependencies:   MMA8451Q mbed xbee_lib

Fork of Programme_course by Freescale_Cachan

Revision:
1:4a9196bcf97a
Parent:
0:3ec7fc598e48
Child:
2:ddf9879f0e25
--- a/Mlib.cpp	Thu Jan 26 07:37:45 2017 +0000
+++ b/Mlib.cpp	Wed Feb 08 15:16:04 2017 +0000
@@ -1,8 +1,69 @@
 #include "Mlib.h"
 
+void Gestion_bosse()
+{
+    if(BOSSE_ACTIVE)//Si on active la détection de la bosse
+    {
+        led5=0;
+        led6=0;
+        led7=0;
+    
+        pc.printf("bosse: %d , X: %1.2f , ajustement : %hi\n ",bosse,middle_3F(last_three),ajust_vit_bosse);
+        
+        
+        last_three[2] = last_three[1]; // les 3 dernieres valeurs de X sont stockées daans un tableau
+        last_three[1] = last_three[0];
+        last_three[0] = acc.getAccX();
+        
+        if(bosse == 1)
+        {
+            ajust_vit_bosse = 60; 
+            led6=1;
+            led4=1;
+        }
+        else if(bosse == 3)
+        ajust_vit_bosse = -80;
+        
+        else 
+        {
+            ajust_vit_bosse = 0;
+            led7=1;
+            led1=1;
+        }
+        
+        if((abs(middle_3F(last_three)) > 0.13 ) && (bosse == 0)) // si montée détectée
+        {
+            bosse = 1;
+            //tep = (int)t_debut.read_ms();
+        }
+        else if(bosse == 1 && (middle_3F(last_three) > -0.1)) 
+        {
+            bosse = 2;
+        }
+        else if(bosse == 2 && (middle_3F(last_three) > 0.19)) 
+        {
+            bosse = 3;
+            
+        }
+        else if(bosse==3 && (middle_3F(last_three) > 0.19))
+        {
+                 ajust_vit_bosse = -50;
+                 led5=1;
+                 led2=1;
+                 pc.printf("bosse: %d , X: %1.2f , ajustement : %hi\n",bosse,middle_3F(last_three),ajust_vit_bosse);
+         }
+                 
+        else if (bosse==3 && (middle_3F(last_three) < 0.19)) 
+        {
+            bosse=0;
+            ajust_vit_bosse=0;
+            }
+    }
+}
+
 /***********AUTRES_FCT***************/
 
-char middle_3(char *tab)
+char middle_3(char *tab) // prend la valeur du milieu quand les valeurs sont rangées
 {
     tri_a_bulle(tab, 3);
     return tab[1];
@@ -21,7 +82,7 @@
 }
 
 
-void tri_a_bulle(char* t, int const size) 
+void tri_a_bulle(char* t, int const size) // permet de trier les valeurs du tableau dans l'ordre croissant
 {
     int en_desordre = 1;
     int i,j;
@@ -115,7 +176,7 @@
     static int p = 0;
     p++;
         wait(0.1);
-        if(BP2)
+        if(BP2) // bouton B
         {
             seuil_der++;
             if(seuil_der == 2) seuil_der = -1;