SChuleEE 1
/
linienverfolgung
z
main.cpp@0:688028485205, 2016-06-14 (annotated)
- Committer:
- manuelschnider
- Date:
- Tue Jun 14 10:51:28 2016 +0000
- Revision:
- 0:688028485205
zz
Who changed what in which revision?
User | Revision | Line number | New 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 |