debounce based on book

Dependencies:   mbed

Committer:
avnisha
Date:
Mon Feb 10 20:01:27 2014 +0000
Revision:
0:e111fc0f3ecb
ok

Who changed what in which revision?

UserRevisionLine numberNew 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 }