SChuleEE 1
/
linienverfolgung
z
Diff: main.cpp
- Revision:
- 0:688028485205
diff -r 000000000000 -r 688028485205 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jun 14 10:51:28 2016 +0000 @@ -0,0 +1,119 @@ + +#include "mbed.h" +#include "Serial_HL.h" +#include "Bertl14.h" +#include "BertlObjects.h" + +// main=2^0 LS ENC 2^2 +BusOut boardPow(p30, P1_6, P1_7); +AnalogInHL ls1(p18), ls2(p16), ls3(p19), ls4(p17); + + void BlinkTask1(); + void BlinkTask2(); + Timer t1; + + + void ForwardUntilWall(); + void BackwardUntilWall(); + +int main(void) +{ + boardPow=1; wait_ms(10); + InitBertl(); + pex.useISR=0; leds=9; + pex.ClearLeds(); + pex.WaitUntilFrontButtonPressed(); + + + t1.start(); + //nur zum testen + mL.SetPow(0.3); mR.SetPow(0.3); + + //Bertl-PingPong + while(1) + { + ForwardUntilWall(); + BackwardUntilWall(); + } + + return 1; +} + +//Erweiterung: +// -Beim Vorwärtsfahren vorne blinken +// -Beim Rückwärtsfahren hinten blinken + +// pex.ToggleLeds(uintB_T aBitPattern); zum blinken + + + +void ForwardUntilWall() +{ + //motoren auf vorwärts + + //warten bis irgendein Frontbutton pressed# + while(1) + { + + if(ls4>600) + { + mL.SetPow(0); mR.SetPow(0); + //wait(100); + mL.SetPow(-0.3); mR.SetPow(-0.3); + + //BlinkTask1(); + + } + break; + } +} + +void BackwardUntilWall() +{ + //motoren auf rückwärts + + //warten bis irgendein BackButtonPressen + while(1) + { + + if(ls1>600) + { + mL.SetPow(0); mR.SetPow(0); + //wait(100); + mL.SetPow(0.3); mR.SetPow(0.3); + + //BlinkTask2(); + } + break; + } + // while SChleife + // motoren aus +} + + + +void BlinkTask1() +{ + if( t1.read_ms()>25 ) { // 100ms sind abgelaufen + t1.reset(); + pex.ToggleLeds(LED_FL1|LED_FL2); + } +} + +void BlinkTask2() +{ + if( t1.read_ms()>25 ) { // 100ms sind abgelaufen + t1.reset(); + pex.ToggleLeds(LED_BL1|LED_BL2); + } +} + + + + + + + + + +