Demo of how to wakeup from sleep mode on timers.

Dependencies:   WakeUp mBuino_Sleep mbed

Committer:
AndyA
Date:
Sun Sep 28 09:25:24 2014 +0000
Revision:
0:a9faf46beadf
First commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndyA 0:a9faf46beadf 1 // example code on how to wake from sleep mode after a fixed period of time.
AndyA 0:a9faf46beadf 2
AndyA 0:a9faf46beadf 3 // Normal sleep we can use a timer but there isn't a huge power saving.
AndyA 0:a9faf46beadf 4
AndyA 0:a9faf46beadf 5 // DeepSleep or PowerDown we need to use the watchdog (via the WakeUp library)
AndyA 0:a9faf46beadf 6
AndyA 0:a9faf46beadf 7 // pick which version to compile, 1 for sleep, 0 for power down
AndyA 0:a9faf46beadf 8 #define normalSleep 0
AndyA 0:a9faf46beadf 9
AndyA 0:a9faf46beadf 10 #if normalSleep
AndyA 0:a9faf46beadf 11
AndyA 0:a9faf46beadf 12 // code for normal sleep mode:
AndyA 0:a9faf46beadf 13 #include "mbed.h"
AndyA 0:a9faf46beadf 14 #include "mBuinoSleep.h"
AndyA 0:a9faf46beadf 15
AndyA 0:a9faf46beadf 16 Ticker OneSecClock;
AndyA 0:a9faf46beadf 17
AndyA 0:a9faf46beadf 18 void onClock()
AndyA 0:a9faf46beadf 19 {
AndyA 0:a9faf46beadf 20 NULL; // empty function, just need a place holder here
AndyA 0:a9faf46beadf 21 }
AndyA 0:a9faf46beadf 22
AndyA 0:a9faf46beadf 23 int main ()
AndyA 0:a9faf46beadf 24 {
AndyA 0:a9faf46beadf 25 LEDs = 1;
AndyA 0:a9faf46beadf 26
AndyA 0:a9faf46beadf 27 OneSecClock.attach(onClock,1);
AndyA 0:a9faf46beadf 28
AndyA 0:a9faf46beadf 29 while (1) {
AndyA 0:a9faf46beadf 30 wait(0.1);
AndyA 0:a9faf46beadf 31 mBuinoSleep(Sleep);
AndyA 0:a9faf46beadf 32 if (LEDs == 127)
AndyA 0:a9faf46beadf 33 LEDs = 1;
AndyA 0:a9faf46beadf 34 else
AndyA 0:a9faf46beadf 35 LEDs = LEDs + 1;
AndyA 0:a9faf46beadf 36 }
AndyA 0:a9faf46beadf 37 }
AndyA 0:a9faf46beadf 38
AndyA 0:a9faf46beadf 39
AndyA 0:a9faf46beadf 40 #else
AndyA 0:a9faf46beadf 41
AndyA 0:a9faf46beadf 42 // code for power down mode
AndyA 0:a9faf46beadf 43 #include "mbed.h"
AndyA 0:a9faf46beadf 44 #include "mBuinoSleep.h"
AndyA 0:a9faf46beadf 45 #include "WakeUp.h"
AndyA 0:a9faf46beadf 46
AndyA 0:a9faf46beadf 47 int main ()
AndyA 0:a9faf46beadf 48 {
AndyA 0:a9faf46beadf 49 WakeUp::calibrate();
AndyA 0:a9faf46beadf 50 LEDs = 1;
AndyA 0:a9faf46beadf 51
AndyA 0:a9faf46beadf 52 while (1) {
AndyA 0:a9faf46beadf 53 wait(0.1);
AndyA 0:a9faf46beadf 54 WakeUp::set_ms(900);
AndyA 0:a9faf46beadf 55 mBuinoSleep(PowerDownWD);
AndyA 0:a9faf46beadf 56 if (LEDs == 127)
AndyA 0:a9faf46beadf 57 LEDs = 1;
AndyA 0:a9faf46beadf 58 else
AndyA 0:a9faf46beadf 59 LEDs = LEDs + 1;
AndyA 0:a9faf46beadf 60 }
AndyA 0:a9faf46beadf 61 }
AndyA 0:a9faf46beadf 62
AndyA 0:a9faf46beadf 63 #endif