Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 1:768b8bd42e33
- Parent:
- 0:cc87c48aa43c
- Child:
- 2:535d154caa12
--- a/main.cpp Tue Sep 20 14:06:28 2011 +0000
+++ b/main.cpp Tue Jan 29 02:34:03 2013 +0000
@@ -8,34 +8,45 @@
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);
-PinDetect pb(p8);
+PinDetect pb1(p8);
+PinDetect pb2(p7);
// SPST Pushbutton debounced count demo using interrupts and callback
// no external PullUp resistor needed
// Pushbutton from P8 to GND.
+// Second Pushbutton from P7 to GND.
// A pb hit generates an interrupt and activates the callback function
// after the switch is debounced
// Global count variable
int volatile count=0;
-// Callback routine is interrupt activated by a debounced pb hit
-void pb_hit_callback (void) {
+// Callback routine is interrupt activated by a debounced pb1 hit
+void pb1_hit_callback (void) {
count++;
myled4 = count & 0x01;
myled3 = (count & 0x02)>>1;
myled2 = (count & 0x04)>>2;
}
+// Callback routine is interrupt activated by a debounced pb2 hit
+void pb2_hit_callback (void) {
+ count--;
+ myled4 = count & 0x01;
+ myled3 = (count & 0x02)>>1;
+ myled2 = (count & 0x04)>>2;
+}
int main() {
- // Use internal pullup for pushbutton
- pb.mode(PullUp);
+ // Use internal pullups for pushbutton
+ pb1.mode(PullUp);
+ pb2.mode(PullUp);
// Delay for initial pullup to take effect
wait(.01);
- // Setup Interrupt callback function for a pb hit
- pb.attach_deasserted(&pb_hit_callback);
- // Start sampling pb input using interrupts
- pb.setSampleFrequency();
-
+ // Setup Interrupt callback functions for a pb hit
+ pb1.attach_deasserted(&pb1_hit_callback);
+ pb2.attach_deasserted(&pb2_hit_callback);
+ // Start sampling pb inputs using interrupts
+ pb1.setSampleFrequency();
+ pb2.setSampleFrequency();
//Blink myled in main routine forever while responding to pb changes
// via interrupts that activate the callback counter function
while (1) {