z

Dependencies:   BertlLib mbed

Committer:
manuelschnider
Date:
Tue Jun 14 10:51:28 2016 +0000
Revision:
0:688028485205
zz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
manuelschnider 0:688028485205 1
manuelschnider 0:688028485205 2 #include "mbed.h"
manuelschnider 0:688028485205 3 #include "Serial_HL.h"
manuelschnider 0:688028485205 4 #include "Bertl14.h"
manuelschnider 0:688028485205 5 #include "BertlObjects.h"
manuelschnider 0:688028485205 6
manuelschnider 0:688028485205 7 // main=2^0 LS ENC 2^2
manuelschnider 0:688028485205 8 BusOut boardPow(p30, P1_6, P1_7);
manuelschnider 0:688028485205 9 AnalogInHL ls1(p18), ls2(p16), ls3(p19), ls4(p17);
manuelschnider 0:688028485205 10
manuelschnider 0:688028485205 11 void BlinkTask1();
manuelschnider 0:688028485205 12 void BlinkTask2();
manuelschnider 0:688028485205 13 Timer t1;
manuelschnider 0:688028485205 14
manuelschnider 0:688028485205 15
manuelschnider 0:688028485205 16 void ForwardUntilWall();
manuelschnider 0:688028485205 17 void BackwardUntilWall();
manuelschnider 0:688028485205 18
manuelschnider 0:688028485205 19 int main(void)
manuelschnider 0:688028485205 20 {
manuelschnider 0:688028485205 21 boardPow=1; wait_ms(10);
manuelschnider 0:688028485205 22 InitBertl();
manuelschnider 0:688028485205 23 pex.useISR=0; leds=9;
manuelschnider 0:688028485205 24 pex.ClearLeds();
manuelschnider 0:688028485205 25 pex.WaitUntilFrontButtonPressed();
manuelschnider 0:688028485205 26
manuelschnider 0:688028485205 27
manuelschnider 0:688028485205 28 t1.start();
manuelschnider 0:688028485205 29 //nur zum testen
manuelschnider 0:688028485205 30 mL.SetPow(0.3); mR.SetPow(0.3);
manuelschnider 0:688028485205 31
manuelschnider 0:688028485205 32 //Bertl-PingPong
manuelschnider 0:688028485205 33 while(1)
manuelschnider 0:688028485205 34 {
manuelschnider 0:688028485205 35 ForwardUntilWall();
manuelschnider 0:688028485205 36 BackwardUntilWall();
manuelschnider 0:688028485205 37 }
manuelschnider 0:688028485205 38
manuelschnider 0:688028485205 39 return 1;
manuelschnider 0:688028485205 40 }
manuelschnider 0:688028485205 41
manuelschnider 0:688028485205 42 //Erweiterung:
manuelschnider 0:688028485205 43 // -Beim Vorwärtsfahren vorne blinken
manuelschnider 0:688028485205 44 // -Beim Rückwärtsfahren hinten blinken
manuelschnider 0:688028485205 45
manuelschnider 0:688028485205 46 // pex.ToggleLeds(uintB_T aBitPattern); zum blinken
manuelschnider 0:688028485205 47
manuelschnider 0:688028485205 48
manuelschnider 0:688028485205 49
manuelschnider 0:688028485205 50 void ForwardUntilWall()
manuelschnider 0:688028485205 51 {
manuelschnider 0:688028485205 52 //motoren auf vorwärts
manuelschnider 0:688028485205 53
manuelschnider 0:688028485205 54 //warten bis irgendein Frontbutton pressed#
manuelschnider 0:688028485205 55 while(1)
manuelschnider 0:688028485205 56 {
manuelschnider 0:688028485205 57
manuelschnider 0:688028485205 58 if(ls4>600)
manuelschnider 0:688028485205 59 {
manuelschnider 0:688028485205 60 mL.SetPow(0); mR.SetPow(0);
manuelschnider 0:688028485205 61 //wait(100);
manuelschnider 0:688028485205 62 mL.SetPow(-0.3); mR.SetPow(-0.3);
manuelschnider 0:688028485205 63
manuelschnider 0:688028485205 64 //BlinkTask1();
manuelschnider 0:688028485205 65
manuelschnider 0:688028485205 66 }
manuelschnider 0:688028485205 67 break;
manuelschnider 0:688028485205 68 }
manuelschnider 0:688028485205 69 }
manuelschnider 0:688028485205 70
manuelschnider 0:688028485205 71 void BackwardUntilWall()
manuelschnider 0:688028485205 72 {
manuelschnider 0:688028485205 73 //motoren auf rückwärts
manuelschnider 0:688028485205 74
manuelschnider 0:688028485205 75 //warten bis irgendein BackButtonPressen
manuelschnider 0:688028485205 76 while(1)
manuelschnider 0:688028485205 77 {
manuelschnider 0:688028485205 78
manuelschnider 0:688028485205 79 if(ls1>600)
manuelschnider 0:688028485205 80 {
manuelschnider 0:688028485205 81 mL.SetPow(0); mR.SetPow(0);
manuelschnider 0:688028485205 82 //wait(100);
manuelschnider 0:688028485205 83 mL.SetPow(0.3); mR.SetPow(0.3);
manuelschnider 0:688028485205 84
manuelschnider 0:688028485205 85 //BlinkTask2();
manuelschnider 0:688028485205 86 }
manuelschnider 0:688028485205 87 break;
manuelschnider 0:688028485205 88 }
manuelschnider 0:688028485205 89 // while SChleife
manuelschnider 0:688028485205 90 // motoren aus
manuelschnider 0:688028485205 91 }
manuelschnider 0:688028485205 92
manuelschnider 0:688028485205 93
manuelschnider 0:688028485205 94
manuelschnider 0:688028485205 95 void BlinkTask1()
manuelschnider 0:688028485205 96 {
manuelschnider 0:688028485205 97 if( t1.read_ms()>25 ) { // 100ms sind abgelaufen
manuelschnider 0:688028485205 98 t1.reset();
manuelschnider 0:688028485205 99 pex.ToggleLeds(LED_FL1|LED_FL2);
manuelschnider 0:688028485205 100 }
manuelschnider 0:688028485205 101 }
manuelschnider 0:688028485205 102
manuelschnider 0:688028485205 103 void BlinkTask2()
manuelschnider 0:688028485205 104 {
manuelschnider 0:688028485205 105 if( t1.read_ms()>25 ) { // 100ms sind abgelaufen
manuelschnider 0:688028485205 106 t1.reset();
manuelschnider 0:688028485205 107 pex.ToggleLeds(LED_BL1|LED_BL2);
manuelschnider 0:688028485205 108 }
manuelschnider 0:688028485205 109 }
manuelschnider 0:688028485205 110
manuelschnider 0:688028485205 111
manuelschnider 0:688028485205 112
manuelschnider 0:688028485205 113
manuelschnider 0:688028485205 114
manuelschnider 0:688028485205 115
manuelschnider 0:688028485205 116
manuelschnider 0:688028485205 117
manuelschnider 0:688028485205 118
manuelschnider 0:688028485205 119