mbed-os github

Dependencies:   ADS1015 Faulhaber HTU21D_mod MS5837_potless Sensor_Head_RevB_3 USBDevice_dfu Utilsdfu beep

Fork of ARNSRS_testDFU by POTLESS

Revision:
16:917656586772
Parent:
15:efd3b3bf3f37
Child:
17:bef8abc445f2
--- a/main.cpp	Sat Nov 25 16:22:38 2017 +0000
+++ b/main.cpp	Mon Nov 27 16:33:13 2017 +0000
@@ -322,14 +322,17 @@
 #ifdef PID_MODE
     else if ((char)commande == 'p') {
         Kc = (float)valeur;
+        control_Servo.reset();
         control_Servo.setTunings(Kc, Ti, Td);
         printf("  UPDATE PID -->  Kc = %f   Ti = %f   Td = %f\r\n\n", Kc, Ti, Td);
     } else if ((char)commande == 'i') {
         Ti = (float)valeur;
+        control_Servo.reset();
         control_Servo.setTunings(Kc, Ti, Td);
         printf("  UPDATE PID -->  Kc = %f   Ti = %f   Td = %f\r\n\n", Kc, Ti, Td);
     } else if ((char)commande == 'd') {
         Td = (float)valeur;
+        control_Servo.reset();
         control_Servo.setTunings(Kc, Ti, Td);
         printf("  UPDATE PID -->  Kc = %f   Ti = %f   Td = %f\r\n\n", Kc, Ti, Td);
     } else if ((char)commande == 'c') {
@@ -405,8 +408,28 @@
 
     Calibration_servo();
 
-    sensors.Sensors_INIT(false, true, 5, SPOOLING, DIGI_FILTER32, CALIB_AIR);
+/*
+Par défaut les valeur en cas de calibration sur true sont les suivant
 
+    nbCalibO2 = 5
+    Mode = SPOOLING
+    Filtre = DIGI_FILTER32
+    CalibrationCO2 = "CALIB_AIR"
+    
+    Parfois la calibration du Cozir coince...faire reset et relancer...
+    
+    Pour calibrer avec ces paramètres :
+    
+    sensors.Sensors_INIT(true, true);
+     
+    Pour changer utiliser la syntaxe suivante :
+    
+    sensors.Sensors_INIT(true, true, 5, SPOOLING, DIGI_FILTER32, CALIB_AIR);
+    
+ */   
+    
+    sensors.Sensors_INIT(false, true);
+    
     serialMonit.attach(&callbackParam, Serial::RxIrq);
 
     android.attach(&callbackAndroid, Serial::RxIrq);
@@ -429,7 +452,7 @@
     
     thread.start(Get_Info_thread);
 
-    thread.set_priority(osPriorityRealtime);
+    thread.set_priority(osPriorityNormal);
 
 #ifdef PID_MODE
     //Init PID
@@ -469,7 +492,7 @@
         strftime(Time_buf, 32, "%D %I-%M-%S ", localtime(&seconds));
 
         //Fabrication de la chaine à enregistrer
-        sprintf(to_store,"%s:%d:%d:%.2f:%.2f:%.2f:%d:%d:%d:%3.2f:%3.2f:%d:%f:%f:%f",
+        sprintf(to_store,"%s:%d:%d:%.2f:%.2f:%.2f:%d:%d:%d:%3.2f:%3.2f:%d:%.3f:%.3f:%.3f",
                 Time_buf,
                 co2,
                 ppO2,
@@ -515,9 +538,17 @@
         //Reset du Timer
         REAL_RATE.reset();
 
-        //Pour ralentir le code à 1 seconde fixe quelque soit les intéruptions du loop....
+        //Pour ralentir le code à Ref_Time seconde fixe quelque soit les intéruptions du loop....
+        if (Ref_Time > RATE){
         RATE_TRUE = (Ref_Time - RATE) * 1000;
-
+        }else{
+        RATE_TRUE = 0;
+#ifdef PID_MODE
+        control_Servo.setInterval(RATE);
+#endif        
+        printf("Pour ralentir le code, Ref_Time doit être supérieur à %f seconde(s)\r\n\n", RATE);      
+        }
+        
         wait_ms(RATE_TRUE);
     }
 }