Nucleo Deep Sleep wakeup

Dependencies:   WakeUp mbed

Fork of Nucleo_sleep by ST

main.cpp

Committer:
bcostm
Date:
2016-01-27
Revision:
1:58b6efe82b46
Parent:
0:69ffa4abe5b6
Child:
2:4a344badae18

File content as of revision 1:58b6efe82b46:

#include "mbed.h"

InterruptIn event(USER_BUTTON);
DigitalOut myled(LED1);
Serial pc(SERIAL_TX, SERIAL_RX);

int go_to_sleep = 0;

void pressed()
{
    pc.printf("Button pressed\n");
    go_to_sleep = go_to_sleep + 1;
    if (go_to_sleep > 3) go_to_sleep = 0;

}

int main()
{
    int i = 0;

    pc.printf("\nPress Button to enter/exit sleep & deepsleep\n");

    event.fall(&pressed);

    while (1) {

        if ((go_to_sleep == 0) || (go_to_sleep == 2)) {
            pc.printf("%d: Running\n", i);
            myled = !myled;
            wait(1.0);
        }

        if (go_to_sleep == 1) {
            myled = 0;
            pc.printf("%d: Entering sleep (press user button to resume)\n", i);
            sleep();
        }

        if (go_to_sleep == 3) {
            myled = 0;
            pc.printf("%d: Entering deepsleep (press user button to resume)\n", i);
            deepsleep();
        }

        i++;
    }
}