Dependencies: DebounceIn PinDetect mbed
Diff: main.cpp
- Revision:
- 0:eb94cfc93645
- Child:
- 1:0bbf5bbbf85b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Nov 16 13:35:33 2015 +0000 @@ -0,0 +1,74 @@ +#include "mbed.h" +#include "PinDetect.h" +DigitalOut l1(LED1); +DigitalOut l2(LED2); +DigitalOut l3(LED3); +DigitalOut l4(LED4); +PinDetect pb(p8); +// SPST Pushbutton demo using internal PullUp function +// no external PullUp resistor needed +// Pushbutton from P8 to GND. + +// Global count variable +int volatile count=0; +//int volatile hit = 1; + +void light_left_2_right(int mode){ + for(int i=0;i<4 ;i++) { + l4 = 1 >> i; + l3 = 2 >> i; + l2 = 4 >> i; + l1 = 8 >> i; + if(mode) //fast + wait(0.1); + else //slow + wait(0.3); + } +} + +void light_right_2_left(int mode){ + for(int i=0;i<4 ;i++) { + l1 = 1 >> i; + l2 = 2 >> i; + l3 = 4 >> i; + l4 = 8 >> i; + if(mode) //fast + wait(0.1); + else //slow + wait(0.3); + } +} + +void blink_me(void) { + int mode; + mode = count %4; + if(mode == 0) light_left_2_right(0); + if(mode == 1) light_right_2_left(0); + if(mode == 2) light_left_2_right(1); + if(mode == 3) light_right_2_left(1; +} + +void p8_release_callback(void) { + l4=0; + l3=0; + l2=0; + l1=0; +} + +void p8_hit_callback(void) { + count++; + wait(0.01); +} + +int main() { + pb.mode(PullUp); + wait(0.01); + // Setup Interrupt callback functions for a pb hit + pb.attach_deasserted(&p8_hit_callback); + pb.attach_asserted(&p8_release_callback); + // Start sampling pb inputs using interrupts + pb.setSampleFrequency(); + while(1) { + blink_me(); + } +} \ No newline at end of file