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.

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);
    }
}