Christian Weiß
/
BertlTemplate_Linienfahren
BertlTemplate_Linienfahren
main.cpp@0:b341e50bf93f, 2018-11-15 (annotated)
- Committer:
- Wizo
- Date:
- Thu Nov 15 17:51:12 2018 +0000
- Revision:
- 0:b341e50bf93f
BertlTemplate_Linienfahren
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wizo | 0:b341e50bf93f | 1 | |
Wizo | 0:b341e50bf93f | 2 | #include "mbed.h" |
Wizo | 0:b341e50bf93f | 3 | #include "Serial_HL.h" |
Wizo | 0:b341e50bf93f | 4 | #include "Bertl14.h" |
Wizo | 0:b341e50bf93f | 5 | #include "BertlObjects.h" |
Wizo | 0:b341e50bf93f | 6 | |
Wizo | 0:b341e50bf93f | 7 | // main=2^0 LS ENC 2^2 |
Wizo | 0:b341e50bf93f | 8 | BusOut boardPow(p30, P1_6, P1_7); |
Wizo | 0:b341e50bf93f | 9 | |
Wizo | 0:b341e50bf93f | 10 | // ls5 nur beim Betrl15 |
Wizo | 0:b341e50bf93f | 11 | // AnalogInHL ls1(p18), ls2(p16), ls3(p19), ls4(p17); // B14 |
Wizo | 0:b341e50bf93f | 12 | |
Wizo | 0:b341e50bf93f | 13 | AnalogInHL ls1(p18), ls2(p16), ls3(p20), ls4(p19), ls5(p17); // B15 |
Wizo | 0:b341e50bf93f | 14 | |
Wizo | 0:b341e50bf93f | 15 | int main(void) |
Wizo | 0:b341e50bf93f | 16 | { |
Wizo | 0:b341e50bf93f | 17 | boardPow=3; wait_ms(10); |
Wizo | 0:b341e50bf93f | 18 | InitBertl(); |
Wizo | 0:b341e50bf93f | 19 | pex.useISR=0; leds=9; |
Wizo | 0:b341e50bf93f | 20 | pex.ClearLeds(); |
Wizo | 0:b341e50bf93f | 21 | |
Wizo | 0:b341e50bf93f | 22 | bool rechts = 0;//flag, welche kurve zuletzt dran war |
Wizo | 0:b341e50bf93f | 23 | bool links = 0; |
Wizo | 0:b341e50bf93f | 24 | |
Wizo | 0:b341e50bf93f | 25 | while(1) |
Wizo | 0:b341e50bf93f | 26 | { |
Wizo | 0:b341e50bf93f | 27 | wait_ms(10); |
Wizo | 0:b341e50bf93f | 28 | |
Wizo | 0:b341e50bf93f | 29 | if(ls1.Read()>600) |
Wizo | 0:b341e50bf93f | 30 | { |
Wizo | 0:b341e50bf93f | 31 | mL.SetPow(0.3); mR.SetPow(0.1);//rechtskurve |
Wizo | 0:b341e50bf93f | 32 | rechts = 1; |
Wizo | 0:b341e50bf93f | 33 | } |
Wizo | 0:b341e50bf93f | 34 | else if(ls4.Read()>600) |
Wizo | 0:b341e50bf93f | 35 | { |
Wizo | 0:b341e50bf93f | 36 | mL.SetPow(0.1); mR.SetPow(0.3);//linkskurve |
Wizo | 0:b341e50bf93f | 37 | links = 1; |
Wizo | 0:b341e50bf93f | 38 | } |
Wizo | 0:b341e50bf93f | 39 | else if(ls1.Read()<200 && ls4.Read()<200 && ls2.Read()>200 && ls3.Read()>200) |
Wizo | 0:b341e50bf93f | 40 | { |
Wizo | 0:b341e50bf93f | 41 | mL.SetPow(0.3); mR.SetPow(0.3);//geradeaus |
Wizo | 0:b341e50bf93f | 42 | rechts = 0; |
Wizo | 0:b341e50bf93f | 43 | links = 0; |
Wizo | 0:b341e50bf93f | 44 | } |
Wizo | 0:b341e50bf93f | 45 | else if(ls1.Read()<200 && ls4.Read()<200 && ls2.Read()<200 && ls3.Read()<200 && ls5.Read()<200)//wenn alle unter 200, je nachdem was die letzte kurve war --> andere richtung |
Wizo | 0:b341e50bf93f | 46 | { |
Wizo | 0:b341e50bf93f | 47 | if(rechts == 1) |
Wizo | 0:b341e50bf93f | 48 | { |
Wizo | 0:b341e50bf93f | 49 | mL.SetPow(0.3); mR.SetPow(0.1);//rechtskurve |
Wizo | 0:b341e50bf93f | 50 | links = 0;//zurücksetzen |
Wizo | 0:b341e50bf93f | 51 | } |
Wizo | 0:b341e50bf93f | 52 | else if (links == 1) |
Wizo | 0:b341e50bf93f | 53 | { |
Wizo | 0:b341e50bf93f | 54 | mL.SetPow(0.1); mR.SetPow(0.3);//linkskurve |
Wizo | 0:b341e50bf93f | 55 | rechts = 0; |
Wizo | 0:b341e50bf93f | 56 | } |
Wizo | 0:b341e50bf93f | 57 | else |
Wizo | 0:b341e50bf93f | 58 | { |
Wizo | 0:b341e50bf93f | 59 | mL.SetPow(0.3); mR.SetPow(0.3);//geradeaus |
Wizo | 0:b341e50bf93f | 60 | } |
Wizo | 0:b341e50bf93f | 61 | } |
Wizo | 0:b341e50bf93f | 62 | } |
Wizo | 0:b341e50bf93f | 63 | return 1; |
Wizo | 0:b341e50bf93f | 64 | } |
Wizo | 0:b341e50bf93f | 65 | |
Wizo | 0:b341e50bf93f | 66 |