Nathan Yonkee / Mbed OS Nucleo_sleep_copy
Committer:
Nathan Yonkee
Date:
Fri Jul 07 07:08:20 2017 -0600
Revision:
2:aa4afe9a928c
Parent:
0:402d16a0d4dd
Child:
4:2afaac57dc82
autoformat

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nathan Yonkee 2:aa4afe9a928c 1 #include "mbed.h"
Nathan Yonkee 2:aa4afe9a928c 2
Nathan Yonkee 2:aa4afe9a928c 3 #define USER_BUTTON PA_0
Nathan Yonkee 2:aa4afe9a928c 4 InterruptIn event(USER_BUTTON);
Nathan Yonkee 2:aa4afe9a928c 5 DigitalOut myled(LED2);
Nathan Yonkee 2:aa4afe9a928c 6
Nathan Yonkee 2:aa4afe9a928c 7 int go_to_sleep = 0;
Nathan Yonkee 2:aa4afe9a928c 8
Nathan Yonkee 2:aa4afe9a928c 9 void pressed() {
Nathan Yonkee 2:aa4afe9a928c 10 printf("Button pressed\n");
Nathan Yonkee 2:aa4afe9a928c 11 go_to_sleep = go_to_sleep + 1;
Nathan Yonkee 2:aa4afe9a928c 12 if (go_to_sleep > 3) go_to_sleep = 0;
Nathan Yonkee 2:aa4afe9a928c 13
Nathan Yonkee 2:aa4afe9a928c 14 }
Nathan Yonkee 2:aa4afe9a928c 15
Nathan Yonkee 2:aa4afe9a928c 16 int main() {
Nathan Yonkee 2:aa4afe9a928c 17 int i = 0;
Nathan Yonkee 2:aa4afe9a928c 18
Nathan Yonkee 2:aa4afe9a928c 19 printf("\nPress Button to enter/exit sleep & deepsleep\n");
Nathan Yonkee 2:aa4afe9a928c 20
Nathan Yonkee 2:aa4afe9a928c 21 event.fall(&pressed);
Nathan Yonkee 2:aa4afe9a928c 22
Nathan Yonkee 2:aa4afe9a928c 23 while (1) {
Nathan Yonkee 2:aa4afe9a928c 24
Nathan Yonkee 2:aa4afe9a928c 25 if ((go_to_sleep == 0) || (go_to_sleep == 2)) {
Nathan Yonkee 2:aa4afe9a928c 26 printf("%d: Running\n", i);
Nathan Yonkee 2:aa4afe9a928c 27 myled = !myled;
Nathan Yonkee 2:aa4afe9a928c 28 wait(1.0);
Nathan Yonkee 2:aa4afe9a928c 29 }
Nathan Yonkee 2:aa4afe9a928c 30
Nathan Yonkee 2:aa4afe9a928c 31 if (go_to_sleep == 1) {
Nathan Yonkee 2:aa4afe9a928c 32 myled = 0;
Nathan Yonkee 2:aa4afe9a928c 33 printf("%d: Entering sleep (press user button to resume)\n", i);
Nathan Yonkee 2:aa4afe9a928c 34 sleep();
Nathan Yonkee 2:aa4afe9a928c 35 }
Nathan Yonkee 2:aa4afe9a928c 36
Nathan Yonkee 2:aa4afe9a928c 37 if (go_to_sleep == 3) {
Nathan Yonkee 2:aa4afe9a928c 38 myled = 0;
Nathan Yonkee 2:aa4afe9a928c 39 printf("%d: Entering deepsleep (press user button to resume)\n", i);
Nathan Yonkee 2:aa4afe9a928c 40 deepsleep();
Nathan Yonkee 2:aa4afe9a928c 41 }
Nathan Yonkee 2:aa4afe9a928c 42
Nathan Yonkee 2:aa4afe9a928c 43 i++;
Nathan Yonkee 2:aa4afe9a928c 44 }
Nathan Yonkee 2:aa4afe9a928c 45 }