mbed-os github
Dependencies: ADS1015 Faulhaber HTU21D_mod MS5837_potless Sensor_Head_RevB_3 USBDevice_dfu Utilsdfu beep
Fork of ARNSRS_testDFU by
Diff: main.cpp
- 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();