BertlTemplate4

Dependencies:   BertlLib mbed

Committer:
Wizo
Date:
Thu Nov 15 17:50:36 2018 +0000
Revision:
0:7b2a14b523de
BertlTemplate4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wizo 0:7b2a14b523de 1 #include "mbed.h"
Wizo 0:7b2a14b523de 2 #include "Serial_HL.h"
Wizo 0:7b2a14b523de 3 #include "Bertl14.h"
Wizo 0:7b2a14b523de 4 #include "BertlObjects.h"
Wizo 0:7b2a14b523de 5
Wizo 0:7b2a14b523de 6 // main=2^0 LS ENC 2^2
Wizo 0:7b2a14b523de 7 BusOut boardPow(p30, P1_6, P1_7);
Wizo 0:7b2a14b523de 8
Wizo 0:7b2a14b523de 9 // ls5 nur beim Betrl15
Wizo 0:7b2a14b523de 10 // AnalogInHL ls1(p18), ls2(p16), ls3(p19), ls4(p17); // B14
Wizo 0:7b2a14b523de 11
Wizo 0:7b2a14b523de 12 //AnalogInHL ls1(p18), ls2(p16), ls3(p20), ls4(p19), ls5(p17); // B15
Wizo 0:7b2a14b523de 13 //void ButonBlinker();
Wizo 0:7b2a14b523de 14
Wizo 0:7b2a14b523de 15 //void MotorTest ();
Wizo 0:7b2a14b523de 16
Wizo 0:7b2a14b523de 17 //void BackW();
Wizo 0:7b2a14b523de 18 void ForW();
Wizo 0:7b2a14b523de 19 void Left();
Wizo 0:7b2a14b523de 20 void Right();
Wizo 0:7b2a14b523de 21 void BlinkTask();
Wizo 0:7b2a14b523de 22 int direction = 0; //0= zurück, 1 = vorwärts
Wizo 0:7b2a14b523de 23 Timer t1;
Wizo 0:7b2a14b523de 24
Wizo 0:7b2a14b523de 25
Wizo 0:7b2a14b523de 26
Wizo 0:7b2a14b523de 27
Wizo 0:7b2a14b523de 28
Wizo 0:7b2a14b523de 29 int main(void)
Wizo 0:7b2a14b523de 30 {
Wizo 0:7b2a14b523de 31 boardPow = 1; wait_ms(10);
Wizo 0:7b2a14b523de 32 InitBertl();
Wizo 0:7b2a14b523de 33 pex.useISR = 0; leds = 9;
Wizo 0:7b2a14b523de 34 pex.ClearLeds();
Wizo 0:7b2a14b523de 35 t1.start();
Wizo 0:7b2a14b523de 36 pex.WaitUntilButtonPressed();
Wizo 0:7b2a14b523de 37 while (1)
Wizo 0:7b2a14b523de 38 {
Wizo 0:7b2a14b523de 39 //ButonBlinker();
Wizo 0:7b2a14b523de 40 //MotorTest ();
Wizo 0:7b2a14b523de 41 //BackW();
Wizo 0:7b2a14b523de 42 //wait_ms(1000);
Wizo 0:7b2a14b523de 43 ForW();
Wizo 0:7b2a14b523de 44 wait_ms(1000);
Wizo 0:7b2a14b523de 45 }
Wizo 0:7b2a14b523de 46
Wizo 0:7b2a14b523de 47 return 1;
Wizo 0:7b2a14b523de 48 }
Wizo 0:7b2a14b523de 49 /*
Wizo 0:7b2a14b523de 50 void ButonBlinker()
Wizo 0:7b2a14b523de 51 {
Wizo 0:7b2a14b523de 52 pex.ReadButtons();
Wizo 0:7b2a14b523de 53
Wizo 0:7b2a14b523de 54 if (pex.IsButton(BTN_FLL))
Wizo 0:7b2a14b523de 55 {
Wizo 0:7b2a14b523de 56 pex.SetLeds(LED_FL1|LED_FL2);
Wizo 0:7b2a14b523de 57 }
Wizo 0:7b2a14b523de 58
Wizo 0:7b2a14b523de 59 if (pex.IsButton(BTN_FRR))
Wizo 0:7b2a14b523de 60 {
Wizo 0:7b2a14b523de 61 pex.SetLeds(LED_FR1|LED_FR2);
Wizo 0:7b2a14b523de 62 }
Wizo 0:7b2a14b523de 63 wait_ms(100);
Wizo 0:7b2a14b523de 64 pex.ClearLeds();
Wizo 0:7b2a14b523de 65 wait_ms(100);
Wizo 0:7b2a14b523de 66 }
Wizo 0:7b2a14b523de 67 */
Wizo 0:7b2a14b523de 68
Wizo 0:7b2a14b523de 69 /*
Wizo 0:7b2a14b523de 70 void MotorTest ()
Wizo 0:7b2a14b523de 71 {
Wizo 0:7b2a14b523de 72 if (pex.IsButton(BTN_FRR||BTN_FLL))
Wizo 0:7b2a14b523de 73 {
Wizo 0:7b2a14b523de 74 mL.SetPow(-0.2);
Wizo 0:7b2a14b523de 75 mR.SetPow(-0.2);
Wizo 0:7b2a14b523de 76 }
Wizo 0:7b2a14b523de 77
Wizo 0:7b2a14b523de 78
Wizo 0:7b2a14b523de 79 else if (pex.IsButton(BTN_BR||BTN_BL))
Wizo 0:7b2a14b523de 80 {
Wizo 0:7b2a14b523de 81 mL.SetPow(0.2);
Wizo 0:7b2a14b523de 82 mR.SetPow(0.2);
Wizo 0:7b2a14b523de 83 }
Wizo 0:7b2a14b523de 84
Wizo 0:7b2a14b523de 85 //mL.SetPow(0.2);
Wizo 0:7b2a14b523de 86 //mR.SetPow(0.2);
Wizo 0:7b2a14b523de 87
Wizo 0:7b2a14b523de 88 //wait_ms(2000);
Wizo 0:7b2a14b523de 89
Wizo 0:7b2a14b523de 90 //mL.SetPow(-0.2);
Wizo 0:7b2a14b523de 91 //mR.SetPow(-0.2);
Wizo 0:7b2a14b523de 92
Wizo 0:7b2a14b523de 93 //wait_ms(2000);
Wizo 0:7b2a14b523de 94
Wizo 0:7b2a14b523de 95
Wizo 0:7b2a14b523de 96
Wizo 0:7b2a14b523de 97
Wizo 0:7b2a14b523de 98 }
Wizo 0:7b2a14b523de 99 */
Wizo 0:7b2a14b523de 100
Wizo 0:7b2a14b523de 101 //void BackW()
Wizo 0:7b2a14b523de 102 //{
Wizo 0:7b2a14b523de 103 // pex.ClearLeds();
Wizo 0:7b2a14b523de 104 // mL.SetPow(0.3);
Wizo 0:7b2a14b523de 105 // mR.SetPow(0.3);
Wizo 0:7b2a14b523de 106 // direction = 0;
Wizo 0:7b2a14b523de 107 //
Wizo 0:7b2a14b523de 108 // // pex.SetLeds(LED_BL1 | LED_BL2);
Wizo 0:7b2a14b523de 109 // // pex.SetLeds(LED_BR1 | LED_BR2);
Wizo 0:7b2a14b523de 110 //
Wizo 0:7b2a14b523de 111 // while (1)
Wizo 0:7b2a14b523de 112 // {
Wizo 0:7b2a14b523de 113 // pex.ReadButtons();
Wizo 0:7b2a14b523de 114 // BlinkTask();
Wizo 0:7b2a14b523de 115 //
Wizo 0:7b2a14b523de 116 // if (pex.IsAnyBackButton())
Wizo 0:7b2a14b523de 117 // {
Wizo 0:7b2a14b523de 118 // break;
Wizo 0:7b2a14b523de 119 // }
Wizo 0:7b2a14b523de 120 //
Wizo 0:7b2a14b523de 121 // }
Wizo 0:7b2a14b523de 122 // mL.SetPow(0);
Wizo 0:7b2a14b523de 123 // mR.SetPow(0);
Wizo 0:7b2a14b523de 124 //
Wizo 0:7b2a14b523de 125 //
Wizo 0:7b2a14b523de 126 //}
Wizo 0:7b2a14b523de 127
Wizo 0:7b2a14b523de 128
Wizo 0:7b2a14b523de 129 void ForW()
Wizo 0:7b2a14b523de 130 {
Wizo 0:7b2a14b523de 131 pex.ClearLeds();
Wizo 0:7b2a14b523de 132 mL.SetPow(-0.3);
Wizo 0:7b2a14b523de 133 mR.SetPow(-0.3);
Wizo 0:7b2a14b523de 134 direction = 1;
Wizo 0:7b2a14b523de 135
Wizo 0:7b2a14b523de 136 // pex.SetLeds(LED_FL1 | LED_FL2);
Wizo 0:7b2a14b523de 137 // pex.SetLeds(LED_FR1 | LED_FR2);
Wizo 0:7b2a14b523de 138
Wizo 0:7b2a14b523de 139 while (1)
Wizo 0:7b2a14b523de 140 {
Wizo 0:7b2a14b523de 141 pex.ReadButtons();
Wizo 0:7b2a14b523de 142 BlinkTask();
Wizo 0:7b2a14b523de 143
Wizo 0:7b2a14b523de 144 if (pex.IsRightFrontButton())
Wizo 0:7b2a14b523de 145 {
Wizo 0:7b2a14b523de 146 mL.SetPow(-0.3);
Wizo 0:7b2a14b523de 147 mR.SetPow(-0.5);
Wizo 0:7b2a14b523de 148 //break;
Wizo 0:7b2a14b523de 149 }
Wizo 0:7b2a14b523de 150 else if (pex.IsLeftFrontButton())
Wizo 0:7b2a14b523de 151 {
Wizo 0:7b2a14b523de 152 mL.SetPow(-0.5);
Wizo 0:7b2a14b523de 153 mR.SetPow(-0.3);
Wizo 0:7b2a14b523de 154 }
Wizo 0:7b2a14b523de 155 else if (pex.IsMiddleFrontButton())
Wizo 0:7b2a14b523de 156 {
Wizo 0:7b2a14b523de 157 mL.SetPow(-0.5);
Wizo 0:7b2a14b523de 158 mR.SetPow(-0.5);
Wizo 0:7b2a14b523de 159 }
Wizo 0:7b2a14b523de 160
Wizo 0:7b2a14b523de 161 }
Wizo 0:7b2a14b523de 162 mL.SetPow(0);
Wizo 0:7b2a14b523de 163 mR.SetPow(0);
Wizo 0:7b2a14b523de 164
Wizo 0:7b2a14b523de 165 }
Wizo 0:7b2a14b523de 166
Wizo 0:7b2a14b523de 167 /*void Right()
Wizo 0:7b2a14b523de 168 {
Wizo 0:7b2a14b523de 169 pex.ClearLeds();
Wizo 0:7b2a14b523de 170 mL.SetPow(-0.3);
Wizo 0:7b2a14b523de 171 mR.SetPow(-0.3);
Wizo 0:7b2a14b523de 172 direction = 1;
Wizo 0:7b2a14b523de 173
Wizo 0:7b2a14b523de 174 // pex.SetLeds(LED_FL1 | LED_FL2);
Wizo 0:7b2a14b523de 175 // pex.SetLeds(LED_FR1 | LED_FR2);
Wizo 0:7b2a14b523de 176
Wizo 0:7b2a14b523de 177 while (1)
Wizo 0:7b2a14b523de 178 {
Wizo 0:7b2a14b523de 179 pex.ReadButtons();
Wizo 0:7b2a14b523de 180 BlinkTask();
Wizo 0:7b2a14b523de 181
Wizo 0:7b2a14b523de 182 if (pex.IsAnyFrontButton())
Wizo 0:7b2a14b523de 183 {
Wizo 0:7b2a14b523de 184 break;
Wizo 0:7b2a14b523de 185 }
Wizo 0:7b2a14b523de 186
Wizo 0:7b2a14b523de 187 }
Wizo 0:7b2a14b523de 188 mL.SetPow(0);
Wizo 0:7b2a14b523de 189 mR.SetPow(0);
Wizo 0:7b2a14b523de 190
Wizo 0:7b2a14b523de 191 }*/
Wizo 0:7b2a14b523de 192
Wizo 0:7b2a14b523de 193 void Left()
Wizo 0:7b2a14b523de 194 {
Wizo 0:7b2a14b523de 195 pex.ClearLeds();
Wizo 0:7b2a14b523de 196 mL.SetPow(-0.3);
Wizo 0:7b2a14b523de 197 mR.SetPow(-0.3);
Wizo 0:7b2a14b523de 198 direction = 1;
Wizo 0:7b2a14b523de 199
Wizo 0:7b2a14b523de 200 // pex.SetLeds(LED_FL1 | LED_FL2);
Wizo 0:7b2a14b523de 201 // pex.SetLeds(LED_FR1 | LED_FR2);
Wizo 0:7b2a14b523de 202
Wizo 0:7b2a14b523de 203 while (1)
Wizo 0:7b2a14b523de 204 {
Wizo 0:7b2a14b523de 205 pex.ReadButtons();
Wizo 0:7b2a14b523de 206 BlinkTask();
Wizo 0:7b2a14b523de 207
Wizo 0:7b2a14b523de 208 if (pex.IsAnyFrontButton())
Wizo 0:7b2a14b523de 209 {
Wizo 0:7b2a14b523de 210 break;
Wizo 0:7b2a14b523de 211 }
Wizo 0:7b2a14b523de 212
Wizo 0:7b2a14b523de 213 }
Wizo 0:7b2a14b523de 214 mL.SetPow(0);
Wizo 0:7b2a14b523de 215 mR.SetPow(0);
Wizo 0:7b2a14b523de 216
Wizo 0:7b2a14b523de 217 }
Wizo 0:7b2a14b523de 218
Wizo 0:7b2a14b523de 219 void BlinkTask()
Wizo 0:7b2a14b523de 220 {
Wizo 0:7b2a14b523de 221 if (t1.read_ms()>100) // alle 100ms = 10Hz
Wizo 0:7b2a14b523de 222 {
Wizo 0:7b2a14b523de 223 t1.reset(); // timer neu starten
Wizo 0:7b2a14b523de 224 if (direction == 0)
Wizo 0:7b2a14b523de 225 {
Wizo 0:7b2a14b523de 226 pex.ToggleLeds(LED_BL1 | LED_BL2);
Wizo 0:7b2a14b523de 227 pex.ToggleLeds(LED_BR1 | LED_BR2);
Wizo 0:7b2a14b523de 228 }
Wizo 0:7b2a14b523de 229 else
Wizo 0:7b2a14b523de 230 {
Wizo 0:7b2a14b523de 231 pex.ToggleLeds(LED_FL1 | LED_FL2);
Wizo 0:7b2a14b523de 232 pex.ToggleLeds(LED_FR1 | LED_FR2);
Wizo 0:7b2a14b523de 233 }
Wizo 0:7b2a14b523de 234 }
Wizo 0:7b2a14b523de 235 }