Demo program for the RTC library.

Dependencies:   KL25Z_RTC mbed

Committer:
clemente
Date:
Sun Aug 25 22:14:04 2013 +0000
Revision:
0:92bedc4e1536
First release.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
clemente 0:92bedc4e1536 1 #include "mbed.h"
clemente 0:92bedc4e1536 2 #include "KL25Z_RTC.h"
clemente 0:92bedc4e1536 3
clemente 0:92bedc4e1536 4
clemente 0:92bedc4e1536 5 DigitalOut myled(LED1);
clemente 0:92bedc4e1536 6 Serial pc(USBTX, USBRX);
clemente 0:92bedc4e1536 7
clemente 0:92bedc4e1536 8 // Init the RTC module with an alarm value of 15 sec.
clemente 0:92bedc4e1536 9 KL25Z_RTC rtc( 15);
clemente 0:92bedc4e1536 10
clemente 0:92bedc4e1536 11 // Callback user function
clemente 0:92bedc4e1536 12 void alm ( void);
clemente 0:92bedc4e1536 13 void sec ( void);
clemente 0:92bedc4e1536 14
clemente 0:92bedc4e1536 15 // Function to put in sleep or deepsleep the ARM Core.
clemente 0:92bedc4e1536 16 #define SCB_SCR_SLEEPDEEP_MASK 0x4u
clemente 0:92bedc4e1536 17 void sleep( void);
clemente 0:92bedc4e1536 18 void deepsleep (void);
clemente 0:92bedc4e1536 19
clemente 0:92bedc4e1536 20 unsigned int count;
clemente 0:92bedc4e1536 21
clemente 0:92bedc4e1536 22 int main() {
clemente 0:92bedc4e1536 23
clemente 0:92bedc4e1536 24 pc.baud( 230400);
clemente 0:92bedc4e1536 25 pc.printf("RTC Management.\r\n");
clemente 0:92bedc4e1536 26
clemente 0:92bedc4e1536 27 // rtc.RTC_Start( &sec, &alm);
clemente 0:92bedc4e1536 28 rtc.RTC_Start( NULL, &alm);
clemente 0:92bedc4e1536 29 pc.printf("Alarm configured [15sec], ");
clemente 0:92bedc4e1536 30
clemente 0:92bedc4e1536 31 count=0;
clemente 0:92bedc4e1536 32 while(1)
clemente 0:92bedc4e1536 33 {
clemente 0:92bedc4e1536 34 //
clemente 0:92bedc4e1536 35 pc.printf("enter sleep...\r\n");
clemente 0:92bedc4e1536 36 deepsleep();
clemente 0:92bedc4e1536 37
clemente 0:92bedc4e1536 38 pc.printf("exit sleep: %d\r\n", ++count);
clemente 0:92bedc4e1536 39 }
clemente 0:92bedc4e1536 40 }
clemente 0:92bedc4e1536 41
clemente 0:92bedc4e1536 42 void sec ( void)
clemente 0:92bedc4e1536 43 {
clemente 0:92bedc4e1536 44 pc.printf("sec\r\n");
clemente 0:92bedc4e1536 45 }
clemente 0:92bedc4e1536 46
clemente 0:92bedc4e1536 47 void alm ( void)
clemente 0:92bedc4e1536 48 {
clemente 0:92bedc4e1536 49 pc.printf("alrm\r\n");
clemente 0:92bedc4e1536 50 }
clemente 0:92bedc4e1536 51
clemente 0:92bedc4e1536 52 void sleep( void)
clemente 0:92bedc4e1536 53 {
clemente 0:92bedc4e1536 54 SCB->SCR &= ~SCB_SCR_SLEEPDEEP_MASK;
clemente 0:92bedc4e1536 55 __wfi();
clemente 0:92bedc4e1536 56 }
clemente 0:92bedc4e1536 57
clemente 0:92bedc4e1536 58 void deepsleep (void)
clemente 0:92bedc4e1536 59 {
clemente 0:92bedc4e1536 60 /* Set the SLEEPDEEP bit to enable deep sleep mode (STOP) */
clemente 0:92bedc4e1536 61 SCB->SCR |= SCB_SCR_SLEEPDEEP_MASK;
clemente 0:92bedc4e1536 62
clemente 0:92bedc4e1536 63 __wfi();
clemente 0:92bedc4e1536 64 }