Example of using sleep/deepsleep with the LPC812

Dependencies:   mbed-src WakeUp

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.

Committer:
Sissors
Date:
Wed Nov 20 21:26:47 2013 +0000
Revision:
0:273b2570ead8
Child:
1:85ca0ec1e66f
Example of sleep modii of the LPC81x

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sissors 0:273b2570ead8 1 #include "mbed.h"
Sissors 0:273b2570ead8 2
Sissors 0:273b2570ead8 3 DigitalOut myled(LED1);
Sissors 0:273b2570ead8 4 InterruptIn inter(D0);
Sissors 0:273b2570ead8 5
Sissors 0:273b2570ead8 6
Sissors 0:273b2570ead8 7 void interirq(void) {
Sissors 0:273b2570ead8 8
Sissors 0:273b2570ead8 9 }
Sissors 0:273b2570ead8 10
Sissors 0:273b2570ead8 11 int main() {
Sissors 0:273b2570ead8 12 inter.rise(interirq);
Sissors 0:273b2570ead8 13
Sissors 0:273b2570ead8 14 //Disable BOD and WDT:
Sissors 0:273b2570ead8 15 LPC_SYSCON->PDRUNCFG |= (1<<3) | (1<<6);
Sissors 0:273b2570ead8 16
Sissors 0:273b2570ead8 17 while(1) {
Sissors 0:273b2570ead8 18 for (int i = 0; i<10; i++) {
Sissors 0:273b2570ead8 19 myled = 0;
Sissors 0:273b2570ead8 20 wait(0.2);
Sissors 0:273b2570ead8 21 myled = 1;
Sissors 0:273b2570ead8 22 wait(0.2);
Sissors 0:273b2570ead8 23 }
Sissors 0:273b2570ead8 24 //sleep();
Sissors 0:273b2570ead8 25 deepsleep();
Sissors 0:273b2570ead8 26 }
Sissors 0:273b2570ead8 27 }