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:
63:69f6d600807e
Parent:
62:891379d80b1b
Child:
64:a85cddb22fff
diff -r 891379d80b1b -r 69f6d600807e main.cpp
--- a/main.cpp	Tue Jul 03 16:24:59 2018 +0000
+++ b/main.cpp	Fri Jul 06 06:12:56 2018 +0000
@@ -202,6 +202,7 @@
     E5V = 0;
     
     UTILS::EffacePage(2, 29, 1);
+    
     UTILS::Write(DFU_ADDR, 0xBABEFACE);
     
     //Mise en veille
@@ -226,26 +227,14 @@
 void flagSleep(){
     
     if ((int) UTILS::Read(DFU_ADDR) == 0xBABEFACE ) {
-          DEBUG("  Re démarrage BABEFACE.\n");
-          /*    
-                Commande_IHM = 1;
-                IHM("<0 0 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;%d>\r\n", Commande_IHM);
-                FLAG_DISPLAY = false;
-                Commande_IHM = 0;
-                
-            HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_4);
-            HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_5);
-            
-            buzzer.beep(1000,0.1);
-            wait_ms(100);
-            buzzer.beep(1000,0.1);
-            wait(1);
-            */
-            
-        E5V = 0;
+        DEBUG("  Re démarrage sur BABEFACE.\n");
             
         UTILS::EffacePage(2, 29, 1);
         
+        // mise à zero UART IHM pour éviter son redémarrage intempestif (le tx suffirait)
+        HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_4);
+        HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_5);
+        
         HAL_PWREx_EnablePullUpPullDownConfig() ;
         HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_A, PWR_GPIO_BIT_0);
         HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1); // pour PA_0
@@ -256,24 +245,39 @@
         // Set RTC back-up register RTC_BKP31R to indicate
         //later on that system has entered shutdown mode
         WRITE_REG( RTC->BKP31R, 0x1 );
-    
+        
+        DEBUG("  Mise en veille.\n");
+        
         //Enter shutdown mode
-        E3V = 0;
-        //HAL_PWREx_EnterSHUTDOWNMode();
+        HAL_PWREx_EnterSHUTDOWNMode();
+              
         }
-        
+                
     }
 
 void USB_unplugged()
 {
     DEBUG("  La prise USB a été débranchée.\n");
     
-    buzzer.beep(1000,0.3);
-    wait_ms(500);
-    buzzer.beep(1000,0.3);
+    buzzer.beep(1000,0.1);
+    wait_ms(100);
+    buzzer.beep(1000,0.1);
+    wait_ms(100);
+    buzzer.beep(1000,0.1);
+    wait_ms(100);
+    buzzer.beep(1000,0.1);
+    wait(1);
+
+    //Mise en veille de l'IHM
+    Commande_IHM = 1;
+    IHM("<0 0 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;%d>\r\n", Commande_IHM);
+    FLAG_DISPLAY = false;
+    Commande_IHM = 0;
     
-    wait(1);
-    
+    // mise à zero UART IHM pour éviter son redémarrage intempestif (le tx suffirait)
+    HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_4);
+    HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_5);
+        
     E5V = 0;
      
     //Arrêt des enregistrements
@@ -291,16 +295,6 @@
     uint64_t Pos_F = Servo_Fuite.getPulses();
     UTILS::Write(VOLET_FUITE_ADDR, Pos_F);
     DEBUG("  position volet fuite sauvegardée = %d pulse(s)\r\n", (int) Pos_F);
-    
-    //Mise en veille de l'IHM
-    Commande_IHM = 1;
-    IHM("<0 0 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;%d>\r\n", Commande_IHM);
-    FLAG_DISPLAY = false;
-    Commande_IHM = 0;
-    
-    // mise à zero UART IHM pour éviter son redémarrage intempestif (le tx suffirait)
-    HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_4);
-    HAL_PWREx_EnableGPIOPullDown(PWR_GPIO_C, PWR_GPIO_BIT_5);
       
     //Mise en veille version cable arraché
     DEBUG("  Mise en veille...\r\n");
@@ -333,6 +327,7 @@
     //Arrêt des enregistrements
     FLAG_REC = false;
 
+    //Ejection flash
     UTILS::UnMount_Flash();
     
     //Enregistrement position des servos sans mettre en sécu
@@ -533,9 +528,9 @@
     while (true) {
         //DEEP_DEBUG("  GO_TO_Thread_POUMON\r\n");
        
-        //Servo_Poumon.Go_To_Prop(Consigne_poumon);
+        Servo_Poumon.Go_To_Prop(Consigne_poumon);
         //Servo_Poumon.Go_To_PID(Consigne_poumon, Volet_DeadBand);//Nécessite de déclarer un dernier terme true dans l'init du moteur
-        Servo_Poumon.Go_To(Consigne_poumon, Volets_Speed, Volet_DeadBand);
+        //Servo_Poumon.Go_To(Consigne_poumon, Volets_Speed, Volet_DeadBand);
         
     }
 }
@@ -545,9 +540,9 @@
     while (true) {
         //DEEP_DEBUG("  GO_TO_Thread_FUITE\r\n");
 
-        //Servo_Fuite.Go_To_Prop(Consigne_fuite);
+        Servo_Fuite.Go_To_Prop(Consigne_fuite);
         //Servo_Fuite.Go_To_PID(Consigne_fuite, Volet_DeadBand);
-        Servo_Fuite.Go_To(Consigne_fuite, Volets_Speed, Volet_DeadBand);
+        //Servo_Fuite.Go_To(Consigne_fuite, Volets_Speed, Volet_DeadBand);
        
     }
 }
@@ -615,7 +610,7 @@
         Commande_IHM = 1;
         IHM("<0 0 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;%d>\r\n", Commande_IHM);
         FLAG_DISPLAY = false;
-        Commande_IHM = 0;  
+        Commande_IHM = 0;
     } else if (0 == strcmp(com, "ARNSRS_ID")) {
         OUTPUT("  Changement de l'ID de l'appareil pour le N°: %s\r\n", numb);
         //UTILS::Store_A_Val(atoi(numb), "ARNSRS_ID");
@@ -849,8 +844,6 @@
 
     UTILS::DFU();
     
-    flagSleep(); // on vérifie si la demande de sleep n'est pas active (permet de redémarrer sur un front haut)
-    
     E5V = 1;
     E3V = 1;
 
@@ -862,7 +855,7 @@
     buzzer.beep(1000,0.5);
 
     //Ci-dessous commande pour formater une nouvelle carte
-    //UTILS::Format_Flash();
+    UTILS::Format_Flash();
 
     //Montage Flash
     UTILS::Mount_Flash();