Benjamin Heckendorn
/
Wake_Sleep_Test
For the BT
main.cpp@0:31c90b3b74a6, 2017-06-27 (annotated)
- Committer:
- benheck
- Date:
- Tue Jun 27 18:40:46 2017 +0000
- Revision:
- 0:31c90b3b74a6
For testing purposes of I/O
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benheck | 0:31c90b3b74a6 | 1 | #include "mbed.h" |
benheck | 0:31c90b3b74a6 | 2 | |
benheck | 0:31c90b3b74a6 | 3 | //InterruptIn event(USER_BUTTON); |
benheck | 0:31c90b3b74a6 | 4 | |
benheck | 0:31c90b3b74a6 | 5 | InterruptIn tilt(PC_5); |
benheck | 0:31c90b3b74a6 | 6 | InterruptIn shake(PC_6); |
benheck | 0:31c90b3b74a6 | 7 | |
benheck | 0:31c90b3b74a6 | 8 | DigitalIn tiltButton(PC_5); |
benheck | 0:31c90b3b74a6 | 9 | DigitalIn shakeButton(PC_6); |
benheck | 0:31c90b3b74a6 | 10 | |
benheck | 0:31c90b3b74a6 | 11 | DigitalOut myled(LED1); |
benheck | 0:31c90b3b74a6 | 12 | |
benheck | 0:31c90b3b74a6 | 13 | int timeOut = 10; |
benheck | 0:31c90b3b74a6 | 14 | |
benheck | 0:31c90b3b74a6 | 15 | void wakeMode() { |
benheck | 0:31c90b3b74a6 | 16 | tilt.disable_irq(); |
benheck | 0:31c90b3b74a6 | 17 | shake.disable_irq(); |
benheck | 0:31c90b3b74a6 | 18 | } |
benheck | 0:31c90b3b74a6 | 19 | |
benheck | 0:31c90b3b74a6 | 20 | void tiltIRQ() { |
benheck | 0:31c90b3b74a6 | 21 | printf("WAKE - Tilt!\n"); |
benheck | 0:31c90b3b74a6 | 22 | timeOut = 10; |
benheck | 0:31c90b3b74a6 | 23 | wakeMode(); |
benheck | 0:31c90b3b74a6 | 24 | } |
benheck | 0:31c90b3b74a6 | 25 | |
benheck | 0:31c90b3b74a6 | 26 | void shakeIRQ() { |
benheck | 0:31c90b3b74a6 | 27 | printf("WAKE - Shake!\n"); |
benheck | 0:31c90b3b74a6 | 28 | timeOut = 10; |
benheck | 0:31c90b3b74a6 | 29 | wakeMode(); |
benheck | 0:31c90b3b74a6 | 30 | } |
benheck | 0:31c90b3b74a6 | 31 | |
benheck | 0:31c90b3b74a6 | 32 | void sleepMode() { |
benheck | 0:31c90b3b74a6 | 33 | |
benheck | 0:31c90b3b74a6 | 34 | tilt.enable_irq(); |
benheck | 0:31c90b3b74a6 | 35 | shake.enable_irq(); |
benheck | 0:31c90b3b74a6 | 36 | |
benheck | 0:31c90b3b74a6 | 37 | tilt.fall(&tiltIRQ); |
benheck | 0:31c90b3b74a6 | 38 | shake.fall(&shakeIRQ); |
benheck | 0:31c90b3b74a6 | 39 | |
benheck | 0:31c90b3b74a6 | 40 | deepsleep(); |
benheck | 0:31c90b3b74a6 | 41 | |
benheck | 0:31c90b3b74a6 | 42 | } |
benheck | 0:31c90b3b74a6 | 43 | |
benheck | 0:31c90b3b74a6 | 44 | int main() |
benheck | 0:31c90b3b74a6 | 45 | { |
benheck | 0:31c90b3b74a6 | 46 | |
benheck | 0:31c90b3b74a6 | 47 | sleepMode(); |
benheck | 0:31c90b3b74a6 | 48 | |
benheck | 0:31c90b3b74a6 | 49 | printf("START\n"); |
benheck | 0:31c90b3b74a6 | 50 | |
benheck | 0:31c90b3b74a6 | 51 | while (1) { |
benheck | 0:31c90b3b74a6 | 52 | |
benheck | 0:31c90b3b74a6 | 53 | printf("%d: Running\n", timeOut); |
benheck | 0:31c90b3b74a6 | 54 | myled = !myled; |
benheck | 0:31c90b3b74a6 | 55 | wait(.2); |
benheck | 0:31c90b3b74a6 | 56 | |
benheck | 0:31c90b3b74a6 | 57 | timeOut -= 1; |
benheck | 0:31c90b3b74a6 | 58 | |
benheck | 0:31c90b3b74a6 | 59 | if (tiltButton == 0) { |
benheck | 0:31c90b3b74a6 | 60 | printf("Tilt!\n"); |
benheck | 0:31c90b3b74a6 | 61 | } |
benheck | 0:31c90b3b74a6 | 62 | if (shakeButton == 0) { |
benheck | 0:31c90b3b74a6 | 63 | printf("Shake!\n"); |
benheck | 0:31c90b3b74a6 | 64 | } |
benheck | 0:31c90b3b74a6 | 65 | |
benheck | 0:31c90b3b74a6 | 66 | if (timeOut == 0) { |
benheck | 0:31c90b3b74a6 | 67 | printf("Going to deep sleep...\n"); |
benheck | 0:31c90b3b74a6 | 68 | sleepMode(); |
benheck | 0:31c90b3b74a6 | 69 | } |
benheck | 0:31c90b3b74a6 | 70 | |
benheck | 0:31c90b3b74a6 | 71 | } |
benheck | 0:31c90b3b74a6 | 72 | |
benheck | 0:31c90b3b74a6 | 73 | } |
benheck | 0:31c90b3b74a6 | 74 | |
benheck | 0:31c90b3b74a6 | 75 | |
benheck | 0:31c90b3b74a6 | 76 | |
benheck | 0:31c90b3b74a6 | 77 | |
benheck | 0:31c90b3b74a6 | 78 | |
benheck | 0:31c90b3b74a6 | 79 | |
benheck | 0:31c90b3b74a6 | 80 | |
benheck | 0:31c90b3b74a6 | 81 |