![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
BertlTemplate3
Diff: BertlPingPongBlink.cpp
- Revision:
- 0:5fd8e02b1e0e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BertlPingPongBlink.cpp Thu Nov 15 17:50:14 2018 +0000 @@ -0,0 +1,171 @@ +#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); + +// ls5 nur beim Betrl15 +// AnalogInHL ls1(p18), ls2(p16), ls3(p19), ls4(p17); // B14 + +//AnalogInHL ls1(p18), ls2(p16), ls3(p20), ls4(p19), ls5(p17); // B15 +void ButonBlinker(); + +//void MotorTest (); + +void BackW (); +void ForW (); +void BlinkTask(); +int direction = 0; //0 = zrueck und 1 = vorwaerts +Timer t1; + + + +int main(void) +{ + boardPow=1; + wait_ms(10); + InitBertl(); + pex.useISR=0; + leds=9; + pex.ClearLeds(); + t1.start(); + + pex.WaitUntilButtonPressed(); + while(1) { + //ButonBlinker(); + //MotorTest (); + BackW(); + wait_ms(1000); + ForW(); + wait_ms(1000); + } + + return 1; +} + +void ButonBlinker() +{ + pex.ReadButtons(); + + if (pex.IsButton(BTN_FLL)) + { + pex.SetLeds(LED_FL1|LED_FL2); + } + + if (pex.IsButton(BTN_FRR)) + { + pex.SetLeds(LED_FR1|LED_FR2); + } + wait_ms(100); + pex.ClearLeds(); + wait_ms(100); +} + + +/* +void MotorTest () +{ + if (pex.IsButton(BTN_FRR||BTN_FLL)) + { + mL.SetPow(-0.2); + mR.SetPow(-0.2); + } + + + else if (pex.IsButton(BTN_BR||BTN_BL)) + { + mL.SetPow(0.2); + mR.SetPow(0.2); + } + + //mL.SetPow(0.2); + //mR.SetPow(0.2); + + //wait_ms(2000); + + //mL.SetPow(-0.2); + //mR.SetPow(-0.2); + + //wait_ms(2000); + + + + +} +*/ + +void BackW () +{ + pex.ClearLeds(); + mL.SetPow(0.3); + mR.SetPow(0.3); + direction = 0; + + pex.SetLeds(LED_FL1|LED_FL2); + pex.SetLeds(LED_FR1|LED_FR2); + + + + + while (1 ) { + pex.ReadButtons(); + BlinkTask(); + + if( pex.IsAnyFrontButton() ) { + break; + } + + } + mL.SetPow(0); + mR.SetPow(0); + + +} + + +void ForW () +{ + pex.ClearLeds(); + mL.SetPow(-0.3); + mR.SetPow(-0.3); + direction = 1; + + + pex.SetLeds(LED_BL1|LED_BL2); + pex.SetLeds(LED_BR1|LED_BR2); + + while (1 ) { + pex.ReadButtons(); + BlinkTask(); + + if( pex.IsAnyBackButton() ) { + break; + } + + + } + mL.SetPow(0); + mR.SetPow(0); +} + +void BlinkTask() +{ + if( t1.read_ms()>100 ) // alle 100ms = 10Hz + { + t1.reset(); // timer neu starten + + if(direction == 0) + { + pex.ToggleLeds(LED_BL1| LED_BR1); + pex.ToggleLeds(LED_BL2| LED_BR2); + + } else + { + pex.ToggleLeds(LED_FL1| LED_FR1); + pex.ToggleLeds(LED_FL2| LED_FR2); + } + } + } +