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
--- /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;
+    }
+}
--- /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