avnish aggarwal
/
Bootcamp-debounceBook
debounce based on book
main.cpp@0:e111fc0f3ecb, 2014-02-10 (annotated)
- Committer:
- avnisha
- Date:
- Mon Feb 10 20:01:27 2014 +0000
- Revision:
- 0:e111fc0f3ecb
ok
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
avnisha | 0:e111fc0f3ecb | 1 | #include "mbed.h" |
avnisha | 0:e111fc0f3ecb | 2 | |
avnisha | 0:e111fc0f3ecb | 3 | /* |
avnisha | 0:e111fc0f3ecb | 4 | * Book - 9.10 (page 198) |
avnisha | 0:e111fc0f3ecb | 5 | * |
avnisha | 0:e111fc0f3ecb | 6 | * Switch debounce based on a simple 50ms wait before next event processed |
avnisha | 0:e111fc0f3ecb | 7 | * Note - the wait time DEPENDS on your switch. Experiment !!! |
avnisha | 0:e111fc0f3ecb | 8 | */ |
avnisha | 0:e111fc0f3ecb | 9 | |
avnisha | 0:e111fc0f3ecb | 10 | DigitalOut led1(LED1); |
avnisha | 0:e111fc0f3ecb | 11 | DigitalOut led2(LED2); |
avnisha | 0:e111fc0f3ecb | 12 | InterruptIn button(p12); |
avnisha | 0:e111fc0f3ecb | 13 | Timer debounce; |
avnisha | 0:e111fc0f3ecb | 14 | |
avnisha | 0:e111fc0f3ecb | 15 | void rise(void); |
avnisha | 0:e111fc0f3ecb | 16 | void fall(void); |
avnisha | 0:e111fc0f3ecb | 17 | |
avnisha | 0:e111fc0f3ecb | 18 | int main() { |
avnisha | 0:e111fc0f3ecb | 19 | debounce.start(); |
avnisha | 0:e111fc0f3ecb | 20 | button.rise(&rise); |
avnisha | 0:e111fc0f3ecb | 21 | //button.fall(&fall); |
avnisha | 0:e111fc0f3ecb | 22 | } |
avnisha | 0:e111fc0f3ecb | 23 | |
avnisha | 0:e111fc0f3ecb | 24 | void rise() { |
avnisha | 0:e111fc0f3ecb | 25 | printf("rise\n"); |
avnisha | 0:e111fc0f3ecb | 26 | if (debounce.read_ms() > 50) { |
avnisha | 0:e111fc0f3ecb | 27 | led1 = !led1; |
avnisha | 0:e111fc0f3ecb | 28 | debounce.reset(); |
avnisha | 0:e111fc0f3ecb | 29 | } |
avnisha | 0:e111fc0f3ecb | 30 | } |
avnisha | 0:e111fc0f3ecb | 31 | |
avnisha | 0:e111fc0f3ecb | 32 | void fall() { |
avnisha | 0:e111fc0f3ecb | 33 | printf("fall\n"); |
avnisha | 0:e111fc0f3ecb | 34 | if (debounce.read_ms() > 50) { |
avnisha | 0:e111fc0f3ecb | 35 | led2 = !led2; |
avnisha | 0:e111fc0f3ecb | 36 | debounce.reset(); |
avnisha | 0:e111fc0f3ecb | 37 | } |
avnisha | 0:e111fc0f3ecb | 38 | } |