Code-Basis für Programm zum Taster-Entprellen
Fork of Laser-Distance by
Diff: main.cpp
- Revision:
- 12:b436e51e86a8
- Parent:
- 11:b68be9bd5754
- Child:
- 13:87f9e63b2cfa
--- a/main.cpp Mon Oct 01 09:17:01 2018 +0000 +++ b/main.cpp Mon Oct 01 11:21:17 2018 +0000 @@ -3,7 +3,7 @@ #define USE_I2C_2V8 DigitalOut myled(P0_8); // 7=rot, 8=grün, 9=blau -InterruptIn sw_o(P0_12); +DigitalIn sw_o(P0_12); InterruptIn sw_b(P0_13); InterruptIn sw_g(P0_14); @@ -12,8 +12,6 @@ int count_o, count_b, count_g = 0; -void orange(); - void blue(){ count_b++; } @@ -26,21 +24,22 @@ sw_o.mode(PullUp); sw_b.mode(PullUp); sw_g.mode(PullUp); - sw_o.fall(&orange); + sw_b.fall(&blue); sw_g.fall(&green); + wait(0.2); + int sw_o_old = 0; + int sw_o_new; lcd.printf(0, "Red Blue Green\r"); // Parameter von printf auf LCD: Zeilennummer (0 or 1), string while(1) { - - lcd.printf(1, "%d %d %d", count_o, count_b, count_g); + sw_o_new = sw_o; + if ((sw_o_new==0) && (sw_o_old==1)) count_o++; // fallende Flanke: old=1 & new=0 + sw_o_old = sw_o_new; + lcd.printf(1,1, "%d %d %d", count_o, count_b, count_g); myled = !myled; } -} - -void orange() { - count_o++; } \ No newline at end of file