
WFI sleep and wake-up for GR-PEACH
mbed_sleep_blinky.cpp@1:e508448feb1c, 2016-11-17 (annotated)
- Committer:
- pateshian
- Date:
- Thu Nov 17 16:33:21 2016 +0000
- Revision:
- 1:e508448feb1c
- Parent:
- 0:ab9939da6645
WFI based sleep and wake-up for GR-PEACH on mbed5.X
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pateshian | 0:ab9939da6645 | 1 | #include "mbed.h" |
pateshian | 0:ab9939da6645 | 2 | #define IRQ4 (36) |
pateshian | 0:ab9939da6645 | 3 | gpio_irq_t irqHandler; |
pateshian | 0:ab9939da6645 | 4 | DigitalOut led1(LED1); |
pateshian | 0:ab9939da6645 | 5 | int gFlag = 0; |
pateshian | 0:ab9939da6645 | 6 | void interrupt_irq4_user (uint32_t id, gpio_irq_event event) { |
pateshian | 0:ab9939da6645 | 7 | if (!gFlag){ |
pateshian | 0:ab9939da6645 | 8 | gFlag = 1; |
pateshian | 0:ab9939da6645 | 9 | } |
pateshian | 0:ab9939da6645 | 10 | } |
pateshian | 0:ab9939da6645 | 11 | // main() runs in its own thread in the OS |
pateshian | 0:ab9939da6645 | 12 | // (note the calls to Thread::wait below for delays) |
pateshian | 0:ab9939da6645 | 13 | int main() { |
pateshian | 1:e508448feb1c | 14 | gpio_irq_init (&irqHandler, USER_BUTTON0, interrupt_irq4_user, IRQ4); |
pateshian | 0:ab9939da6645 | 15 | while (true) { |
pateshian | 0:ab9939da6645 | 16 | if ( gFlag == 1 ) { |
pateshian | 0:ab9939da6645 | 17 | gFlag = 0; |
pateshian | 0:ab9939da6645 | 18 | led1 = led1; |
pateshian | 0:ab9939da6645 | 19 | __WFI(); |
pateshian | 0:ab9939da6645 | 20 | led1 = !led1; |
pateshian | 0:ab9939da6645 | 21 | } |
pateshian | 0:ab9939da6645 | 22 | //led1 = !led1; |
pateshian | 0:ab9939da6645 | 23 | //Thread::wait(500); |
pateshian | 0:ab9939da6645 | 24 | } |
pateshian | 0:ab9939da6645 | 25 | } |