ms2s,STM32 Private

Fork of WakeUp by Erik -

Revision:
23:026ce8177010
Parent:
20:68f2ee917691
--- a/Device/WakeUp_STM_RTC.cpp	Wed Nov 11 20:20:27 2015 +0000
+++ b/Device/WakeUp_STM_RTC.cpp	Wed Oct 12 09:20:07 2016 +0000
@@ -28,7 +28,7 @@
 
 FunctionPointer WakeUp::callback;
 
-void WakeUp::set_ms(uint32_t ms)
+void WakeUp::set_ms(uint32_t s)
 {        
     if (!rtc_isenabled()) {      //Make sure RTC is running
         rtc_init();
@@ -43,7 +43,7 @@
     RTC->CR &= ~RTC_CR_ALRAE;
     while(!(RTC->ISR & RTC_ISR_ALRAWF));
     
-    if (ms == 0) {              //Just disable alarm
+    if (s == 0) {              //Just disable alarm
         //PWR->CR &= ~PWR_CR_DBP; //Disable power domain
         RTC->WPR = 0xFF;        //Enable RTC write protection
         return;
@@ -51,9 +51,9 @@
     
     //RTC prescaler + calculate how many sub-seconds should be added
     uint32_t prescaler = (RTC->PRER & 0x7FFF) + 1;
-    uint32_t subsecsadd = ((ms % 1000) * prescaler) / 1000;
+    uint32_t subsecsadd = s* prescaler;
     
-    if ((ms < 1000) && (subsecsadd < 2))
+    if ((s < 1) && (subsecsadd < 2))
         subsecsadd = 2;                             //At least 2 subsecs delay to be sure interrupt is called
     
     __disable_irq();                                //At this point we don't want IRQs anymore
@@ -71,7 +71,7 @@
     subsecs -= subsecsadd;
     
     //Set seconds correctly
-    secs += ms / 1000;
+    secs += s;
     struct tm *timeinfo = localtime(&secs);
     
     //Enable rising edge EXTI interrupt of the RTC