Pushbutton counter demo showing switch contact bounce

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
4180_1
Date:
Tue Sep 20 13:59:06 2011 +0000
Commit message:

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 996a0fc1fdea main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Sep 20 13:59:06 2011 +0000
@@ -0,0 +1,32 @@
+#include "mbed.h"
+
+DigitalOut myled(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut myled4(LED4);
+
+DigitalIn pb(p8);
+// SPST Pushbutton count demo using internal PullUp function
+// no external PullUp resistor needed
+// Pushbutton from P8 to GND.
+// Demonstrates need for debounce - will sometimes count more than once per button hit
+// This occurs on all switches due to mechanical contact bounce
+int main()
+{ 
+int count=0;
+int old_pb=1;
+int new_pb;
+    // Use internal pullup for pushbutton
+    pb.mode(PullUp);
+    // Delay for initial pullup to take effect
+    wait(.001);
+    while(1) {
+        new_pb = pb;
+        if ((new_pb==0) && (old_pb==1)) count++;
+        myled4 = count & 0x01;
+        myled3 = (count & 0x02)>>1;
+        myled2 = (count & 0x04)>>2;
+        myled = (count & 0x08)>>3;
+        old_pb = new_pb;
+    }
+}
diff -r 000000000000 -r 996a0fc1fdea mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Sep 20 13:59:06 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/63bcd7ba4912