Main Code

Dependencies:   PinDetect Ulrasonic mbed-rtos mbed WTV020SD_Sound_Breakout_Library

Fork of MC by Robot Bachelor

Committer:
benrammok
Date:
Thu Sep 22 13:48:34 2016 +0000
Revision:
36:3011c70a5c81
Parent:
35:64ed42e6f9a4
Child:
37:22ce2b4040f7
Lagt til WTV020M01 Sound Board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rlanghbv 0:bd78e433db61 1 #include "mbed.h"
mjhaugsdal 1:a3287196a9b3 2 #include "rtos.h"
mjhaugsdal 23:ad08a8eabc24 3 #include "PinDetect.h"
benrammok 36:3011c70a5c81 4 #include "WTV020M01.h"
azadmehr 33:6f500188e36d 5
azadmehr 32:5163db06f6cc 6 #include "ultrasonic.h"
rlanghbv 0:bd78e433db61 7
benrammok 35:64ed42e6f9a4 8 //Needs to be define to be able to read from the Ultrasonic sensor
benrammok 35:64ed42e6f9a4 9 void dist(int);
benrammok 35:64ed42e6f9a4 10 ultrasonic mu(A2, A3, .1, 1, &dist); //Set the trigger pin to D8 and the echo pin to D9
benrammok 35:64ed42e6f9a4 11 //have updates every .1 seconds and a timeout after 1
benrammok 35:64ed42e6f9a4 12 //second, and call dist when the distance changes
benrammok 35:64ed42e6f9a4 13
rlanghbv 2:25bcc26f7a5b 14 Serial pc(USBTX, USBRX); // tx, rx
benrammok 36:3011c70a5c81 15 WTV020M01 sndBoard(PB_13, PB_14, PB_15, PB_1, NC); // NUCLEO F334R8
benrammok 36:3011c70a5c81 16 //WTV020M01 sndBoard(PG_1, PF_9, PF_7, PF_8, NC); // Soundboard - NUCLEO F746ZG
azadmehr 31:358d4c032d76 17 //MidMagnetSensors
azadmehr 31:358d4c032d76 18 PinDetect pb3(D10);
azadmehr 31:358d4c032d76 19 PinDetect pb4(D11);
mjhaugsdal 25:321b970eb3ff 20
azadmehr 31:358d4c032d76 21 //BottomMagnetSensors
azadmehr 31:358d4c032d76 22 PinDetect pb1(D12);
azadmehr 31:358d4c032d76 23 PinDetect pb2(D13);
mjhaugsdal 25:321b970eb3ff 24
azadmehr 31:358d4c032d76 25 //TopMagnetSensors
azadmehr 31:358d4c032d76 26 PinDetect pb5(D8);
azadmehr 31:358d4c032d76 27 PinDetect pb6(D9);
azadmehr 31:358d4c032d76 28
azadmehr 31:358d4c032d76 29
rlanghbv 0:bd78e433db61 30
mjhaugsdal 1:a3287196a9b3 31 //Analog Pins
azadmehr 31:358d4c032d76 32 //Bottomengine
mjhaugsdal 5:fdc7a779d525 33 DigitalOut IN1(A0);
mjhaugsdal 5:fdc7a779d525 34 DigitalOut IN2(A1);
mjhaugsdal 5:fdc7a779d525 35 DigitalOut IN3(A2);
mjhaugsdal 5:fdc7a779d525 36 DigitalOut IN4(A3);
azadmehr 31:358d4c032d76 37 //SecondEngine
azadmehr 31:358d4c032d76 38 DigitalOut IN5(D2);
azadmehr 31:358d4c032d76 39 DigitalOut IN6(D3);
azadmehr 31:358d4c032d76 40 DigitalOut IN7(A4);
azadmehr 31:358d4c032d76 41 DigitalOut IN8(A5);
azadmehr 31:358d4c032d76 42 //TopEngine
azadmehr 31:358d4c032d76 43 DigitalOut IN9(D4);
azadmehr 31:358d4c032d76 44 DigitalOut IN10(D5);
azadmehr 31:358d4c032d76 45 DigitalOut IN11(D6);
azadmehr 31:358d4c032d76 46 DigitalOut IN12(D7);
mjhaugsdal 5:fdc7a779d525 47
mjhaugsdal 28:dac262b7ab32 48 //User button
mjhaugsdal 28:dac262b7ab32 49 DigitalIn SW(USER_BUTTON);
mjhaugsdal 28:dac262b7ab32 50
rlanghbv 0:bd78e433db61 51
mjhaugsdal 30:fac5b5624fe3 52 static int speed = 1000;
mjhaugsdal 30:fac5b5624fe3 53
mjhaugsdal 3:15be78948724 54 static char m_cmd = 'x';
mjhaugsdal 27:35c962e8e95b 55 static char cmd;
mjhaugsdal 23:ad08a8eabc24 56 static bool e1 = true;
mjhaugsdal 23:ad08a8eabc24 57 static bool e2 = true;
mjhaugsdal 23:ad08a8eabc24 58 static bool e3 = true;
mjhaugsdal 30:fac5b5624fe3 59 static int i1 = 0;
mjhaugsdal 30:fac5b5624fe3 60 static int i2 = 0;
mjhaugsdal 30:fac5b5624fe3 61 static int i3 = 0;
rlanghbv 0:bd78e433db61 62
mjhaugsdal 24:24c91a6ae6ba 63 static int steps1 = 0;
mjhaugsdal 24:24c91a6ae6ba 64 static int steps2 = 0;
mjhaugsdal 24:24c91a6ae6ba 65 static int steps3 = 0;
mjhaugsdal 24:24c91a6ae6ba 66
mjhaugsdal 24:24c91a6ae6ba 67
benrammok 35:64ed42e6f9a4 68 //Distance stored from sensor
benrammok 35:64ed42e6f9a4 69 static int sDistance = 0;
benrammok 36:3011c70a5c81 70 //Delayed distance to compare with first meassurement
benrammok 36:3011c70a5c81 71 static int dDistance = 0;
benrammok 36:3011c70a5c81 72 static bool isPlaying = false;
azadmehr 32:5163db06f6cc 73
azadmehr 32:5163db06f6cc 74
azadmehr 32:5163db06f6cc 75
mjhaugsdal 27:35c962e8e95b 76
mjhaugsdal 27:35c962e8e95b 77 void step2Left3Right()
mjhaugsdal 27:35c962e8e95b 78 {
mjhaugsdal 27:35c962e8e95b 79 //engine 2
mjhaugsdal 27:35c962e8e95b 80 IN5=1;
mjhaugsdal 27:35c962e8e95b 81 IN6=0;
mjhaugsdal 27:35c962e8e95b 82 IN7=0;
mjhaugsdal 27:35c962e8e95b 83 IN8=1;
mjhaugsdal 27:35c962e8e95b 84 //engine 3
mjhaugsdal 27:35c962e8e95b 85 IN9=0;
mjhaugsdal 27:35c962e8e95b 86 IN10=1;
mjhaugsdal 27:35c962e8e95b 87 IN11=0;
mjhaugsdal 27:35c962e8e95b 88 IN12=1;
mjhaugsdal 27:35c962e8e95b 89
mjhaugsdal 27:35c962e8e95b 90 wait_us(speed);
mjhaugsdal 27:35c962e8e95b 91 IN5=1;
mjhaugsdal 27:35c962e8e95b 92 IN6=0;
mjhaugsdal 27:35c962e8e95b 93 IN7=1;
mjhaugsdal 27:35c962e8e95b 94 IN8=0;
mjhaugsdal 27:35c962e8e95b 95 IN9=0;
mjhaugsdal 27:35c962e8e95b 96 IN10=1;
mjhaugsdal 27:35c962e8e95b 97 IN11=1;
mjhaugsdal 27:35c962e8e95b 98 IN12=0;
mjhaugsdal 27:35c962e8e95b 99 wait_us(speed);
mjhaugsdal 27:35c962e8e95b 100 IN5=0;
mjhaugsdal 27:35c962e8e95b 101 IN6=1;
mjhaugsdal 27:35c962e8e95b 102 IN7=1;
mjhaugsdal 27:35c962e8e95b 103 IN8=0;
mjhaugsdal 27:35c962e8e95b 104 IN9=1;
mjhaugsdal 27:35c962e8e95b 105 IN10=0;
mjhaugsdal 27:35c962e8e95b 106 IN11=1;
mjhaugsdal 27:35c962e8e95b 107 IN12=0;
mjhaugsdal 27:35c962e8e95b 108 wait_us(speed);
mjhaugsdal 27:35c962e8e95b 109 IN5=0;
mjhaugsdal 27:35c962e8e95b 110 IN6=1;
mjhaugsdal 27:35c962e8e95b 111 IN7=0;
mjhaugsdal 27:35c962e8e95b 112 IN8=1;
mjhaugsdal 27:35c962e8e95b 113 IN9=1;
mjhaugsdal 27:35c962e8e95b 114 IN10=0;
mjhaugsdal 27:35c962e8e95b 115 IN11=0;
mjhaugsdal 27:35c962e8e95b 116 IN12=1;
mjhaugsdal 27:35c962e8e95b 117 wait_us(speed);
mjhaugsdal 27:35c962e8e95b 118 }
mjhaugsdal 27:35c962e8e95b 119
mjhaugsdal 17:ff0021c4dcdc 120 void stepAllRight()
rlanghbv 0:bd78e433db61 121 {
mjhaugsdal 6:ac5d277bd497 122 //engine 1
rlanghbv 0:bd78e433db61 123 IN1=0;
rlanghbv 0:bd78e433db61 124 IN2=1;
rlanghbv 0:bd78e433db61 125 IN3=0;
rlanghbv 0:bd78e433db61 126 IN4=1;
mjhaugsdal 6:ac5d277bd497 127 //engine 2
mjhaugsdal 6:ac5d277bd497 128 IN5=0;
mjhaugsdal 6:ac5d277bd497 129 IN6=1;
mjhaugsdal 6:ac5d277bd497 130 IN7=0;
mjhaugsdal 6:ac5d277bd497 131 IN8=1;
mjhaugsdal 17:ff0021c4dcdc 132 //engine 3
mjhaugsdal 17:ff0021c4dcdc 133 IN9=0;
mjhaugsdal 17:ff0021c4dcdc 134 IN10=1;
mjhaugsdal 17:ff0021c4dcdc 135 IN11=0;
mjhaugsdal 17:ff0021c4dcdc 136 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 137 wait_us(speed); //legg som global variabel "fart"
mjhaugsdal 6:ac5d277bd497 138 //engine 1
rlanghbv 0:bd78e433db61 139 IN1=0;
rlanghbv 0:bd78e433db61 140 IN2=1;
rlanghbv 0:bd78e433db61 141 IN3=1;
rlanghbv 0:bd78e433db61 142 IN4=0;
mjhaugsdal 6:ac5d277bd497 143 //engine 2
mjhaugsdal 6:ac5d277bd497 144 IN5=0;
mjhaugsdal 6:ac5d277bd497 145 IN6=1;
mjhaugsdal 6:ac5d277bd497 146 IN7=1;
mjhaugsdal 6:ac5d277bd497 147 IN8=0;
mjhaugsdal 17:ff0021c4dcdc 148 //engine 3
mjhaugsdal 17:ff0021c4dcdc 149 IN9=0;
mjhaugsdal 17:ff0021c4dcdc 150 IN10=1;
mjhaugsdal 17:ff0021c4dcdc 151 IN11=1;
mjhaugsdal 17:ff0021c4dcdc 152 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 153 wait_us(speed);
mjhaugsdal 6:ac5d277bd497 154 //engine 1
rlanghbv 0:bd78e433db61 155 IN1=1;
rlanghbv 0:bd78e433db61 156 IN2=0;
rlanghbv 0:bd78e433db61 157 IN3=1;
rlanghbv 0:bd78e433db61 158 IN4=0;
mjhaugsdal 6:ac5d277bd497 159 //engine 2
mjhaugsdal 6:ac5d277bd497 160 IN5=1;
mjhaugsdal 6:ac5d277bd497 161 IN6=0;
mjhaugsdal 6:ac5d277bd497 162 IN7=1;
mjhaugsdal 6:ac5d277bd497 163 IN8=0;
mjhaugsdal 17:ff0021c4dcdc 164 //engine 3
mjhaugsdal 17:ff0021c4dcdc 165 IN9=1;
mjhaugsdal 17:ff0021c4dcdc 166 IN10=0;
mjhaugsdal 17:ff0021c4dcdc 167 IN11=1;
mjhaugsdal 17:ff0021c4dcdc 168 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 169 wait_us(speed);
mjhaugsdal 6:ac5d277bd497 170 //engine 1
rlanghbv 0:bd78e433db61 171 IN1=1;
rlanghbv 0:bd78e433db61 172 IN2=0;
rlanghbv 0:bd78e433db61 173 IN3=0;
rlanghbv 0:bd78e433db61 174 IN4=1;
mjhaugsdal 6:ac5d277bd497 175 //engine 2
mjhaugsdal 6:ac5d277bd497 176 IN5=1;
mjhaugsdal 6:ac5d277bd497 177 IN6=0;
mjhaugsdal 6:ac5d277bd497 178 IN7=0;
mjhaugsdal 6:ac5d277bd497 179 IN8=1;
mjhaugsdal 17:ff0021c4dcdc 180 //engine 3
mjhaugsdal 17:ff0021c4dcdc 181 IN9=1;
mjhaugsdal 17:ff0021c4dcdc 182 IN10=0;
mjhaugsdal 17:ff0021c4dcdc 183 IN11=0;
mjhaugsdal 17:ff0021c4dcdc 184 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 185 wait_us(speed);
rlanghbv 0:bd78e433db61 186 }
mjhaugsdal 17:ff0021c4dcdc 187 void stepAllLeft()
rlanghbv 0:bd78e433db61 188 {
mjhaugsdal 6:ac5d277bd497 189 //engine 1
rlanghbv 0:bd78e433db61 190 IN1=1;
rlanghbv 0:bd78e433db61 191 IN2=0;
rlanghbv 0:bd78e433db61 192 IN3=0;
rlanghbv 0:bd78e433db61 193 IN4=1;
mjhaugsdal 6:ac5d277bd497 194 //engine 2
mjhaugsdal 6:ac5d277bd497 195 IN5=1;
mjhaugsdal 6:ac5d277bd497 196 IN6=0;
mjhaugsdal 6:ac5d277bd497 197 IN7=0;
mjhaugsdal 6:ac5d277bd497 198 IN8=1;
mjhaugsdal 17:ff0021c4dcdc 199 //engine 3
mjhaugsdal 17:ff0021c4dcdc 200 IN9=1;
mjhaugsdal 17:ff0021c4dcdc 201 IN10=0;
mjhaugsdal 17:ff0021c4dcdc 202 IN11=0;
mjhaugsdal 17:ff0021c4dcdc 203 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 204 wait_us(speed);
mjhaugsdal 6:ac5d277bd497 205 //engine 1
rlanghbv 0:bd78e433db61 206 IN1=1;
rlanghbv 0:bd78e433db61 207 IN2=0;
rlanghbv 0:bd78e433db61 208 IN3=1;
rlanghbv 0:bd78e433db61 209 IN4=0;
mjhaugsdal 6:ac5d277bd497 210 //engine 2
mjhaugsdal 6:ac5d277bd497 211 IN5=1;
mjhaugsdal 6:ac5d277bd497 212 IN6=0;
mjhaugsdal 6:ac5d277bd497 213 IN7=1;
mjhaugsdal 6:ac5d277bd497 214 IN8=0;
mjhaugsdal 17:ff0021c4dcdc 215 //engine 3
mjhaugsdal 17:ff0021c4dcdc 216 IN9=1;
mjhaugsdal 17:ff0021c4dcdc 217 IN10=0;
mjhaugsdal 17:ff0021c4dcdc 218 IN11=1;
mjhaugsdal 17:ff0021c4dcdc 219 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 220 wait_us(speed);
mjhaugsdal 6:ac5d277bd497 221 //engine 1
rlanghbv 0:bd78e433db61 222 IN1=0;
rlanghbv 0:bd78e433db61 223 IN2=1;
rlanghbv 0:bd78e433db61 224 IN3=1;
rlanghbv 0:bd78e433db61 225 IN4=0;
mjhaugsdal 6:ac5d277bd497 226 //engine 2
mjhaugsdal 6:ac5d277bd497 227 IN5=0;
mjhaugsdal 6:ac5d277bd497 228 IN6=1;
mjhaugsdal 6:ac5d277bd497 229 IN7=1;
mjhaugsdal 6:ac5d277bd497 230 IN8=0;
mjhaugsdal 17:ff0021c4dcdc 231 //engine 3
mjhaugsdal 17:ff0021c4dcdc 232 IN9=0;
mjhaugsdal 17:ff0021c4dcdc 233 IN10=1;
mjhaugsdal 17:ff0021c4dcdc 234 IN11=1;
mjhaugsdal 17:ff0021c4dcdc 235 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 236 wait_us(speed);
mjhaugsdal 6:ac5d277bd497 237 //engine 1
rlanghbv 0:bd78e433db61 238 IN1=0;
rlanghbv 0:bd78e433db61 239 IN2=1;
rlanghbv 0:bd78e433db61 240 IN3=0;
rlanghbv 0:bd78e433db61 241 IN4=1;
mjhaugsdal 6:ac5d277bd497 242 //engine 2
mjhaugsdal 6:ac5d277bd497 243 IN5=0;
mjhaugsdal 6:ac5d277bd497 244 IN6=1;
mjhaugsdal 6:ac5d277bd497 245 IN7=0;
mjhaugsdal 6:ac5d277bd497 246 IN8=1;
mjhaugsdal 17:ff0021c4dcdc 247 //engine 3
mjhaugsdal 17:ff0021c4dcdc 248 IN9=0;
mjhaugsdal 17:ff0021c4dcdc 249 IN10=1;
mjhaugsdal 17:ff0021c4dcdc 250 IN11=0;
mjhaugsdal 17:ff0021c4dcdc 251 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 252 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 253 }
mjhaugsdal 17:ff0021c4dcdc 254
mjhaugsdal 17:ff0021c4dcdc 255 void stepEngine1Left()
mjhaugsdal 17:ff0021c4dcdc 256 {
mjhaugsdal 17:ff0021c4dcdc 257 //engine 1
mjhaugsdal 17:ff0021c4dcdc 258 IN1=1;
mjhaugsdal 17:ff0021c4dcdc 259 IN2=0;
mjhaugsdal 17:ff0021c4dcdc 260 IN3=0;
mjhaugsdal 17:ff0021c4dcdc 261 IN4=1;
mjhaugsdal 24:24c91a6ae6ba 262 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 263 IN1=1;
mjhaugsdal 17:ff0021c4dcdc 264 IN2=0;
mjhaugsdal 17:ff0021c4dcdc 265 IN3=1;
mjhaugsdal 17:ff0021c4dcdc 266 IN4=0;
mjhaugsdal 24:24c91a6ae6ba 267 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 268 IN1=0;
mjhaugsdal 17:ff0021c4dcdc 269 IN2=1;
mjhaugsdal 17:ff0021c4dcdc 270 IN3=1;
mjhaugsdal 17:ff0021c4dcdc 271 IN4=0;
mjhaugsdal 24:24c91a6ae6ba 272 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 273 IN1=0;
mjhaugsdal 17:ff0021c4dcdc 274 IN2=1;
mjhaugsdal 17:ff0021c4dcdc 275 IN3=0;
mjhaugsdal 17:ff0021c4dcdc 276 IN4=1;
mjhaugsdal 24:24c91a6ae6ba 277 wait_us(speed);
rlanghbv 0:bd78e433db61 278 }
rlanghbv 0:bd78e433db61 279
mjhaugsdal 17:ff0021c4dcdc 280 void stepEngine1Right()
mjhaugsdal 17:ff0021c4dcdc 281 {
mjhaugsdal 17:ff0021c4dcdc 282 //engine 1
mjhaugsdal 17:ff0021c4dcdc 283 IN1=0;
mjhaugsdal 17:ff0021c4dcdc 284 IN2=1;
mjhaugsdal 17:ff0021c4dcdc 285 IN3=0;
mjhaugsdal 17:ff0021c4dcdc 286 IN4=1;
mjhaugsdal 24:24c91a6ae6ba 287 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 288 IN1=0;
mjhaugsdal 17:ff0021c4dcdc 289 IN2=1;
mjhaugsdal 17:ff0021c4dcdc 290 IN3=1;
mjhaugsdal 17:ff0021c4dcdc 291 IN4=0;
mjhaugsdal 24:24c91a6ae6ba 292 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 293 IN1=1;
mjhaugsdal 17:ff0021c4dcdc 294 IN2=0;
mjhaugsdal 17:ff0021c4dcdc 295 IN3=1;
mjhaugsdal 17:ff0021c4dcdc 296 IN4=0;
mjhaugsdal 24:24c91a6ae6ba 297 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 298 IN1=1;
mjhaugsdal 17:ff0021c4dcdc 299 IN2=0;
mjhaugsdal 17:ff0021c4dcdc 300 IN3=0;
mjhaugsdal 17:ff0021c4dcdc 301 IN4=1;
mjhaugsdal 24:24c91a6ae6ba 302 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 303 }
mjhaugsdal 17:ff0021c4dcdc 304
mjhaugsdal 17:ff0021c4dcdc 305 void stepEngine2Right()
mjhaugsdal 17:ff0021c4dcdc 306 {
mjhaugsdal 17:ff0021c4dcdc 307 //engine 1
mjhaugsdal 17:ff0021c4dcdc 308 IN5=0;
mjhaugsdal 17:ff0021c4dcdc 309 IN6=1;
mjhaugsdal 17:ff0021c4dcdc 310 IN7=0;
mjhaugsdal 17:ff0021c4dcdc 311 IN8=1;
mjhaugsdal 24:24c91a6ae6ba 312 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 313 IN5=0;
mjhaugsdal 17:ff0021c4dcdc 314 IN6=1;
mjhaugsdal 17:ff0021c4dcdc 315 IN7=1;
mjhaugsdal 17:ff0021c4dcdc 316 IN8=0;
mjhaugsdal 24:24c91a6ae6ba 317 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 318 IN5=1;
mjhaugsdal 17:ff0021c4dcdc 319 IN6=0;
mjhaugsdal 17:ff0021c4dcdc 320 IN7=1;
mjhaugsdal 17:ff0021c4dcdc 321 IN8=0;
mjhaugsdal 24:24c91a6ae6ba 322 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 323 IN5=1;
mjhaugsdal 17:ff0021c4dcdc 324 IN6=0;
mjhaugsdal 17:ff0021c4dcdc 325 IN7=0;
mjhaugsdal 17:ff0021c4dcdc 326 IN8=1;
mjhaugsdal 24:24c91a6ae6ba 327 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 328 }
mjhaugsdal 17:ff0021c4dcdc 329
mjhaugsdal 17:ff0021c4dcdc 330 void stepEngine2Left()
mjhaugsdal 17:ff0021c4dcdc 331 {
mjhaugsdal 17:ff0021c4dcdc 332 //engine 1
mjhaugsdal 17:ff0021c4dcdc 333 IN5=1;
mjhaugsdal 17:ff0021c4dcdc 334 IN6=0;
mjhaugsdal 17:ff0021c4dcdc 335 IN7=0;
mjhaugsdal 17:ff0021c4dcdc 336 IN8=1;
mjhaugsdal 24:24c91a6ae6ba 337 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 338 IN5=1;
mjhaugsdal 17:ff0021c4dcdc 339 IN6=0;
mjhaugsdal 17:ff0021c4dcdc 340 IN7=1;
mjhaugsdal 17:ff0021c4dcdc 341 IN8=0;
mjhaugsdal 24:24c91a6ae6ba 342 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 343 IN5=0;
mjhaugsdal 17:ff0021c4dcdc 344 IN6=1;
mjhaugsdal 17:ff0021c4dcdc 345 IN7=1;
mjhaugsdal 17:ff0021c4dcdc 346 IN8=0;
mjhaugsdal 24:24c91a6ae6ba 347 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 348 IN5=0;
mjhaugsdal 17:ff0021c4dcdc 349 IN6=1;
mjhaugsdal 17:ff0021c4dcdc 350 IN7=0;
mjhaugsdal 17:ff0021c4dcdc 351 IN8=1;
mjhaugsdal 24:24c91a6ae6ba 352 wait_us(speed);
mjhaugsdal 17:ff0021c4dcdc 353 }
mjhaugsdal 17:ff0021c4dcdc 354
mjhaugsdal 19:79600d3509d7 355 void stepEngine3Right()
mjhaugsdal 19:79600d3509d7 356 {
mjhaugsdal 19:79600d3509d7 357 //engine 1
mjhaugsdal 19:79600d3509d7 358 IN9=0;
mjhaugsdal 19:79600d3509d7 359 IN10=1;
mjhaugsdal 19:79600d3509d7 360 IN11=0;
mjhaugsdal 19:79600d3509d7 361 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 362 wait_us(speed);
mjhaugsdal 19:79600d3509d7 363 IN9=0;
mjhaugsdal 19:79600d3509d7 364 IN10=1;
mjhaugsdal 19:79600d3509d7 365 IN11=1;
mjhaugsdal 19:79600d3509d7 366 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 367 wait_us(speed);
mjhaugsdal 19:79600d3509d7 368 IN9=1;
mjhaugsdal 19:79600d3509d7 369 IN10=0;
mjhaugsdal 19:79600d3509d7 370 IN11=1;
mjhaugsdal 19:79600d3509d7 371 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 372 wait_us(speed);
mjhaugsdal 19:79600d3509d7 373 IN9=1;
mjhaugsdal 19:79600d3509d7 374 IN10=0;
mjhaugsdal 19:79600d3509d7 375 IN11=0;
mjhaugsdal 19:79600d3509d7 376 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 377 wait_us(speed);
mjhaugsdal 19:79600d3509d7 378 }
mjhaugsdal 19:79600d3509d7 379
mjhaugsdal 19:79600d3509d7 380 void stepEngine3Left()
mjhaugsdal 19:79600d3509d7 381 {
mjhaugsdal 19:79600d3509d7 382 //engine 1
mjhaugsdal 19:79600d3509d7 383 IN9=1;
mjhaugsdal 19:79600d3509d7 384 IN10=0;
mjhaugsdal 19:79600d3509d7 385 IN11=0;
mjhaugsdal 19:79600d3509d7 386 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 387 wait_us(speed);
mjhaugsdal 19:79600d3509d7 388 IN9=1;
mjhaugsdal 19:79600d3509d7 389 IN10=0;
mjhaugsdal 19:79600d3509d7 390 IN11=1;
mjhaugsdal 19:79600d3509d7 391 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 392 wait_us(speed);
mjhaugsdal 19:79600d3509d7 393 IN9=0;
mjhaugsdal 19:79600d3509d7 394 IN10=1;
mjhaugsdal 19:79600d3509d7 395 IN11=1;
mjhaugsdal 19:79600d3509d7 396 IN12=0;
mjhaugsdal 24:24c91a6ae6ba 397 wait_us(speed);
mjhaugsdal 19:79600d3509d7 398 IN9=0;
mjhaugsdal 19:79600d3509d7 399 IN10=1;
mjhaugsdal 19:79600d3509d7 400 IN11=0;
mjhaugsdal 19:79600d3509d7 401 IN12=1;
mjhaugsdal 24:24c91a6ae6ba 402 wait_us(speed);
mjhaugsdal 19:79600d3509d7 403 }
mjhaugsdal 19:79600d3509d7 404
mjhaugsdal 21:9f3ae352ee63 405 //Method to release all engines.
mjhaugsdal 18:ef02a9014491 406 void stopAll()
mjhaugsdal 18:ef02a9014491 407 {
mjhaugsdal 18:ef02a9014491 408 IN1=0;
mjhaugsdal 18:ef02a9014491 409 IN2=0;
mjhaugsdal 18:ef02a9014491 410 IN3=0;
mjhaugsdal 18:ef02a9014491 411 IN4=0;
mjhaugsdal 18:ef02a9014491 412 IN5=0;
mjhaugsdal 18:ef02a9014491 413 IN6=0;
mjhaugsdal 18:ef02a9014491 414 IN7=0;
mjhaugsdal 18:ef02a9014491 415 IN8=0;
mjhaugsdal 18:ef02a9014491 416 IN9=0;
mjhaugsdal 18:ef02a9014491 417 IN10=0;
mjhaugsdal 18:ef02a9014491 418 IN11=0;
mjhaugsdal 18:ef02a9014491 419 IN12=0;
mjhaugsdal 18:ef02a9014491 420 }
mjhaugsdal 18:ef02a9014491 421
mjhaugsdal 21:9f3ae352ee63 422 //Methods to release single engines.
mjhaugsdal 20:d90bd1718078 423 void stopE1()
mjhaugsdal 20:d90bd1718078 424 {
mjhaugsdal 20:d90bd1718078 425 IN1=0;
mjhaugsdal 20:d90bd1718078 426 IN2=0;
mjhaugsdal 20:d90bd1718078 427 IN3=0;
mjhaugsdal 20:d90bd1718078 428 IN4=0;
mjhaugsdal 20:d90bd1718078 429
mjhaugsdal 20:d90bd1718078 430 }
mjhaugsdal 20:d90bd1718078 431 void stopE2()
mjhaugsdal 20:d90bd1718078 432 {
mjhaugsdal 20:d90bd1718078 433 IN5=0;
mjhaugsdal 20:d90bd1718078 434 IN6=0;
mjhaugsdal 20:d90bd1718078 435 IN7=0;
mjhaugsdal 20:d90bd1718078 436 IN8=0;
mjhaugsdal 20:d90bd1718078 437
mjhaugsdal 20:d90bd1718078 438 }
mjhaugsdal 20:d90bd1718078 439 void stopE3()
mjhaugsdal 20:d90bd1718078 440 {
mjhaugsdal 20:d90bd1718078 441 IN9=0;
mjhaugsdal 20:d90bd1718078 442 IN10=0;
mjhaugsdal 20:d90bd1718078 443 IN11=0;
mjhaugsdal 20:d90bd1718078 444 IN12=0;
mjhaugsdal 20:d90bd1718078 445
mjhaugsdal 20:d90bd1718078 446 }
mjhaugsdal 20:d90bd1718078 447
mjhaugsdal 27:35c962e8e95b 448 void hold()
mjhaugsdal 27:35c962e8e95b 449 {
mjhaugsdal 27:35c962e8e95b 450 IN1=1;
mjhaugsdal 27:35c962e8e95b 451 IN2=0;
mjhaugsdal 27:35c962e8e95b 452 IN3=0;
mjhaugsdal 27:35c962e8e95b 453 IN4=1;
mjhaugsdal 27:35c962e8e95b 454 IN5=1;
mjhaugsdal 27:35c962e8e95b 455 IN6=0;
mjhaugsdal 27:35c962e8e95b 456 IN7=0;
mjhaugsdal 27:35c962e8e95b 457 IN8=1;
mjhaugsdal 27:35c962e8e95b 458 IN9=1;
mjhaugsdal 27:35c962e8e95b 459 IN10=0;
mjhaugsdal 27:35c962e8e95b 460 IN11=0;
mjhaugsdal 27:35c962e8e95b 461 IN12=1;
mjhaugsdal 27:35c962e8e95b 462 }
mjhaugsdal 23:ad08a8eabc24 463
mjhaugsdal 23:ad08a8eabc24 464
mjhaugsdal 1:a3287196a9b3 465 void input(void const *args)
mjhaugsdal 1:a3287196a9b3 466 {
mjhaugsdal 1:a3287196a9b3 467 while(true)
mjhaugsdal 1:a3287196a9b3 468 {
mjhaugsdal 3:15be78948724 469
rlanghbv 2:25bcc26f7a5b 470 if(pc.readable())
mjhaugsdal 27:35c962e8e95b 471 {
mjhaugsdal 27:35c962e8e95b 472 m_cmd=pc.getc();
mjhaugsdal 27:35c962e8e95b 473 }
mjhaugsdal 23:ad08a8eabc24 474 Thread::wait(100);
mjhaugsdal 5:fdc7a779d525 475 //pc.printf("%d", steps);
benrammok 35:64ed42e6f9a4 476 //pc.printf("%c", m_cmd);
mjhaugsdal 1:a3287196a9b3 477 }
mjhaugsdal 1:a3287196a9b3 478 }
rlanghbv 0:bd78e433db61 479
benrammok 35:64ed42e6f9a4 480 //Tråd for ultralyd
benrammok 35:64ed42e6f9a4 481 void ultraSound(void const *args)
benrammok 35:64ed42e6f9a4 482 {
benrammok 35:64ed42e6f9a4 483 while(true)
benrammok 35:64ed42e6f9a4 484 {
benrammok 36:3011c70a5c81 485
benrammok 36:3011c70a5c81 486 sDistance = mu.getCurrentDistance();
benrammok 36:3011c70a5c81 487 Thread::wait(100);
benrammok 36:3011c70a5c81 488 dDistance = mu.getCurrentDistance();
benrammok 35:64ed42e6f9a4 489
benrammok 36:3011c70a5c81 490 printf("Current Distance: %dmm\r\n", sDistance);
benrammok 36:3011c70a5c81 491 printf("Current Change in Distance: %dmm\r\n", abs(sDistance-dDistance));
benrammok 36:3011c70a5c81 492 if(abs(sDistance-dDistance) > 30 && abs(sDistance-dDistance) < 1000){
benrammok 36:3011c70a5c81 493 /* Control structure for different audio playback.
benrammok 36:3011c70a5c81 494 sndBoard.nextTrack();
benrammok 36:3011c70a5c81 495 sndBoard.nextTrack();
benrammok 36:3011c70a5c81 496 sndBoard.nextTrack();
benrammok 35:64ed42e6f9a4 497
benrammok 36:3011c70a5c81 498 if(sDistance >= 500){
benrammok 36:3011c70a5c81 499 sndBoard.resetTrack();
benrammok 36:3011c70a5c81 500 Thread::wait(200);
benrammok 36:3011c70a5c81 501 sndBoard.nextTrack();
benrammok 36:3011c70a5c81 502 Thread::wait(200);
benrammok 36:3011c70a5c81 503 sndBoard.nextTrack();
benrammok 35:64ed42e6f9a4 504 }
benrammok 36:3011c70a5c81 505 if(sDistance < 500){
benrammok 36:3011c70a5c81 506 sndBoard.resetTrack();
benrammok 36:3011c70a5c81 507 Thread::wait(200);
benrammok 36:3011c70a5c81 508 sndBoard.nextTrack();
benrammok 36:3011c70a5c81 509 Thread::wait(200);
benrammok 36:3011c70a5c81 510 sndBoard.nextTrack();
benrammok 36:3011c70a5c81 511 Thread::wait(200);
benrammok 36:3011c70a5c81 512 sndBoard.nextTrack();
benrammok 36:3011c70a5c81 513 isPlaying = true;
benrammok 36:3011c70a5c81 514 }
benrammok 36:3011c70a5c81 515 */
benrammok 36:3011c70a5c81 516 }
benrammok 36:3011c70a5c81 517
benrammok 35:64ed42e6f9a4 518 Thread::wait(200);
benrammok 35:64ed42e6f9a4 519 }
benrammok 35:64ed42e6f9a4 520 }
benrammok 35:64ed42e6f9a4 521
benrammok 35:64ed42e6f9a4 522
benrammok 35:64ed42e6f9a4 523
mjhaugsdal 27:35c962e8e95b 524 //MOTOR 1 LEFT SIDE BUTTON
mjhaugsdal 25:321b970eb3ff 525 void pb1_hit_callback (void)
mjhaugsdal 23:ad08a8eabc24 526 {
mjhaugsdal 30:fac5b5624fe3 527
mjhaugsdal 25:321b970eb3ff 528 e1 = false;
mjhaugsdal 25:321b970eb3ff 529
mjhaugsdal 29:00f839aad30e 530 speed = 1000;
mjhaugsdal 30:fac5b5624fe3 531
mjhaugsdal 30:fac5b5624fe3 532 wait(2);
mjhaugsdal 30:fac5b5624fe3 533 int stepsToCenter = i1/2;
mjhaugsdal 27:35c962e8e95b 534
mjhaugsdal 27:35c962e8e95b 535 while (stepsToCenter >= 0)
mjhaugsdal 25:321b970eb3ff 536 {
mjhaugsdal 27:35c962e8e95b 537 stepEngine1Right();
mjhaugsdal 27:35c962e8e95b 538 stepsToCenter --;
mjhaugsdal 25:321b970eb3ff 539 }
mjhaugsdal 27:35c962e8e95b 540 steps1 = 0;
mjhaugsdal 27:35c962e8e95b 541 //break;
mjhaugsdal 27:35c962e8e95b 542 //end if
mjhaugsdal 27:35c962e8e95b 543 m_cmd = 'x';
mjhaugsdal 30:fac5b5624fe3 544
mjhaugsdal 25:321b970eb3ff 545 }
mjhaugsdal 25:321b970eb3ff 546
mjhaugsdal 27:35c962e8e95b 547 //MOTOR 1 RIGHT SIDE BUTTON
mjhaugsdal 25:321b970eb3ff 548 void pb2_hit_callback (void)
mjhaugsdal 25:321b970eb3ff 549 {
mjhaugsdal 30:fac5b5624fe3 550
mjhaugsdal 25:321b970eb3ff 551 e1 = false;
mjhaugsdal 25:321b970eb3ff 552 //m_cmd = 'x';
mjhaugsdal 23:ad08a8eabc24 553
mjhaugsdal 29:00f839aad30e 554 speed = 1000;
mjhaugsdal 30:fac5b5624fe3 555
mjhaugsdal 30:fac5b5624fe3 556 wait(2);
mjhaugsdal 30:fac5b5624fe3 557 int stepsToCenter = i1/2;
mjhaugsdal 27:35c962e8e95b 558
mjhaugsdal 27:35c962e8e95b 559 while (stepsToCenter >= 0)
mjhaugsdal 25:321b970eb3ff 560 {
mjhaugsdal 27:35c962e8e95b 561 stepEngine1Left();
mjhaugsdal 27:35c962e8e95b 562 stepsToCenter --;
mjhaugsdal 25:321b970eb3ff 563 }
mjhaugsdal 27:35c962e8e95b 564 steps1 = 0;
mjhaugsdal 27:35c962e8e95b 565 m_cmd = 'x';
mjhaugsdal 25:321b970eb3ff 566 }
mjhaugsdal 30:fac5b5624fe3 567
mjhaugsdal 30:fac5b5624fe3 568
mjhaugsdal 30:fac5b5624fe3 569
mjhaugsdal 25:321b970eb3ff 570 //MOTOR 2 LEFT SIDE BUTTON
mjhaugsdal 25:321b970eb3ff 571 void pb3_hit_callback (void)
mjhaugsdal 25:321b970eb3ff 572 {
mjhaugsdal 30:fac5b5624fe3 573
mjhaugsdal 25:321b970eb3ff 574 {
mjhaugsdal 25:321b970eb3ff 575 e2 = false;
mjhaugsdal 25:321b970eb3ff 576 //m_cmd = 'x';
mjhaugsdal 29:00f839aad30e 577 speed = 1000;
mjhaugsdal 30:fac5b5624fe3 578 wait(1);
mjhaugsdal 30:fac5b5624fe3 579 int stepsToCenter = i2/2;
mjhaugsdal 25:321b970eb3ff 580
mjhaugsdal 25:321b970eb3ff 581 while (stepsToCenter >= 0)
mjhaugsdal 25:321b970eb3ff 582 {
azadmehr 32:5163db06f6cc 583 stepEngine2Left();
mjhaugsdal 25:321b970eb3ff 584 stepsToCenter --;
mjhaugsdal 25:321b970eb3ff 585 }
mjhaugsdal 27:35c962e8e95b 586 steps2 = 0;
mjhaugsdal 30:fac5b5624fe3 587 //m_cmd = 'x';
mjhaugsdal 30:fac5b5624fe3 588 stopE2();
mjhaugsdal 25:321b970eb3ff 589 }
mjhaugsdal 23:ad08a8eabc24 590
mjhaugsdal 23:ad08a8eabc24 591 }
mjhaugsdal 23:ad08a8eabc24 592
mjhaugsdal 25:321b970eb3ff 593 //MOTOR 2 RIGHT SIDE BUTTON
mjhaugsdal 25:321b970eb3ff 594 void pb4_hit_callback (void)
mjhaugsdal 25:321b970eb3ff 595 {
mjhaugsdal 30:fac5b5624fe3 596
mjhaugsdal 25:321b970eb3ff 597 {
mjhaugsdal 25:321b970eb3ff 598 e2 = false;
mjhaugsdal 25:321b970eb3ff 599 //m_cmd = 'x';
mjhaugsdal 29:00f839aad30e 600 speed = 1000;
mjhaugsdal 30:fac5b5624fe3 601 wait(1);
mjhaugsdal 30:fac5b5624fe3 602 int stepsToCenter = i2/2;
mjhaugsdal 25:321b970eb3ff 603
mjhaugsdal 25:321b970eb3ff 604 while (stepsToCenter >= 0)
mjhaugsdal 25:321b970eb3ff 605 {
azadmehr 32:5163db06f6cc 606 stepEngine2Right();
mjhaugsdal 25:321b970eb3ff 607 stepsToCenter --;
mjhaugsdal 25:321b970eb3ff 608 }
mjhaugsdal 27:35c962e8e95b 609 steps2 = 0;
mjhaugsdal 30:fac5b5624fe3 610 //m_cmd = 'x';
mjhaugsdal 30:fac5b5624fe3 611 stopE2();
mjhaugsdal 25:321b970eb3ff 612 }
mjhaugsdal 25:321b970eb3ff 613
mjhaugsdal 25:321b970eb3ff 614
mjhaugsdal 25:321b970eb3ff 615 }
mjhaugsdal 25:321b970eb3ff 616
mjhaugsdal 30:fac5b5624fe3 617
mjhaugsdal 25:321b970eb3ff 618 //MOTOR 3 LEFT SIDE BUTTON
mjhaugsdal 25:321b970eb3ff 619 void pb5_hit_callback (void)
mjhaugsdal 25:321b970eb3ff 620 {
mjhaugsdal 30:fac5b5624fe3 621
mjhaugsdal 25:321b970eb3ff 622 e3 = false;
mjhaugsdal 25:321b970eb3ff 623 //m_cmd = 'x';
mjhaugsdal 29:00f839aad30e 624 speed = 1000;
mjhaugsdal 30:fac5b5624fe3 625 wait(1);
mjhaugsdal 30:fac5b5624fe3 626 int stepsToCenter = i3/2;
mjhaugsdal 25:321b970eb3ff 627
mjhaugsdal 25:321b970eb3ff 628 while (stepsToCenter >= 0)
mjhaugsdal 25:321b970eb3ff 629 {
mjhaugsdal 30:fac5b5624fe3 630 if(stepsToCenter < i3/10)
mjhaugsdal 30:fac5b5624fe3 631 speed = 1500;
mjhaugsdal 30:fac5b5624fe3 632
mjhaugsdal 25:321b970eb3ff 633 stepEngine3Left();
mjhaugsdal 25:321b970eb3ff 634 stepsToCenter --;
mjhaugsdal 25:321b970eb3ff 635 }
mjhaugsdal 27:35c962e8e95b 636 steps3 = 0;
mjhaugsdal 27:35c962e8e95b 637 m_cmd = 'x';
mjhaugsdal 25:321b970eb3ff 638
mjhaugsdal 25:321b970eb3ff 639 }
mjhaugsdal 25:321b970eb3ff 640 //MOTOR 3 RIGHT SIDE BUTTON
mjhaugsdal 25:321b970eb3ff 641 void pb6_hit_callback (void)
mjhaugsdal 25:321b970eb3ff 642 {
mjhaugsdal 27:35c962e8e95b 643
mjhaugsdal 30:fac5b5624fe3 644
mjhaugsdal 25:321b970eb3ff 645 e3 = false;
mjhaugsdal 25:321b970eb3ff 646 //m_cmd = 'x';
mjhaugsdal 29:00f839aad30e 647 speed = 1000;
mjhaugsdal 30:fac5b5624fe3 648 wait(1);
mjhaugsdal 30:fac5b5624fe3 649 int stepsToCenter = i3/2;
mjhaugsdal 25:321b970eb3ff 650
mjhaugsdal 25:321b970eb3ff 651 while (stepsToCenter >= 0)
mjhaugsdal 25:321b970eb3ff 652 {
mjhaugsdal 30:fac5b5624fe3 653 if(stepsToCenter < i3/10)
mjhaugsdal 30:fac5b5624fe3 654 speed = 1500;
mjhaugsdal 30:fac5b5624fe3 655
mjhaugsdal 25:321b970eb3ff 656 stepEngine3Right();
mjhaugsdal 25:321b970eb3ff 657 stepsToCenter --;
mjhaugsdal 25:321b970eb3ff 658 }
mjhaugsdal 27:35c962e8e95b 659 //reset steps and stop engine
mjhaugsdal 27:35c962e8e95b 660 steps3 = 0;
mjhaugsdal 27:35c962e8e95b 661 m_cmd = 'x';
mjhaugsdal 30:fac5b5624fe3 662
mjhaugsdal 25:321b970eb3ff 663 }
azadmehr 32:5163db06f6cc 664 void dist(int distance)
azadmehr 32:5163db06f6cc 665 {
azadmehr 32:5163db06f6cc 666 //put code here to happen when the distance is changed
benrammok 35:64ed42e6f9a4 667 //stepEngine2Right();
azadmehr 32:5163db06f6cc 668 }
azadmehr 32:5163db06f6cc 669
mjhaugsdal 23:ad08a8eabc24 670
rlanghbv 0:bd78e433db61 671 int main()
rlanghbv 0:bd78e433db61 672 {
azadmehr 32:5163db06f6cc 673
benrammok 35:64ed42e6f9a4 674
azadmehr 32:5163db06f6cc 675
benrammok 35:64ed42e6f9a4 676 mu.startUpdates();//start mesuring the distance
azadmehr 32:5163db06f6cc 677
azadmehr 32:5163db06f6cc 678
azadmehr 32:5163db06f6cc 679
mjhaugsdal 25:321b970eb3ff 680 pb1.mode(PullUp);
mjhaugsdal 25:321b970eb3ff 681 pb2.mode(PullUp);
mjhaugsdal 25:321b970eb3ff 682 pb3.mode(PullUp);
mjhaugsdal 25:321b970eb3ff 683 pb4.mode(PullUp);
mjhaugsdal 25:321b970eb3ff 684 pb5.mode(PullUp);
mjhaugsdal 25:321b970eb3ff 685 pb6.mode(PullUp);
mjhaugsdal 30:fac5b5624fe3 686
mjhaugsdal 25:321b970eb3ff 687 //Set up buttons 1 and 2
mjhaugsdal 25:321b970eb3ff 688 pb1.attach_deasserted(&pb1_hit_callback);
mjhaugsdal 25:321b970eb3ff 689 pb1.setSampleFrequency();
mjhaugsdal 25:321b970eb3ff 690 pb2.attach_deasserted(&pb2_hit_callback);
mjhaugsdal 30:fac5b5624fe3 691 pb2.setSampleFrequency();
mjhaugsdal 30:fac5b5624fe3 692
mjhaugsdal 23:ad08a8eabc24 693
mjhaugsdal 1:a3287196a9b3 694 //Thread 1 has constant feed from usb
rlanghbv 2:25bcc26f7a5b 695 Thread t1(input);
benrammok 35:64ed42e6f9a4 696
benrammok 35:64ed42e6f9a4 697 //Thread 2 - Ultrasound reading
benrammok 35:64ed42e6f9a4 698 Thread t2(ultraSound);
benrammok 35:64ed42e6f9a4 699
mjhaugsdal 22:f6e328f7bd28 700 //static char global_direction;
mjhaugsdal 3:15be78948724 701 printf("Started");
azadmehr 31:358d4c032d76 702 /*
azadmehr 31:358d4c032d76 703 //Prosedyre for å midtstille laveste ledd
mjhaugsdal 30:fac5b5624fe3 704
mjhaugsdal 24:24c91a6ae6ba 705 while (true)
mjhaugsdal 24:24c91a6ae6ba 706 {
mjhaugsdal 28:dac262b7ab32 707
mjhaugsdal 30:fac5b5624fe3 708
mjhaugsdal 24:24c91a6ae6ba 709 stepEngine1Left();
mjhaugsdal 24:24c91a6ae6ba 710 if (e1 == false)
mjhaugsdal 24:24c91a6ae6ba 711 {
mjhaugsdal 30:fac5b5624fe3 712 Thread::wait(2000);
mjhaugsdal 29:00f839aad30e 713 e1 = true;
mjhaugsdal 29:00f839aad30e 714 while(true)
mjhaugsdal 29:00f839aad30e 715 {
mjhaugsdal 29:00f839aad30e 716
mjhaugsdal 29:00f839aad30e 717 stepEngine1Right();
mjhaugsdal 30:fac5b5624fe3 718 i1++;
mjhaugsdal 29:00f839aad30e 719 if(e1 == false)
mjhaugsdal 29:00f839aad30e 720 break;
mjhaugsdal 29:00f839aad30e 721
mjhaugsdal 29:00f839aad30e 722 }
mjhaugsdal 29:00f839aad30e 723
mjhaugsdal 24:24c91a6ae6ba 724 Thread::wait(1000);
mjhaugsdal 25:321b970eb3ff 725 break;
mjhaugsdal 24:24c91a6ae6ba 726 }//end if
mjhaugsdal 25:321b970eb3ff 727
mjhaugsdal 30:fac5b5624fe3 728 }//end while
mjhaugsdal 30:fac5b5624fe3 729
azadmehr 31:358d4c032d76 730 */
azadmehr 31:358d4c032d76 731
mjhaugsdal 25:321b970eb3ff 732 //Set up buttons 3 and 4
mjhaugsdal 25:321b970eb3ff 733 pb3.attach_deasserted(&pb3_hit_callback);
mjhaugsdal 25:321b970eb3ff 734 pb3.setSampleFrequency();
mjhaugsdal 25:321b970eb3ff 735 pb4.attach_deasserted(&pb4_hit_callback);
mjhaugsdal 25:321b970eb3ff 736 pb4.setSampleFrequency();
azadmehr 31:358d4c032d76 737
azadmehr 31:358d4c032d76 738 //midstille midterste ledd
mjhaugsdal 24:24c91a6ae6ba 739 while (true)
mjhaugsdal 24:24c91a6ae6ba 740 {
mjhaugsdal 25:321b970eb3ff 741
mjhaugsdal 29:00f839aad30e 742 speed = 1000;
mjhaugsdal 29:00f839aad30e 743 /* while(bootStep2 >= 0)
mjhaugsdal 25:321b970eb3ff 744 {
mjhaugsdal 25:321b970eb3ff 745 bootStep2--;
mjhaugsdal 25:321b970eb3ff 746 stepEngine2Right();
mjhaugsdal 25:321b970eb3ff 747
mjhaugsdal 29:00f839aad30e 748 } */
mjhaugsdal 25:321b970eb3ff 749
mjhaugsdal 25:321b970eb3ff 750 stepEngine2Left();
mjhaugsdal 24:24c91a6ae6ba 751 if (e2 == false)
mjhaugsdal 24:24c91a6ae6ba 752 {
mjhaugsdal 29:00f839aad30e 753 e2 = true;
mjhaugsdal 29:00f839aad30e 754 while(true)
mjhaugsdal 29:00f839aad30e 755 {
mjhaugsdal 29:00f839aad30e 756
mjhaugsdal 29:00f839aad30e 757 stepEngine2Right();
mjhaugsdal 30:fac5b5624fe3 758 i2++;
mjhaugsdal 29:00f839aad30e 759 if(e2 == false)
mjhaugsdal 29:00f839aad30e 760 break;
mjhaugsdal 29:00f839aad30e 761
mjhaugsdal 29:00f839aad30e 762 }
mjhaugsdal 27:35c962e8e95b 763
mjhaugsdal 25:321b970eb3ff 764 Thread::wait(1000);
azadmehr 32:5163db06f6cc 765 stopAll();
mjhaugsdal 24:24c91a6ae6ba 766 break;
mjhaugsdal 24:24c91a6ae6ba 767 }//end if
mjhaugsdal 24:24c91a6ae6ba 768 }
mjhaugsdal 25:321b970eb3ff 769
mjhaugsdal 30:fac5b5624fe3 770
azadmehr 32:5163db06f6cc 771 //checking buttons 5 and 6
mjhaugsdal 25:321b970eb3ff 772 pb5.attach_deasserted(&pb5_hit_callback);
mjhaugsdal 25:321b970eb3ff 773 pb5.setSampleFrequency();
mjhaugsdal 25:321b970eb3ff 774 pb6.attach_deasserted(&pb6_hit_callback);
mjhaugsdal 25:321b970eb3ff 775 pb6.setSampleFrequency();
azadmehr 31:358d4c032d76 776 //Midstille toppledd
azadmehr 31:358d4c032d76 777
mjhaugsdal 24:24c91a6ae6ba 778 while (true)
mjhaugsdal 24:24c91a6ae6ba 779 {
mjhaugsdal 25:321b970eb3ff 780 stepEngine3Left();
mjhaugsdal 24:24c91a6ae6ba 781 if (e3 == false)
mjhaugsdal 24:24c91a6ae6ba 782 {
mjhaugsdal 29:00f839aad30e 783 e3 = true;
mjhaugsdal 29:00f839aad30e 784 while(true)
mjhaugsdal 29:00f839aad30e 785 {
mjhaugsdal 29:00f839aad30e 786
mjhaugsdal 29:00f839aad30e 787 stepEngine3Right();
mjhaugsdal 30:fac5b5624fe3 788 i3++;
mjhaugsdal 29:00f839aad30e 789 if(e3 == false)
mjhaugsdal 29:00f839aad30e 790 break;
mjhaugsdal 29:00f839aad30e 791
mjhaugsdal 29:00f839aad30e 792 }
mjhaugsdal 27:35c962e8e95b 793 //pc.printf("HALLO");
mjhaugsdal 30:fac5b5624fe3 794 //m_cmd = 'z';
mjhaugsdal 24:24c91a6ae6ba 795 Thread::wait(1000);
azadmehr 32:5163db06f6cc 796 stopAll();
mjhaugsdal 24:24c91a6ae6ba 797 break;
mjhaugsdal 24:24c91a6ae6ba 798 }//end if
mjhaugsdal 24:24c91a6ae6ba 799 }
azadmehr 32:5163db06f6cc 800 stopAll();
mjhaugsdal 28:dac262b7ab32 801 //normal runtime
mjhaugsdal 1:a3287196a9b3 802 while (true)
mjhaugsdal 22:f6e328f7bd28 803 {
mjhaugsdal 28:dac262b7ab32 804
mjhaugsdal 28:dac262b7ab32 805 //user button to turn off engines
mjhaugsdal 30:fac5b5624fe3 806 if(SW==0)
mjhaugsdal 28:dac262b7ab32 807 {
azadmehr 32:5163db06f6cc 808 while(true)
azadmehr 32:5163db06f6cc 809 {
azadmehr 32:5163db06f6cc 810 e3=true;
azadmehr 32:5163db06f6cc 811 //stopAll();
azadmehr 32:5163db06f6cc 812 //Do something else here
azadmehr 32:5163db06f6cc 813 //mu.checkDistance(); //call checkDistance() as much as possible, as this is where
azadmehr 32:5163db06f6cc 814 //the class checks if dist needs to be called.
mjhaugsdal 28:dac262b7ab32 815 //put engines to sleep
azadmehr 32:5163db06f6cc 816 stepEngine3Right();
azadmehr 32:5163db06f6cc 817 if(e3==false)
azadmehr 32:5163db06f6cc 818 break;
azadmehr 32:5163db06f6cc 819 }
benrammok 35:64ed42e6f9a4 820
azadmehr 32:5163db06f6cc 821 stopAll();
azadmehr 32:5163db06f6cc 822 //stepEngine2Right();
azadmehr 32:5163db06f6cc 823 // speed=1000;
azadmehr 32:5163db06f6cc 824 // m_cmd ='z';
mjhaugsdal 28:dac262b7ab32 825
mjhaugsdal 28:dac262b7ab32 826
mjhaugsdal 28:dac262b7ab32 827 }
azadmehr 32:5163db06f6cc 828 /* //set the speed. Higher = slower
mjhaugsdal 29:00f839aad30e 829 speed = 1000;
mjhaugsdal 27:35c962e8e95b 830 //speed = 1500;
mjhaugsdal 24:24c91a6ae6ba 831
mjhaugsdal 27:35c962e8e95b 832 switch (m_cmd)
mjhaugsdal 27:35c962e8e95b 833 {
mjhaugsdal 27:35c962e8e95b 834 case '7':
mjhaugsdal 27:35c962e8e95b 835 cmd = '7';
mjhaugsdal 27:35c962e8e95b 836 break;
mjhaugsdal 27:35c962e8e95b 837
mjhaugsdal 27:35c962e8e95b 838 case '9':
mjhaugsdal 27:35c962e8e95b 839 cmd = '9';
mjhaugsdal 27:35c962e8e95b 840 break;
mjhaugsdal 27:35c962e8e95b 841
mjhaugsdal 27:35c962e8e95b 842 case '4':
mjhaugsdal 27:35c962e8e95b 843 cmd= '4';
mjhaugsdal 27:35c962e8e95b 844 break;
mjhaugsdal 27:35c962e8e95b 845
mjhaugsdal 27:35c962e8e95b 846 case '6':
mjhaugsdal 27:35c962e8e95b 847 cmd = '6';
mjhaugsdal 27:35c962e8e95b 848 break;
mjhaugsdal 27:35c962e8e95b 849
mjhaugsdal 27:35c962e8e95b 850 case '1':
mjhaugsdal 27:35c962e8e95b 851 cmd = '1';
mjhaugsdal 27:35c962e8e95b 852 break;
mjhaugsdal 27:35c962e8e95b 853
mjhaugsdal 27:35c962e8e95b 854 case '3':
mjhaugsdal 27:35c962e8e95b 855 cmd = '3';
mjhaugsdal 27:35c962e8e95b 856 break;
mjhaugsdal 27:35c962e8e95b 857
mjhaugsdal 27:35c962e8e95b 858 case 'x':
mjhaugsdal 27:35c962e8e95b 859 cmd = 'x';
mjhaugsdal 27:35c962e8e95b 860 break;
mjhaugsdal 27:35c962e8e95b 861
mjhaugsdal 27:35c962e8e95b 862 //release motors
mjhaugsdal 27:35c962e8e95b 863 case 'z':
mjhaugsdal 27:35c962e8e95b 864
mjhaugsdal 27:35c962e8e95b 865 //step all motors to the middle
mjhaugsdal 27:35c962e8e95b 866
mjhaugsdal 27:35c962e8e95b 867 while(steps1 > 0)
mjhaugsdal 27:35c962e8e95b 868 {
mjhaugsdal 27:35c962e8e95b 869 stepEngine1Left();
mjhaugsdal 27:35c962e8e95b 870 steps1--;
mjhaugsdal 27:35c962e8e95b 871 }
mjhaugsdal 27:35c962e8e95b 872 while(steps1 < 0)
mjhaugsdal 27:35c962e8e95b 873 {
mjhaugsdal 27:35c962e8e95b 874 stepEngine1Right();
mjhaugsdal 27:35c962e8e95b 875 steps1++;
mjhaugsdal 27:35c962e8e95b 876 }
mjhaugsdal 27:35c962e8e95b 877
mjhaugsdal 27:35c962e8e95b 878 while(steps2 > 0)
mjhaugsdal 27:35c962e8e95b 879 {
mjhaugsdal 27:35c962e8e95b 880 stepEngine2Left();
mjhaugsdal 27:35c962e8e95b 881 steps2--;
mjhaugsdal 27:35c962e8e95b 882 }
mjhaugsdal 27:35c962e8e95b 883 while(steps2 < 0)
mjhaugsdal 27:35c962e8e95b 884 {
mjhaugsdal 27:35c962e8e95b 885 stepEngine2Right();
mjhaugsdal 27:35c962e8e95b 886 steps2++;
mjhaugsdal 27:35c962e8e95b 887 }
mjhaugsdal 27:35c962e8e95b 888
mjhaugsdal 27:35c962e8e95b 889 while(steps3 > 0)
mjhaugsdal 27:35c962e8e95b 890 {
mjhaugsdal 27:35c962e8e95b 891 stepEngine3Left();
mjhaugsdal 27:35c962e8e95b 892 steps3--;
mjhaugsdal 27:35c962e8e95b 893 }
mjhaugsdal 27:35c962e8e95b 894 while(steps3 < 0)
mjhaugsdal 27:35c962e8e95b 895 {
mjhaugsdal 27:35c962e8e95b 896 stepEngine3Right();
mjhaugsdal 27:35c962e8e95b 897 steps3++;
mjhaugsdal 27:35c962e8e95b 898 }
mjhaugsdal 27:35c962e8e95b 899
mjhaugsdal 27:35c962e8e95b 900 cmd = 'z';
mjhaugsdal 27:35c962e8e95b 901
mjhaugsdal 27:35c962e8e95b 902
mjhaugsdal 27:35c962e8e95b 903 break;
mjhaugsdal 27:35c962e8e95b 904
mjhaugsdal 27:35c962e8e95b 905 }
mjhaugsdal 27:35c962e8e95b 906
mjhaugsdal 21:9f3ae352ee63 907 //Release all motors / Set all pins to 0
mjhaugsdal 27:35c962e8e95b 908 if (cmd == 'z')
mjhaugsdal 18:ef02a9014491 909 {
mjhaugsdal 18:ef02a9014491 910 stopAll();
mjhaugsdal 19:79600d3509d7 911 }
mjhaugsdal 21:9f3ae352ee63 912 //Make all engines halt and hold still.
mjhaugsdal 27:35c962e8e95b 913 if (cmd == 'x')
mjhaugsdal 19:79600d3509d7 914 {
mjhaugsdal 27:35c962e8e95b 915 hold();
mjhaugsdal 28:dac262b7ab32 916 Thread::wait(1000);
mjhaugsdal 28:dac262b7ab32 917 m_cmd = 'z';
mjhaugsdal 27:35c962e8e95b 918
mjhaugsdal 18:ef02a9014491 919 }
mjhaugsdal 25:321b970eb3ff 920
mjhaugsdal 25:321b970eb3ff 921 //Rest mode. Make the engines ignore pushbuttons.
azadmehr 32:5163db06f6cc 922
mjhaugsdal 25:321b970eb3ff 923 if(m_cmd == 'r')
mjhaugsdal 25:321b970eb3ff 924 {
mjhaugsdal 25:321b970eb3ff 925 rest = true;
mjhaugsdal 25:321b970eb3ff 926 //Step motors to rest position
mjhaugsdal 25:321b970eb3ff 927
mjhaugsdal 25:321b970eb3ff 928 }
mjhaugsdal 25:321b970eb3ff 929 */
mjhaugsdal 19:79600d3509d7 930
mjhaugsdal 30:fac5b5624fe3 931 /*
mjhaugsdal 21:9f3ae352ee63 932 //Controlling each motor seperately.
mjhaugsdal 25:321b970eb3ff 933 //ENGINE 3
mjhaugsdal 27:35c962e8e95b 934 if(cmd == '7' && steps3 > -200)
mjhaugsdal 19:79600d3509d7 935 {
mjhaugsdal 30:fac5b5624fe3 936
mjhaugsdal 22:f6e328f7bd28 937
mjhaugsdal 24:24c91a6ae6ba 938 steps3 --;
mjhaugsdal 24:24c91a6ae6ba 939 stepEngine3Left();
mjhaugsdal 27:35c962e8e95b 940
mjhaugsdal 24:24c91a6ae6ba 941 }
mjhaugsdal 27:35c962e8e95b 942 else if (cmd == '9' && steps3 < 280)
mjhaugsdal 24:24c91a6ae6ba 943 {
mjhaugsdal 30:fac5b5624fe3 944
mjhaugsdal 23:ad08a8eabc24 945 stepEngine3Right();
mjhaugsdal 24:24c91a6ae6ba 946 steps3 ++;
mjhaugsdal 19:79600d3509d7 947 }
mjhaugsdal 19:79600d3509d7 948 //ENGINE 2
mjhaugsdal 27:35c962e8e95b 949 else if (cmd == '4' && steps2 > -242)
mjhaugsdal 19:79600d3509d7 950 {
mjhaugsdal 30:fac5b5624fe3 951
mjhaugsdal 24:24c91a6ae6ba 952 steps2 --;
mjhaugsdal 19:79600d3509d7 953 stepEngine2Left();
mjhaugsdal 19:79600d3509d7 954 }
mjhaugsdal 27:35c962e8e95b 955 else if (cmd == '6' && steps2 < 242)
mjhaugsdal 19:79600d3509d7 956 {
mjhaugsdal 30:fac5b5624fe3 957
mjhaugsdal 24:24c91a6ae6ba 958 steps2 ++;
mjhaugsdal 19:79600d3509d7 959 stepEngine2Right();
mjhaugsdal 19:79600d3509d7 960 }
mjhaugsdal 19:79600d3509d7 961 //ENGINE 3
mjhaugsdal 27:35c962e8e95b 962 else if (cmd == '1' && steps1 > -242)
mjhaugsdal 19:79600d3509d7 963 {
mjhaugsdal 30:fac5b5624fe3 964
mjhaugsdal 24:24c91a6ae6ba 965 steps1--;
mjhaugsdal 23:ad08a8eabc24 966 stepEngine1Left();
mjhaugsdal 19:79600d3509d7 967 }
mjhaugsdal 27:35c962e8e95b 968 else if (cmd == '3' && steps1 < 242)
mjhaugsdal 19:79600d3509d7 969 {
mjhaugsdal 30:fac5b5624fe3 970
mjhaugsdal 30:fac5b5624fe3 971 steps1++;
mjhaugsdal 30:fac5b5624fe3 972 stepEngine1Right();
mjhaugsdal 30:fac5b5624fe3 973 }
azadmehr 32:5163db06f6cc 974
mjhaugsdal 30:fac5b5624fe3 975
mjhaugsdal 30:fac5b5624fe3 976 if(cmd == '7')
mjhaugsdal 30:fac5b5624fe3 977 {
mjhaugsdal 30:fac5b5624fe3 978
mjhaugsdal 30:fac5b5624fe3 979
mjhaugsdal 30:fac5b5624fe3 980 steps3 --;
mjhaugsdal 30:fac5b5624fe3 981 stepEngine3Left();
mjhaugsdal 30:fac5b5624fe3 982
mjhaugsdal 30:fac5b5624fe3 983 }
mjhaugsdal 30:fac5b5624fe3 984 else if (cmd == '9')
mjhaugsdal 30:fac5b5624fe3 985 {
mjhaugsdal 30:fac5b5624fe3 986
mjhaugsdal 30:fac5b5624fe3 987 stepEngine3Right();
mjhaugsdal 30:fac5b5624fe3 988 steps3 ++;
mjhaugsdal 30:fac5b5624fe3 989 }
mjhaugsdal 30:fac5b5624fe3 990 //ENGINE 2
mjhaugsdal 30:fac5b5624fe3 991 else if (cmd == '4')
mjhaugsdal 30:fac5b5624fe3 992 {
mjhaugsdal 30:fac5b5624fe3 993
mjhaugsdal 30:fac5b5624fe3 994 steps2 --;
mjhaugsdal 30:fac5b5624fe3 995 stepEngine2Left();
mjhaugsdal 30:fac5b5624fe3 996 }
mjhaugsdal 30:fac5b5624fe3 997 else if (cmd == '6')
mjhaugsdal 30:fac5b5624fe3 998 {
mjhaugsdal 30:fac5b5624fe3 999
mjhaugsdal 30:fac5b5624fe3 1000 steps2 ++;
mjhaugsdal 30:fac5b5624fe3 1001 stepEngine2Right();
mjhaugsdal 30:fac5b5624fe3 1002 }
mjhaugsdal 30:fac5b5624fe3 1003 //ENGINE 3
mjhaugsdal 30:fac5b5624fe3 1004 else if (cmd == '1')
mjhaugsdal 30:fac5b5624fe3 1005 {
mjhaugsdal 30:fac5b5624fe3 1006
mjhaugsdal 30:fac5b5624fe3 1007 steps1--;
mjhaugsdal 30:fac5b5624fe3 1008 stepEngine1Left();
mjhaugsdal 30:fac5b5624fe3 1009 }
mjhaugsdal 30:fac5b5624fe3 1010 else if (cmd == '3')
mjhaugsdal 30:fac5b5624fe3 1011 {
mjhaugsdal 30:fac5b5624fe3 1012
mjhaugsdal 24:24c91a6ae6ba 1013 steps1++;
mjhaugsdal 23:ad08a8eabc24 1014 stepEngine1Right();
mjhaugsdal 19:79600d3509d7 1015 }
mjhaugsdal 23:ad08a8eabc24 1016
mjhaugsdal 30:fac5b5624fe3 1017 if (cmd == 'y')
mjhaugsdal 27:35c962e8e95b 1018 {
mjhaugsdal 27:35c962e8e95b 1019 int step = 100;
mjhaugsdal 27:35c962e8e95b 1020 while (step >= 0)
mjhaugsdal 27:35c962e8e95b 1021 {
mjhaugsdal 27:35c962e8e95b 1022 step--;
mjhaugsdal 27:35c962e8e95b 1023 step2Left3Right();
mjhaugsdal 27:35c962e8e95b 1024 }
mjhaugsdal 27:35c962e8e95b 1025 m_cmd = 'x';
mjhaugsdal 27:35c962e8e95b 1026
mjhaugsdal 27:35c962e8e95b 1027 }
mjhaugsdal 27:35c962e8e95b 1028
mjhaugsdal 30:fac5b5624fe3 1029 if (cmd == 't')
mjhaugsdal 27:35c962e8e95b 1030 {
mjhaugsdal 27:35c962e8e95b 1031 int step1, step2, step3;
mjhaugsdal 27:35c962e8e95b 1032 step1 = 100;
mjhaugsdal 27:35c962e8e95b 1033 step2 = 60;
mjhaugsdal 27:35c962e8e95b 1034 step3 = 70;
mjhaugsdal 27:35c962e8e95b 1035
mjhaugsdal 27:35c962e8e95b 1036 while (step1 > 0)
mjhaugsdal 27:35c962e8e95b 1037 {
mjhaugsdal 27:35c962e8e95b 1038 stepEngine1Left();
mjhaugsdal 27:35c962e8e95b 1039 step1--;
mjhaugsdal 27:35c962e8e95b 1040 //global stepcounter
mjhaugsdal 27:35c962e8e95b 1041 steps1--;
mjhaugsdal 27:35c962e8e95b 1042 }
mjhaugsdal 27:35c962e8e95b 1043 while(step2 > 0)
mjhaugsdal 27:35c962e8e95b 1044 {
mjhaugsdal 27:35c962e8e95b 1045 stepEngine2Right();
mjhaugsdal 27:35c962e8e95b 1046 step2--;
mjhaugsdal 27:35c962e8e95b 1047 //global stepcounter
mjhaugsdal 27:35c962e8e95b 1048 steps2++;
mjhaugsdal 27:35c962e8e95b 1049 }
mjhaugsdal 27:35c962e8e95b 1050 while(step3 > 0)
mjhaugsdal 27:35c962e8e95b 1051 {
mjhaugsdal 27:35c962e8e95b 1052 stepEngine3Left();
mjhaugsdal 27:35c962e8e95b 1053 step3--;
mjhaugsdal 27:35c962e8e95b 1054 //global stepcounter
mjhaugsdal 27:35c962e8e95b 1055 steps3--;
mjhaugsdal 27:35c962e8e95b 1056 }
mjhaugsdal 27:35c962e8e95b 1057
mjhaugsdal 28:dac262b7ab32 1058 //m_cmd = 'x';
mjhaugsdal 27:35c962e8e95b 1059
mjhaugsdal 27:35c962e8e95b 1060 }
mjhaugsdal 25:321b970eb3ff 1061
mjhaugsdal 25:321b970eb3ff 1062 //Thread::wait(10);
mjhaugsdal 25:321b970eb3ff 1063 //pc.printf("%d", steps2);
azadmehr 32:5163db06f6cc 1064 */
mjhaugsdal 4:4d655fdae399 1065
mjhaugsdal 24:24c91a6ae6ba 1066 } //END WHILE TRUE
mjhaugsdal 1:a3287196a9b3 1067
mjhaugsdal 3:15be78948724 1068 } //END Main