Example of using sleep/deepsleep with the LPC812
After some initial code the device goes into powerdown (deepsleep), or sleep mode. By creating a rising edge on pin D0 (I just use a cable to connect it to Vdd) it will leave sleep, blink blue, and go to sleep again. Aditionally after 10 seconds of sleep it will blink green using the low-power wake-up timer.
Brownout detection and Watchdog timer are disabled since in deepsleep they are the primary power consumers.
main.cpp
- Committer:
- Sissors
- Date:
- 2013-11-23
- Revision:
- 1:85ca0ec1e66f
- Parent:
- 0:273b2570ead8
File content as of revision 1:85ca0ec1e66f:
#include "mbed.h" #include "WakeUp.h" DigitalOut led1(LED1); DigitalOut led2(LED2); InterruptIn inter(D0); void interirq(void) { led1 = 0; wait(0.2); led1 = 1; } void wakeirq(void) { led2 = 0; wait(0.2); led2 = 1; } int main() { led1 = 1; led2 = 1; inter.rise(interirq); WakeUp::calibrate(); WakeUp::attach(wakeirq); //Disable BOD and WDT (only done to get nice low deepsleep power): LPC_SYSCON->PDRUNCFG |= (1<<3) | (1<<6); WakeUp::set(10); while(1) { //sleep(); deepsleep(); WakeUp::set(10); } }