![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
thermostat
Dependencies: 4DGL-uLCD-SE PinDetect SDFileSystem mbed
Fork of mythermostat by
Diff: main.cpp
- Revision:
- 1:768b8bd42e33
- Parent:
- 0:cc87c48aa43c
- Child:
- 2:58d85409f7ff
--- 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) {