Pushbutton demo using interrupts with switch contact bounce
Revision 0:7db73d1dc65f, committed 2011-10-06
- Comitter:
- 4180_1
- Date:
- Thu Oct 06 00:18:44 2011 +0000
- Child:
- 1:6582c095e8d1
- 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 Thu Oct 06 00:18:44 2011 +0000
@@ -0,0 +1,39 @@
+#include "mbed.h"
+
+DigitalOut myled(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut myled4(LED4);
+
+InterruptIn pb(p8);
+// SPST Pushbutton count demo using interrupts
+// no external PullUp resistor needed
+// Pushbutton from P8 to GND.
+// A pb hit generates an interrupt and activates the interrupt routine
+// after the switch is debounced
+
+// Global count variable
+int volatile count=0;
+
+// pb Interrupt routine - is interrupt activated by a falling edge of pb input
+void pb_hit_interrupt (void) {
+ count++;
+ myled4 = count & 0x01;
+ myled3 = (count & 0x02)>>1;
+ myled2 = (count & 0x04)>>2;
+}
+
+int main() {
+ // Use internal pullup for pushbutton
+ pb.mode(PullUp);
+ // Delay for initial pullup to take effect
+ wait(.01);
+ // Attach the address of the interrupt handler routine for pushbutton
+ pb.fall(&pb_hit_interrupt);
+ // Blink myled in main routine forever while responding to pb changes
+ // via interrupts that activate pb_hit_interrupt routine
+ while (1) {
+ myled = !myled;
+ wait(.5);
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Oct 06 00:18:44 2011 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/63bcd7ba4912