WAKE UP

Dependencies:   WakeUp mbed

Fork of NucleoStandbyTest by Michael Walker

Revision:
1:085a87258f10
Parent:
0:1ecaa40f74d0
--- a/main.cpp	Sat May 07 11:51:56 2016 +0000
+++ b/main.cpp	Sat May 07 12:23:15 2016 +0000
@@ -1,101 +1,35 @@
-// Depending on the LED connections either the LED is off the 2 seconds
-// the target spends in deepsleep(), and on for the other second. Or it is inverted
-
-
 #include "mbed.h"
 #include "WakeUp.h"
-#include "stm32f0xx_hal.h"
-#include "stm32f0xx_hal_rtc_ex.h"
-#include "rtc_wakeup.h"
-
-#define RTC_CR_WUTE   (1<<10)
-#define RTC_CR_WUTIE    (1<<14)
-#define EXTI_IMR_MR20 0x00100000
-
 
 DigitalOut myled(LED1);
-DigitalOut Buzz(A2);
-DigitalOut RST(D0);
-
-static RTC_HandleTypeDef RtcHandle;
 
 void ClearWakeUp(void);
 
 int main()
 {
-    ClearWakeUp();
-    RST = 1;
-    Buzz = 0;
     myled = 1;
     wait(0.2);
     myled = 0;
     wait(0.2);
-    //print("Wake %i\r\n", TM_LOWPOWER_StandbyReset() );
+
     //The low-power oscillator can be quite inaccurate on some targets
     //this function calibrates it against the main clock
     WakeUp::calibrate();
 
 
-
-    //RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, DISABLE);   //Need write access to DBP bit
-
-    //__HAL_RCC_PWR_CLK_ENABLE();
-    //PWR->CR |= PWR_CR_DBP;
-    //SET_BIT(PWR->CR, PWR_CR_DBP);
-    /* //Wait for Backup domain Write protection disable
-    uint32_t tickstart = HAL_GetTick();
-
-
-    while((PWR->CR & PWR_CR_DBP) == RESET)
-      {
-        if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
-        {
-          return HAL_TIMEOUT;
-        }
-      }
-    */
-    /*
-      HAL_PWR_EnableBkUpAccess();
-
-      RtcHandle.Instance = RTC;
-      __HAL_RTC_WRITEPROTECTION_DISABLE(&RtcHandle);
-
-       __HAL_RTC_ALARM_EXTI_CLEAR_FLAG();
-       __HAL_RTC_ALARM_CLEAR_FLAG(&RtcHandle, RTC_FLAG_ALRAF);
-       __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(&RtcHandle, RTC_FLAG_WUTF);
-      //__HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() ;
-
-    // __HAL_RCC_BACKUPRESET_FORCE();
-    //__HAL_RCC_BACKUPRESET_FORCE();
-
-       __HAL_RTC_WRITEPROTECTION_ENABLE(&RtcHandle);
-
-    */
-
-    ///Direct register access version  ***************************************************
-
-    // ClearWakeUp();
-
-    //RCC_APB1PeriphCmd(RCC_APB1Periph_PWR, ENABLE);
-
-    // __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
-    //From Below works  ***************************************************
-
-    WakeUp::set_ms(2000);
-
-    //Enter deepsleep, the program won't go beyond this point until it is woken up
-    //deepsleep();
-
-    printf("Standby Mode\r\n");
-
+    WakeUp::set_ms(5000);
     ClearWakeUp();
 
+    printf("Entering Standby Mode\r\n");
+
     HAL_PWR_EnterSTANDBYMode();
-
+    
     //This will never be executed
     printf("After sleep\r\n");
+
 }
-void ClearWakeUp(void){
+void ClearWakeUp(void)
+{
     PWR->CR |= PWR_CR_DBP;      //Enable power domain
     RTC->WPR = 0xCA;            //Disable RTC write protection
     RTC->WPR = 0x53;
@@ -105,39 +39,4 @@
 
     RTC->WPR = 0xFF;        //Enable RTC write protection
     PWR->CR &= ~PWR_CR_DBP; //Disable power domain
-}
-
-void ClearWakeUp2(void)
-{
-    ///Direct register access version  ***************************************************
-    RtcHandle.Instance = RTC;
-
-    __HAL_RTC_WAKEUPTIMER_DISABLE(&RtcHandle);
-    __HAL_RTC_WAKEUPTIMER_DISABLE_IT(&RtcHandle,RTC_IT_WUT);
-
-    PWR->CR |= PWR_CR_DBP;      //Enable power domain                           //*******************
-    RTC->WPR = 0xCA;            //Disable RTC write protection
-    RTC->WPR = 0x53;
-
-    __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() ;
-    __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() ;
-
-    /* Disable the Alarm A interrupt */
-    __HAL_RTC_ALARMA_DISABLE(&RtcHandle);
-
-    /* Clear flag alarm A */
-    __HAL_RTC_ALARM_CLEAR_FLAG(&RtcHandle, RTC_FLAG_ALRAF);
-
-    __HAL_RTC_ALARM_EXTI_CLEAR_FLAG();
-    __HAL_RTC_ALARM_CLEAR_FLAG(&RtcHandle, RTC_FLAG_ALRAF);
-    __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(&RtcHandle, RTC_FLAG_WUTF);
-
-    // #define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG()            (EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
-    __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() ;
-
-    EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT ;
-    EXTI->PR = 0x007FFFFF;
-    RTC->WPR = 0xFF;        //Enable RTC write protection
-    PWR->CR &= ~PWR_CR_DBP; //Disable power domain
-
 }
\ No newline at end of file