michael hollegha
/
LineSensTest_B16
LineSensTest for Bertl16
Fork of B16Test4 by
Bertl16.h@1:a2c68aba6d98, 2017-12-27 (annotated)
- Committer:
- hollegha3
- Date:
- Wed Dec 27 12:15:27 2017 +0000
- Revision:
- 1:a2c68aba6d98
- Parent:
- 0:e86913f987fa
V 1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hollegha3 | 0:e86913f987fa | 1 | #include "mbed.h" |
hollegha3 | 0:e86913f987fa | 2 | |
hollegha3 | 0:e86913f987fa | 3 | // main=1 LS=2 ENC=4 |
hollegha3 | 0:e86913f987fa | 4 | BusOut boardPow(P2_13, P2_5, P2_2); // B16/17 |
hollegha3 | 0:e86913f987fa | 5 | |
hollegha3 | 0:e86913f987fa | 6 | DigitalOut LedFL1(P1_10); // D1 |
hollegha3 | 0:e86913f987fa | 7 | DigitalOut LedFL2(P1_11); // D2 |
hollegha3 | 0:e86913f987fa | 8 | DigitalOut LedFR1(P1_12); // D4 |
hollegha3 | 0:e86913f987fa | 9 | DigitalOut LedFR2(P1_13); // D5 |
hollegha3 | 0:e86913f987fa | 10 | |
hollegha3 | 0:e86913f987fa | 11 | DigitalOut LedBL1(P1_14); // D6 |
hollegha3 | 0:e86913f987fa | 12 | DigitalOut LedBL2(P1_15); // D7 |
hollegha3 | 0:e86913f987fa | 13 | DigitalOut LedBR1(P1_16); // D8 |
hollegha3 | 0:e86913f987fa | 14 | DigitalOut LedBR2(P1_17); // D9 |
hollegha3 | 0:e86913f987fa | 15 | |
hollegha3 | 0:e86913f987fa | 16 | DigitalOut LedD10(P1_18); DigitalOut LedD11(P2_16); DigitalOut LedD12(P1_20); |
hollegha3 | 0:e86913f987fa | 17 | DigitalOut LedD13(P1_21); |
hollegha3 | 0:e86913f987fa | 18 | |
hollegha3 | 0:e86913f987fa | 19 | // Links / Rechts wenn man von hinten auf den Bertl draufschaut |
hollegha3 | 0:e86913f987fa | 20 | DigitalIn BtnBM(P1_26); //TA4 |
hollegha3 | 0:e86913f987fa | 21 | DigitalIn BtnBR(P1_28); //TA6 |
hollegha3 | 0:e86913f987fa | 22 | DigitalIn BtnBL(P1_27); //TA5 |
hollegha3 | 0:e86913f987fa | 23 | |
hollegha3 | 0:e86913f987fa | 24 | DigitalIn BtnFM(P1_23); //TA1 |
hollegha3 | 0:e86913f987fa | 25 | DigitalIn BtnFR(P1_24); //TA2 |
hollegha3 | 0:e86913f987fa | 26 | DigitalIn BtnFL(P1_25); //TA3 |
hollegha3 | 0:e86913f987fa | 27 | DigitalIn BtnFRR(P1_30); //TA7 |
hollegha3 | 0:e86913f987fa | 28 | DigitalIn BtnFLL(P1_31); //TA8 |
hollegha3 | 0:e86913f987fa | 29 | |
hollegha3 | 0:e86913f987fa | 30 | DigitalIn xx1(P2_8), xx2(P2_9); // the useless Encoder-Inputs |
hollegha3 | 0:e86913f987fa | 31 | |
hollegha3 | 0:e86913f987fa | 32 | |
hollegha3 | 0:e86913f987fa | 33 | int GetPin(PinName aName) |
hollegha3 | 0:e86913f987fa | 34 | { |
hollegha3 | 0:e86913f987fa | 35 | return (aName >> PIN_SHIFT) & 0x0000003F; |
hollegha3 | 0:e86913f987fa | 36 | } |
hollegha3 | 0:e86913f987fa | 37 | |
hollegha3 | 0:e86913f987fa | 38 | int GetPort(PinName aName) |
hollegha3 | 0:e86913f987fa | 39 | { |
hollegha3 | 0:e86913f987fa | 40 | return (aName >> PORT_SHIFT) & 0x0000003F; |
hollegha3 | 0:e86913f987fa | 41 | } |
hollegha3 | 0:e86913f987fa | 42 | |
hollegha3 | 0:e86913f987fa | 43 | |
hollegha3 | 0:e86913f987fa | 44 | class Motor { |
hollegha3 | 0:e86913f987fa | 45 | public: |
hollegha3 | 0:e86913f987fa | 46 | Motor(PinName pwm, PinName fwd, PinName rev); |
hollegha3 | 0:e86913f987fa | 47 | void SetBrake(int aOnOff); |
hollegha3 | 0:e86913f987fa | 48 | void SetPow(float aPow); |
hollegha3 | 0:e86913f987fa | 49 | void SetPow2(float aPow); |
hollegha3 | 0:e86913f987fa | 50 | protected: |
hollegha3 | 0:e86913f987fa | 51 | PwmOut _pwm; |
hollegha3 | 0:e86913f987fa | 52 | DigitalOut _fwd; |
hollegha3 | 0:e86913f987fa | 53 | DigitalOut _rev; |
hollegha3 | 0:e86913f987fa | 54 | int16_t _running; |
hollegha3 | 0:e86913f987fa | 55 | }; |
hollegha3 | 0:e86913f987fa | 56 | |
hollegha3 | 0:e86913f987fa | 57 | Motor mL(P1_19,P2_15,P2_14); Motor mR(P2_19,P2_20,P2_21); |
hollegha3 | 0:e86913f987fa | 58 | |
hollegha3 | 0:e86913f987fa | 59 | Motor::Motor(PinName pwm, PinName fwd, PinName rev) : |
hollegha3 | 0:e86913f987fa | 60 | _pwm(pwm), _fwd(fwd), _rev(rev) |
hollegha3 | 0:e86913f987fa | 61 | { |
hollegha3 | 0:e86913f987fa | 62 | _pwm.period(0.001); _pwm=0; |
hollegha3 | 0:e86913f987fa | 63 | _fwd=0; _rev=0; _running=0; |
hollegha3 | 0:e86913f987fa | 64 | } |
hollegha3 | 0:e86913f987fa | 65 | |
hollegha3 | 0:e86913f987fa | 66 | void Motor::SetBrake(int aOnOff) |
hollegha3 | 0:e86913f987fa | 67 | { |
hollegha3 | 0:e86913f987fa | 68 | _pwm=0; |
hollegha3 | 0:e86913f987fa | 69 | if( aOnOff ) |
hollegha3 | 0:e86913f987fa | 70 | { _fwd=0; _rev=0; } |
hollegha3 | 0:e86913f987fa | 71 | else |
hollegha3 | 0:e86913f987fa | 72 | { _fwd=1; _rev=1; } |
hollegha3 | 0:e86913f987fa | 73 | } |
hollegha3 | 0:e86913f987fa | 74 | |
hollegha3 | 0:e86913f987fa | 75 | void Motor::SetPow(float aPow) |
hollegha3 | 0:e86913f987fa | 76 | { |
hollegha3 | 0:e86913f987fa | 77 | if( aPow==0 ) { |
hollegha3 | 0:e86913f987fa | 78 | _pwm=0; _running=0; return; |
hollegha3 | 0:e86913f987fa | 79 | } |
hollegha3 | 0:e86913f987fa | 80 | if( aPow>=0.0 ) { |
hollegha3 | 0:e86913f987fa | 81 | _fwd=1; _rev=0; |
hollegha3 | 0:e86913f987fa | 82 | _pwm = aPow; |
hollegha3 | 0:e86913f987fa | 83 | } |
hollegha3 | 0:e86913f987fa | 84 | else { |
hollegha3 | 0:e86913f987fa | 85 | _fwd=0; _rev=1; |
hollegha3 | 0:e86913f987fa | 86 | _pwm = -aPow; |
hollegha3 | 0:e86913f987fa | 87 | } |
hollegha3 | 0:e86913f987fa | 88 | _running=1; |
hollegha3 | 0:e86913f987fa | 89 | } |
hollegha3 | 0:e86913f987fa | 90 | |
hollegha3 | 0:e86913f987fa | 91 | void Motor::SetPow2(float aPow) |
hollegha3 | 0:e86913f987fa | 92 | { |
hollegha3 | 0:e86913f987fa | 93 | float pow; |
hollegha3 | 0:e86913f987fa | 94 | if( aPow==0 ) { |
hollegha3 | 0:e86913f987fa | 95 | _pwm=0; _running=0; return; |
hollegha3 | 0:e86913f987fa | 96 | } |
hollegha3 | 0:e86913f987fa | 97 | if( aPow>=0.0 ) { |
hollegha3 | 0:e86913f987fa | 98 | _fwd=1; _rev=0; |
hollegha3 | 0:e86913f987fa | 99 | pow = aPow; |
hollegha3 | 0:e86913f987fa | 100 | } |
hollegha3 | 0:e86913f987fa | 101 | else { |
hollegha3 | 0:e86913f987fa | 102 | _fwd=0; _rev=1; |
hollegha3 | 0:e86913f987fa | 103 | pow = -aPow; |
hollegha3 | 0:e86913f987fa | 104 | } |
hollegha3 | 0:e86913f987fa | 105 | if( !_running && (pow<0.3) ) { |
hollegha3 | 0:e86913f987fa | 106 | _pwm = 0.3; |
hollegha3 | 0:e86913f987fa | 107 | wait_ms(20); // 50 |
hollegha3 | 0:e86913f987fa | 108 | } |
hollegha3 | 0:e86913f987fa | 109 | _pwm = pow; |
hollegha3 | 0:e86913f987fa | 110 | _running = 1; |
hollegha3 | 0:e86913f987fa | 111 | } |
hollegha3 | 0:e86913f987fa | 112 | |
hollegha3 | 0:e86913f987fa | 113 | |
hollegha3 | 0:e86913f987fa | 114 | void AllLedsOff() |
hollegha3 | 0:e86913f987fa | 115 | { |
hollegha3 | 0:e86913f987fa | 116 | LedFL1=1; |
hollegha3 | 0:e86913f987fa | 117 | LedFL2=LedFR1=LedFR2=LedBL1=LedBL2=LedBR1=LedBR2=1; |
hollegha3 | 0:e86913f987fa | 118 | LedD10=LedD11=LedD12=LedD13=1; |
hollegha3 | 0:e86913f987fa | 119 | } |
hollegha3 | 0:e86913f987fa | 120 | |
hollegha3 | 0:e86913f987fa | 121 | |
hollegha3 | 0:e86913f987fa | 122 | /* DigitalInHL public DigitalIn { |
hollegha3 | 0:e86913f987fa | 123 | public: |
hollegha3 | 0:e86913f987fa | 124 | DigitalInHL(PinName pin) : DigitalIn(pin) {} |
hollegha3 | 0:e86913f987fa | 125 | |
hollegha3 | 0:e86913f987fa | 126 | int MultiCheck(int aState=0) |
hollegha3 | 0:e86913f987fa | 127 | { |
hollegha3 | 0:e86913f987fa | 128 | int cnt=0; |
hollegha3 | 0:e86913f987fa | 129 | for(int i=1; i<=10; i++) |
hollegha3 | 0:e86913f987fa | 130 | { |
hollegha3 | 0:e86913f987fa | 131 | if( read()==aState ) |
hollegha3 | 0:e86913f987fa | 132 | cnt++; |
hollegha3 | 0:e86913f987fa | 133 | } |
hollegha3 | 0:e86913f987fa | 134 | if( cnt>=10 ) |
hollegha3 | 0:e86913f987fa | 135 | return 1; |
hollegha3 | 0:e86913f987fa | 136 | return 0; |
hollegha3 | 0:e86913f987fa | 137 | } |
hollegha3 | 0:e86913f987fa | 138 | }; */ |
hollegha3 | 0:e86913f987fa | 139 | |
hollegha3 | 0:e86913f987fa | 140 | |
hollegha3 | 1:a2c68aba6d98 | 141 | class AnalogInHL2 : public AnalogIn { |
hollegha3 | 1:a2c68aba6d98 | 142 | public: |
hollegha3 | 1:a2c68aba6d98 | 143 | AnalogInHL2(PinName pin) : AnalogIn(pin) {} |
hollegha3 | 1:a2c68aba6d98 | 144 | int Read() |
hollegha3 | 1:a2c68aba6d98 | 145 | { return read_u16()>>4; } |
hollegha3 | 1:a2c68aba6d98 | 146 | }; |
hollegha3 | 0:e86913f987fa | 147 | |
hollegha3 | 0:e86913f987fa | 148 | |
hollegha3 | 0:e86913f987fa | 149 | |
hollegha3 | 1:a2c68aba6d98 | 150 | |
hollegha3 | 1:a2c68aba6d98 | 151 |