BertlTemplate_Linienfahren

Dependencies:   BertlLib mbed

Committer:
Wizo
Date:
Thu Nov 15 17:51:12 2018 +0000
Revision:
0:b341e50bf93f
BertlTemplate_Linienfahren

Who changed what in which revision?

UserRevisionLine numberNew 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