LineSensTest for Bertl16

Dependencies:   mbed

Fork of B16Test4 by michael hollegha

Committer:
hollegha3
Date:
Wed Sep 26 13:51:22 2018 +0000
Revision:
2:fffc57eb649f
Parent:
1:a2c68aba6d98
xx17

Who changed what in which revision?

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