Jose Rios
/
Nucleo_BlinkLowPower
Blinking a LED in low power mode (Replacing the active wait() function to a low power wait function).
Diff: main.cpp
- Revision:
- 0:f1ecec258a2c
diff -r 000000000000 -r f1ecec258a2c main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Oct 29 20:53:20 2014 +0000 @@ -0,0 +1,28 @@ +#include "mbed.h" + +DigitalOut led(LED1, 0); // Create the LED object and setup OFF +Timeout timeout; // Create the Timeout object + +void wait_LowPow(unsigned long time); // Wait in low power mode function prototype + +void timer_interrupt() // The Timer interrupt service routine +{ + // Nothing to do, just for wakeup the system +} + +int main() +{ + while(1) + { + led = 1; // Turn LED ON + wait_LowPow(1); // Wait 1s in low power mode + led = 0; // Turn LED OFF + wait_LowPow(1); // Wait 1s in low power mode + } +} + +void wait_LowPow(unsigned long time) // Wait in low power mode function implementation +{ + timeout.attach(&timer_interrupt, time); // Set the timer interrupt service rutine (ISR) and the time for the timeout (in seconds) + sleep(); // Enter Low Power Mode (It cant be used deep_sleep() mode, because that mode disable the timer) +}