Engine control program with 3 engines Needs to make a case for each simultaneous engine setting, because of the WAIT after each number of bits have been sent.
Dependencies: mbed-rtos mbed PinDetect
Fork of FinalMotorControl by
main.cpp@28:dac262b7ab32, 2016-06-02 (annotated)
- Committer:
- mjhaugsdal
- Date:
- Thu Jun 02 07:53:41 2016 +0000
- Revision:
- 28:dac262b7ab32
- Parent:
- 27:35c962e8e95b
- Child:
- 29:00f839aad30e
made a change to make the motors loosen after running and holding
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rlanghbv | 0:bd78e433db61 | 1 | #include "mbed.h" |
mjhaugsdal | 1:a3287196a9b3 | 2 | #include "rtos.h" |
mjhaugsdal | 23:ad08a8eabc24 | 3 | #include "PinDetect.h" |
rlanghbv | 0:bd78e433db61 | 4 | |
rlanghbv | 2:25bcc26f7a5b | 5 | Serial pc(USBTX, USBRX); // tx, rx |
mjhaugsdal | 25:321b970eb3ff | 6 | |
mjhaugsdal | 25:321b970eb3ff | 7 | //Mid |
mjhaugsdal | 25:321b970eb3ff | 8 | PinDetect pb3(A4); |
mjhaugsdal | 25:321b970eb3ff | 9 | PinDetect pb4(A5); |
mjhaugsdal | 25:321b970eb3ff | 10 | |
mjhaugsdal | 25:321b970eb3ff | 11 | //Bottom |
mjhaugsdal | 25:321b970eb3ff | 12 | PinDetect pb1(D14); |
mjhaugsdal | 25:321b970eb3ff | 13 | PinDetect pb2(D15); |
mjhaugsdal | 25:321b970eb3ff | 14 | |
mjhaugsdal | 25:321b970eb3ff | 15 | //Top |
mjhaugsdal | 25:321b970eb3ff | 16 | PinDetect pb5(D12); |
mjhaugsdal | 25:321b970eb3ff | 17 | PinDetect pb6(D13); |
rlanghbv | 0:bd78e433db61 | 18 | |
mjhaugsdal | 1:a3287196a9b3 | 19 | //Analog Pins |
mjhaugsdal | 5:fdc7a779d525 | 20 | //First engine |
mjhaugsdal | 5:fdc7a779d525 | 21 | DigitalOut IN1(A0); |
mjhaugsdal | 5:fdc7a779d525 | 22 | DigitalOut IN2(A1); |
mjhaugsdal | 5:fdc7a779d525 | 23 | DigitalOut IN3(A2); |
mjhaugsdal | 5:fdc7a779d525 | 24 | DigitalOut IN4(A3); |
mjhaugsdal | 5:fdc7a779d525 | 25 | //Second engine |
mjhaugsdal | 25:321b970eb3ff | 26 | DigitalOut IN5(D8); |
mjhaugsdal | 25:321b970eb3ff | 27 | DigitalOut IN6(D9); |
mjhaugsdal | 25:321b970eb3ff | 28 | DigitalOut IN7(D10); |
mjhaugsdal | 25:321b970eb3ff | 29 | DigitalOut IN8(D11); |
mjhaugsdal | 16:a3555918c025 | 30 | //Third Engine |
mjhaugsdal | 25:321b970eb3ff | 31 | DigitalOut IN9(D3); |
mjhaugsdal | 25:321b970eb3ff | 32 | DigitalOut IN10(D4); |
mjhaugsdal | 25:321b970eb3ff | 33 | DigitalOut IN11(D5); |
mjhaugsdal | 25:321b970eb3ff | 34 | DigitalOut IN12(D6); |
mjhaugsdal | 5:fdc7a779d525 | 35 | |
mjhaugsdal | 28:dac262b7ab32 | 36 | //User button |
mjhaugsdal | 28:dac262b7ab32 | 37 | DigitalIn SW(USER_BUTTON); |
mjhaugsdal | 28:dac262b7ab32 | 38 | |
rlanghbv | 0:bd78e433db61 | 39 | |
mjhaugsdal | 27:35c962e8e95b | 40 | static int speed = 1750; |
mjhaugsdal | 25:321b970eb3ff | 41 | static int bootStep1 = 100; |
mjhaugsdal | 25:321b970eb3ff | 42 | static int bootStep2 = 100; |
mjhaugsdal | 25:321b970eb3ff | 43 | static int bootStep3 = 100; |
mjhaugsdal | 3:15be78948724 | 44 | static char m_cmd = 'x'; |
mjhaugsdal | 27:35c962e8e95b | 45 | static char cmd; |
mjhaugsdal | 23:ad08a8eabc24 | 46 | static bool e1 = true; |
mjhaugsdal | 23:ad08a8eabc24 | 47 | static bool e2 = true; |
mjhaugsdal | 23:ad08a8eabc24 | 48 | static bool e3 = true; |
mjhaugsdal | 25:321b970eb3ff | 49 | static bool rest = false; |
rlanghbv | 0:bd78e433db61 | 50 | |
mjhaugsdal | 24:24c91a6ae6ba | 51 | static int steps1 = 0; |
mjhaugsdal | 24:24c91a6ae6ba | 52 | static int steps2 = 0; |
mjhaugsdal | 24:24c91a6ae6ba | 53 | static int steps3 = 0; |
mjhaugsdal | 24:24c91a6ae6ba | 54 | |
mjhaugsdal | 24:24c91a6ae6ba | 55 | |
mjhaugsdal | 21:9f3ae352ee63 | 56 | //Methods to set pins to control direction. |
mjhaugsdal | 27:35c962e8e95b | 57 | |
mjhaugsdal | 27:35c962e8e95b | 58 | void step2Left3Right() |
mjhaugsdal | 27:35c962e8e95b | 59 | { |
mjhaugsdal | 27:35c962e8e95b | 60 | //engine 2 |
mjhaugsdal | 27:35c962e8e95b | 61 | IN5=1; |
mjhaugsdal | 27:35c962e8e95b | 62 | IN6=0; |
mjhaugsdal | 27:35c962e8e95b | 63 | IN7=0; |
mjhaugsdal | 27:35c962e8e95b | 64 | IN8=1; |
mjhaugsdal | 27:35c962e8e95b | 65 | //engine 3 |
mjhaugsdal | 27:35c962e8e95b | 66 | IN9=0; |
mjhaugsdal | 27:35c962e8e95b | 67 | IN10=1; |
mjhaugsdal | 27:35c962e8e95b | 68 | IN11=0; |
mjhaugsdal | 27:35c962e8e95b | 69 | IN12=1; |
mjhaugsdal | 27:35c962e8e95b | 70 | |
mjhaugsdal | 27:35c962e8e95b | 71 | wait_us(speed); |
mjhaugsdal | 27:35c962e8e95b | 72 | IN5=1; |
mjhaugsdal | 27:35c962e8e95b | 73 | IN6=0; |
mjhaugsdal | 27:35c962e8e95b | 74 | IN7=1; |
mjhaugsdal | 27:35c962e8e95b | 75 | IN8=0; |
mjhaugsdal | 27:35c962e8e95b | 76 | IN9=0; |
mjhaugsdal | 27:35c962e8e95b | 77 | IN10=1; |
mjhaugsdal | 27:35c962e8e95b | 78 | IN11=1; |
mjhaugsdal | 27:35c962e8e95b | 79 | IN12=0; |
mjhaugsdal | 27:35c962e8e95b | 80 | wait_us(speed); |
mjhaugsdal | 27:35c962e8e95b | 81 | IN5=0; |
mjhaugsdal | 27:35c962e8e95b | 82 | IN6=1; |
mjhaugsdal | 27:35c962e8e95b | 83 | IN7=1; |
mjhaugsdal | 27:35c962e8e95b | 84 | IN8=0; |
mjhaugsdal | 27:35c962e8e95b | 85 | IN9=1; |
mjhaugsdal | 27:35c962e8e95b | 86 | IN10=0; |
mjhaugsdal | 27:35c962e8e95b | 87 | IN11=1; |
mjhaugsdal | 27:35c962e8e95b | 88 | IN12=0; |
mjhaugsdal | 27:35c962e8e95b | 89 | wait_us(speed); |
mjhaugsdal | 27:35c962e8e95b | 90 | IN5=0; |
mjhaugsdal | 27:35c962e8e95b | 91 | IN6=1; |
mjhaugsdal | 27:35c962e8e95b | 92 | IN7=0; |
mjhaugsdal | 27:35c962e8e95b | 93 | IN8=1; |
mjhaugsdal | 27:35c962e8e95b | 94 | IN9=1; |
mjhaugsdal | 27:35c962e8e95b | 95 | IN10=0; |
mjhaugsdal | 27:35c962e8e95b | 96 | IN11=0; |
mjhaugsdal | 27:35c962e8e95b | 97 | IN12=1; |
mjhaugsdal | 27:35c962e8e95b | 98 | wait_us(speed); |
mjhaugsdal | 27:35c962e8e95b | 99 | } |
mjhaugsdal | 27:35c962e8e95b | 100 | |
mjhaugsdal | 17:ff0021c4dcdc | 101 | void stepAllRight() |
rlanghbv | 0:bd78e433db61 | 102 | { |
mjhaugsdal | 6:ac5d277bd497 | 103 | //engine 1 |
rlanghbv | 0:bd78e433db61 | 104 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 105 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 106 | IN3=0; |
rlanghbv | 0:bd78e433db61 | 107 | IN4=1; |
mjhaugsdal | 6:ac5d277bd497 | 108 | //engine 2 |
mjhaugsdal | 6:ac5d277bd497 | 109 | IN5=0; |
mjhaugsdal | 6:ac5d277bd497 | 110 | IN6=1; |
mjhaugsdal | 6:ac5d277bd497 | 111 | IN7=0; |
mjhaugsdal | 6:ac5d277bd497 | 112 | IN8=1; |
mjhaugsdal | 17:ff0021c4dcdc | 113 | //engine 3 |
mjhaugsdal | 17:ff0021c4dcdc | 114 | IN9=0; |
mjhaugsdal | 17:ff0021c4dcdc | 115 | IN10=1; |
mjhaugsdal | 17:ff0021c4dcdc | 116 | IN11=0; |
mjhaugsdal | 17:ff0021c4dcdc | 117 | IN12=1; |
mjhaugsdal | 24:24c91a6ae6ba | 118 | wait_us(speed); //legg som global variabel "fart" |
mjhaugsdal | 6:ac5d277bd497 | 119 | //engine 1 |
rlanghbv | 0:bd78e433db61 | 120 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 121 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 122 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 123 | IN4=0; |
mjhaugsdal | 6:ac5d277bd497 | 124 | //engine 2 |
mjhaugsdal | 6:ac5d277bd497 | 125 | IN5=0; |
mjhaugsdal | 6:ac5d277bd497 | 126 | IN6=1; |
mjhaugsdal | 6:ac5d277bd497 | 127 | IN7=1; |
mjhaugsdal | 6:ac5d277bd497 | 128 | IN8=0; |
mjhaugsdal | 17:ff0021c4dcdc | 129 | //engine 3 |
mjhaugsdal | 17:ff0021c4dcdc | 130 | IN9=0; |
mjhaugsdal | 17:ff0021c4dcdc | 131 | IN10=1; |
mjhaugsdal | 17:ff0021c4dcdc | 132 | IN11=1; |
mjhaugsdal | 17:ff0021c4dcdc | 133 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 134 | wait_us(speed); |
mjhaugsdal | 6:ac5d277bd497 | 135 | //engine 1 |
rlanghbv | 0:bd78e433db61 | 136 | IN1=1; |
rlanghbv | 0:bd78e433db61 | 137 | IN2=0; |
rlanghbv | 0:bd78e433db61 | 138 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 139 | IN4=0; |
mjhaugsdal | 6:ac5d277bd497 | 140 | //engine 2 |
mjhaugsdal | 6:ac5d277bd497 | 141 | IN5=1; |
mjhaugsdal | 6:ac5d277bd497 | 142 | IN6=0; |
mjhaugsdal | 6:ac5d277bd497 | 143 | IN7=1; |
mjhaugsdal | 6:ac5d277bd497 | 144 | IN8=0; |
mjhaugsdal | 17:ff0021c4dcdc | 145 | //engine 3 |
mjhaugsdal | 17:ff0021c4dcdc | 146 | IN9=1; |
mjhaugsdal | 17:ff0021c4dcdc | 147 | IN10=0; |
mjhaugsdal | 17:ff0021c4dcdc | 148 | IN11=1; |
mjhaugsdal | 17:ff0021c4dcdc | 149 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 150 | wait_us(speed); |
mjhaugsdal | 6:ac5d277bd497 | 151 | //engine 1 |
rlanghbv | 0:bd78e433db61 | 152 | IN1=1; |
rlanghbv | 0:bd78e433db61 | 153 | IN2=0; |
rlanghbv | 0:bd78e433db61 | 154 | IN3=0; |
rlanghbv | 0:bd78e433db61 | 155 | IN4=1; |
mjhaugsdal | 6:ac5d277bd497 | 156 | //engine 2 |
mjhaugsdal | 6:ac5d277bd497 | 157 | IN5=1; |
mjhaugsdal | 6:ac5d277bd497 | 158 | IN6=0; |
mjhaugsdal | 6:ac5d277bd497 | 159 | IN7=0; |
mjhaugsdal | 6:ac5d277bd497 | 160 | IN8=1; |
mjhaugsdal | 17:ff0021c4dcdc | 161 | //engine 3 |
mjhaugsdal | 17:ff0021c4dcdc | 162 | IN9=1; |
mjhaugsdal | 17:ff0021c4dcdc | 163 | IN10=0; |
mjhaugsdal | 17:ff0021c4dcdc | 164 | IN11=0; |
mjhaugsdal | 17:ff0021c4dcdc | 165 | IN12=1; |
mjhaugsdal | 24:24c91a6ae6ba | 166 | wait_us(speed); |
rlanghbv | 0:bd78e433db61 | 167 | } |
mjhaugsdal | 17:ff0021c4dcdc | 168 | void stepAllLeft() |
rlanghbv | 0:bd78e433db61 | 169 | { |
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); |
mjhaugsdal | 6:ac5d277bd497 | 186 | //engine 1 |
rlanghbv | 0:bd78e433db61 | 187 | IN1=1; |
rlanghbv | 0:bd78e433db61 | 188 | IN2=0; |
rlanghbv | 0:bd78e433db61 | 189 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 190 | IN4=0; |
mjhaugsdal | 6:ac5d277bd497 | 191 | //engine 2 |
mjhaugsdal | 6:ac5d277bd497 | 192 | IN5=1; |
mjhaugsdal | 6:ac5d277bd497 | 193 | IN6=0; |
mjhaugsdal | 6:ac5d277bd497 | 194 | IN7=1; |
mjhaugsdal | 6:ac5d277bd497 | 195 | IN8=0; |
mjhaugsdal | 17:ff0021c4dcdc | 196 | //engine 3 |
mjhaugsdal | 17:ff0021c4dcdc | 197 | IN9=1; |
mjhaugsdal | 17:ff0021c4dcdc | 198 | IN10=0; |
mjhaugsdal | 17:ff0021c4dcdc | 199 | IN11=1; |
mjhaugsdal | 17:ff0021c4dcdc | 200 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 201 | wait_us(speed); |
mjhaugsdal | 6:ac5d277bd497 | 202 | //engine 1 |
rlanghbv | 0:bd78e433db61 | 203 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 204 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 205 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 206 | IN4=0; |
mjhaugsdal | 6:ac5d277bd497 | 207 | //engine 2 |
mjhaugsdal | 6:ac5d277bd497 | 208 | IN5=0; |
mjhaugsdal | 6:ac5d277bd497 | 209 | IN6=1; |
mjhaugsdal | 6:ac5d277bd497 | 210 | IN7=1; |
mjhaugsdal | 6:ac5d277bd497 | 211 | IN8=0; |
mjhaugsdal | 17:ff0021c4dcdc | 212 | //engine 3 |
mjhaugsdal | 17:ff0021c4dcdc | 213 | IN9=0; |
mjhaugsdal | 17:ff0021c4dcdc | 214 | IN10=1; |
mjhaugsdal | 17:ff0021c4dcdc | 215 | IN11=1; |
mjhaugsdal | 17:ff0021c4dcdc | 216 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 217 | wait_us(speed); |
mjhaugsdal | 6:ac5d277bd497 | 218 | //engine 1 |
rlanghbv | 0:bd78e433db61 | 219 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 220 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 221 | IN3=0; |
rlanghbv | 0:bd78e433db61 | 222 | IN4=1; |
mjhaugsdal | 6:ac5d277bd497 | 223 | //engine 2 |
mjhaugsdal | 6:ac5d277bd497 | 224 | IN5=0; |
mjhaugsdal | 6:ac5d277bd497 | 225 | IN6=1; |
mjhaugsdal | 6:ac5d277bd497 | 226 | IN7=0; |
mjhaugsdal | 6:ac5d277bd497 | 227 | IN8=1; |
mjhaugsdal | 17:ff0021c4dcdc | 228 | //engine 3 |
mjhaugsdal | 17:ff0021c4dcdc | 229 | IN9=0; |
mjhaugsdal | 17:ff0021c4dcdc | 230 | IN10=1; |
mjhaugsdal | 17:ff0021c4dcdc | 231 | IN11=0; |
mjhaugsdal | 17:ff0021c4dcdc | 232 | IN12=1; |
mjhaugsdal | 24:24c91a6ae6ba | 233 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 234 | } |
mjhaugsdal | 17:ff0021c4dcdc | 235 | |
mjhaugsdal | 17:ff0021c4dcdc | 236 | void stepEngine1Left() |
mjhaugsdal | 17:ff0021c4dcdc | 237 | { |
mjhaugsdal | 17:ff0021c4dcdc | 238 | //engine 1 |
mjhaugsdal | 17:ff0021c4dcdc | 239 | IN1=1; |
mjhaugsdal | 17:ff0021c4dcdc | 240 | IN2=0; |
mjhaugsdal | 17:ff0021c4dcdc | 241 | IN3=0; |
mjhaugsdal | 17:ff0021c4dcdc | 242 | IN4=1; |
mjhaugsdal | 24:24c91a6ae6ba | 243 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 244 | IN1=1; |
mjhaugsdal | 17:ff0021c4dcdc | 245 | IN2=0; |
mjhaugsdal | 17:ff0021c4dcdc | 246 | IN3=1; |
mjhaugsdal | 17:ff0021c4dcdc | 247 | IN4=0; |
mjhaugsdal | 24:24c91a6ae6ba | 248 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 249 | IN1=0; |
mjhaugsdal | 17:ff0021c4dcdc | 250 | IN2=1; |
mjhaugsdal | 17:ff0021c4dcdc | 251 | IN3=1; |
mjhaugsdal | 17:ff0021c4dcdc | 252 | IN4=0; |
mjhaugsdal | 24:24c91a6ae6ba | 253 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 254 | IN1=0; |
mjhaugsdal | 17:ff0021c4dcdc | 255 | IN2=1; |
mjhaugsdal | 17:ff0021c4dcdc | 256 | IN3=0; |
mjhaugsdal | 17:ff0021c4dcdc | 257 | IN4=1; |
mjhaugsdal | 24:24c91a6ae6ba | 258 | wait_us(speed); |
rlanghbv | 0:bd78e433db61 | 259 | } |
rlanghbv | 0:bd78e433db61 | 260 | |
mjhaugsdal | 17:ff0021c4dcdc | 261 | void stepEngine1Right() |
mjhaugsdal | 17:ff0021c4dcdc | 262 | { |
mjhaugsdal | 17:ff0021c4dcdc | 263 | //engine 1 |
mjhaugsdal | 17:ff0021c4dcdc | 264 | IN1=0; |
mjhaugsdal | 17:ff0021c4dcdc | 265 | IN2=1; |
mjhaugsdal | 17:ff0021c4dcdc | 266 | IN3=0; |
mjhaugsdal | 17:ff0021c4dcdc | 267 | IN4=1; |
mjhaugsdal | 24:24c91a6ae6ba | 268 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 269 | IN1=0; |
mjhaugsdal | 17:ff0021c4dcdc | 270 | IN2=1; |
mjhaugsdal | 17:ff0021c4dcdc | 271 | IN3=1; |
mjhaugsdal | 17:ff0021c4dcdc | 272 | IN4=0; |
mjhaugsdal | 24:24c91a6ae6ba | 273 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 274 | IN1=1; |
mjhaugsdal | 17:ff0021c4dcdc | 275 | IN2=0; |
mjhaugsdal | 17:ff0021c4dcdc | 276 | IN3=1; |
mjhaugsdal | 17:ff0021c4dcdc | 277 | IN4=0; |
mjhaugsdal | 24:24c91a6ae6ba | 278 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 279 | IN1=1; |
mjhaugsdal | 17:ff0021c4dcdc | 280 | IN2=0; |
mjhaugsdal | 17:ff0021c4dcdc | 281 | IN3=0; |
mjhaugsdal | 17:ff0021c4dcdc | 282 | IN4=1; |
mjhaugsdal | 24:24c91a6ae6ba | 283 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 284 | } |
mjhaugsdal | 17:ff0021c4dcdc | 285 | |
mjhaugsdal | 17:ff0021c4dcdc | 286 | void stepEngine2Right() |
mjhaugsdal | 17:ff0021c4dcdc | 287 | { |
mjhaugsdal | 17:ff0021c4dcdc | 288 | //engine 1 |
mjhaugsdal | 17:ff0021c4dcdc | 289 | IN5=0; |
mjhaugsdal | 17:ff0021c4dcdc | 290 | IN6=1; |
mjhaugsdal | 17:ff0021c4dcdc | 291 | IN7=0; |
mjhaugsdal | 17:ff0021c4dcdc | 292 | IN8=1; |
mjhaugsdal | 24:24c91a6ae6ba | 293 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 294 | IN5=0; |
mjhaugsdal | 17:ff0021c4dcdc | 295 | IN6=1; |
mjhaugsdal | 17:ff0021c4dcdc | 296 | IN7=1; |
mjhaugsdal | 17:ff0021c4dcdc | 297 | IN8=0; |
mjhaugsdal | 24:24c91a6ae6ba | 298 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 299 | IN5=1; |
mjhaugsdal | 17:ff0021c4dcdc | 300 | IN6=0; |
mjhaugsdal | 17:ff0021c4dcdc | 301 | IN7=1; |
mjhaugsdal | 17:ff0021c4dcdc | 302 | IN8=0; |
mjhaugsdal | 24:24c91a6ae6ba | 303 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 304 | IN5=1; |
mjhaugsdal | 17:ff0021c4dcdc | 305 | IN6=0; |
mjhaugsdal | 17:ff0021c4dcdc | 306 | IN7=0; |
mjhaugsdal | 17:ff0021c4dcdc | 307 | IN8=1; |
mjhaugsdal | 24:24c91a6ae6ba | 308 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 309 | } |
mjhaugsdal | 17:ff0021c4dcdc | 310 | |
mjhaugsdal | 17:ff0021c4dcdc | 311 | void stepEngine2Left() |
mjhaugsdal | 17:ff0021c4dcdc | 312 | { |
mjhaugsdal | 17:ff0021c4dcdc | 313 | //engine 1 |
mjhaugsdal | 17:ff0021c4dcdc | 314 | IN5=1; |
mjhaugsdal | 17:ff0021c4dcdc | 315 | IN6=0; |
mjhaugsdal | 17:ff0021c4dcdc | 316 | IN7=0; |
mjhaugsdal | 17:ff0021c4dcdc | 317 | IN8=1; |
mjhaugsdal | 24:24c91a6ae6ba | 318 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 319 | IN5=1; |
mjhaugsdal | 17:ff0021c4dcdc | 320 | IN6=0; |
mjhaugsdal | 17:ff0021c4dcdc | 321 | IN7=1; |
mjhaugsdal | 17:ff0021c4dcdc | 322 | IN8=0; |
mjhaugsdal | 24:24c91a6ae6ba | 323 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 324 | IN5=0; |
mjhaugsdal | 17:ff0021c4dcdc | 325 | IN6=1; |
mjhaugsdal | 17:ff0021c4dcdc | 326 | IN7=1; |
mjhaugsdal | 17:ff0021c4dcdc | 327 | IN8=0; |
mjhaugsdal | 24:24c91a6ae6ba | 328 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 329 | IN5=0; |
mjhaugsdal | 17:ff0021c4dcdc | 330 | IN6=1; |
mjhaugsdal | 17:ff0021c4dcdc | 331 | IN7=0; |
mjhaugsdal | 17:ff0021c4dcdc | 332 | IN8=1; |
mjhaugsdal | 24:24c91a6ae6ba | 333 | wait_us(speed); |
mjhaugsdal | 17:ff0021c4dcdc | 334 | } |
mjhaugsdal | 17:ff0021c4dcdc | 335 | |
mjhaugsdal | 19:79600d3509d7 | 336 | void stepEngine3Right() |
mjhaugsdal | 19:79600d3509d7 | 337 | { |
mjhaugsdal | 19:79600d3509d7 | 338 | //engine 1 |
mjhaugsdal | 19:79600d3509d7 | 339 | IN9=0; |
mjhaugsdal | 19:79600d3509d7 | 340 | IN10=1; |
mjhaugsdal | 19:79600d3509d7 | 341 | IN11=0; |
mjhaugsdal | 19:79600d3509d7 | 342 | IN12=1; |
mjhaugsdal | 24:24c91a6ae6ba | 343 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 344 | IN9=0; |
mjhaugsdal | 19:79600d3509d7 | 345 | IN10=1; |
mjhaugsdal | 19:79600d3509d7 | 346 | IN11=1; |
mjhaugsdal | 19:79600d3509d7 | 347 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 348 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 349 | IN9=1; |
mjhaugsdal | 19:79600d3509d7 | 350 | IN10=0; |
mjhaugsdal | 19:79600d3509d7 | 351 | IN11=1; |
mjhaugsdal | 19:79600d3509d7 | 352 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 353 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 354 | IN9=1; |
mjhaugsdal | 19:79600d3509d7 | 355 | IN10=0; |
mjhaugsdal | 19:79600d3509d7 | 356 | IN11=0; |
mjhaugsdal | 19:79600d3509d7 | 357 | IN12=1; |
mjhaugsdal | 24:24c91a6ae6ba | 358 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 359 | } |
mjhaugsdal | 19:79600d3509d7 | 360 | |
mjhaugsdal | 19:79600d3509d7 | 361 | void stepEngine3Left() |
mjhaugsdal | 19:79600d3509d7 | 362 | { |
mjhaugsdal | 19:79600d3509d7 | 363 | //engine 1 |
mjhaugsdal | 19:79600d3509d7 | 364 | IN9=1; |
mjhaugsdal | 19:79600d3509d7 | 365 | IN10=0; |
mjhaugsdal | 19:79600d3509d7 | 366 | IN11=0; |
mjhaugsdal | 19:79600d3509d7 | 367 | IN12=1; |
mjhaugsdal | 24:24c91a6ae6ba | 368 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 369 | IN9=1; |
mjhaugsdal | 19:79600d3509d7 | 370 | IN10=0; |
mjhaugsdal | 19:79600d3509d7 | 371 | IN11=1; |
mjhaugsdal | 19:79600d3509d7 | 372 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 373 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 374 | IN9=0; |
mjhaugsdal | 19:79600d3509d7 | 375 | IN10=1; |
mjhaugsdal | 19:79600d3509d7 | 376 | IN11=1; |
mjhaugsdal | 19:79600d3509d7 | 377 | IN12=0; |
mjhaugsdal | 24:24c91a6ae6ba | 378 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 379 | IN9=0; |
mjhaugsdal | 19:79600d3509d7 | 380 | IN10=1; |
mjhaugsdal | 19:79600d3509d7 | 381 | IN11=0; |
mjhaugsdal | 19:79600d3509d7 | 382 | IN12=1; |
mjhaugsdal | 24:24c91a6ae6ba | 383 | wait_us(speed); |
mjhaugsdal | 19:79600d3509d7 | 384 | } |
mjhaugsdal | 19:79600d3509d7 | 385 | |
mjhaugsdal | 21:9f3ae352ee63 | 386 | //Method to release all engines. |
mjhaugsdal | 18:ef02a9014491 | 387 | void stopAll() |
mjhaugsdal | 18:ef02a9014491 | 388 | { |
mjhaugsdal | 18:ef02a9014491 | 389 | IN1=0; |
mjhaugsdal | 18:ef02a9014491 | 390 | IN2=0; |
mjhaugsdal | 18:ef02a9014491 | 391 | IN3=0; |
mjhaugsdal | 18:ef02a9014491 | 392 | IN4=0; |
mjhaugsdal | 18:ef02a9014491 | 393 | IN5=0; |
mjhaugsdal | 18:ef02a9014491 | 394 | IN6=0; |
mjhaugsdal | 18:ef02a9014491 | 395 | IN7=0; |
mjhaugsdal | 18:ef02a9014491 | 396 | IN8=0; |
mjhaugsdal | 18:ef02a9014491 | 397 | IN9=0; |
mjhaugsdal | 18:ef02a9014491 | 398 | IN10=0; |
mjhaugsdal | 18:ef02a9014491 | 399 | IN11=0; |
mjhaugsdal | 18:ef02a9014491 | 400 | IN12=0; |
mjhaugsdal | 18:ef02a9014491 | 401 | } |
mjhaugsdal | 18:ef02a9014491 | 402 | |
mjhaugsdal | 21:9f3ae352ee63 | 403 | //Methods to release single engines. |
mjhaugsdal | 20:d90bd1718078 | 404 | void stopE1() |
mjhaugsdal | 20:d90bd1718078 | 405 | { |
mjhaugsdal | 20:d90bd1718078 | 406 | IN1=0; |
mjhaugsdal | 20:d90bd1718078 | 407 | IN2=0; |
mjhaugsdal | 20:d90bd1718078 | 408 | IN3=0; |
mjhaugsdal | 20:d90bd1718078 | 409 | IN4=0; |
mjhaugsdal | 20:d90bd1718078 | 410 | |
mjhaugsdal | 20:d90bd1718078 | 411 | } |
mjhaugsdal | 20:d90bd1718078 | 412 | void stopE2() |
mjhaugsdal | 20:d90bd1718078 | 413 | { |
mjhaugsdal | 20:d90bd1718078 | 414 | IN5=0; |
mjhaugsdal | 20:d90bd1718078 | 415 | IN6=0; |
mjhaugsdal | 20:d90bd1718078 | 416 | IN7=0; |
mjhaugsdal | 20:d90bd1718078 | 417 | IN8=0; |
mjhaugsdal | 20:d90bd1718078 | 418 | |
mjhaugsdal | 20:d90bd1718078 | 419 | } |
mjhaugsdal | 20:d90bd1718078 | 420 | void stopE3() |
mjhaugsdal | 20:d90bd1718078 | 421 | { |
mjhaugsdal | 20:d90bd1718078 | 422 | IN9=0; |
mjhaugsdal | 20:d90bd1718078 | 423 | IN10=0; |
mjhaugsdal | 20:d90bd1718078 | 424 | IN11=0; |
mjhaugsdal | 20:d90bd1718078 | 425 | IN12=0; |
mjhaugsdal | 20:d90bd1718078 | 426 | |
mjhaugsdal | 20:d90bd1718078 | 427 | } |
mjhaugsdal | 20:d90bd1718078 | 428 | |
mjhaugsdal | 27:35c962e8e95b | 429 | void hold() |
mjhaugsdal | 27:35c962e8e95b | 430 | { |
mjhaugsdal | 27:35c962e8e95b | 431 | IN1=1; |
mjhaugsdal | 27:35c962e8e95b | 432 | IN2=0; |
mjhaugsdal | 27:35c962e8e95b | 433 | IN3=0; |
mjhaugsdal | 27:35c962e8e95b | 434 | IN4=1; |
mjhaugsdal | 27:35c962e8e95b | 435 | IN5=1; |
mjhaugsdal | 27:35c962e8e95b | 436 | IN6=0; |
mjhaugsdal | 27:35c962e8e95b | 437 | IN7=0; |
mjhaugsdal | 27:35c962e8e95b | 438 | IN8=1; |
mjhaugsdal | 27:35c962e8e95b | 439 | IN9=1; |
mjhaugsdal | 27:35c962e8e95b | 440 | IN10=0; |
mjhaugsdal | 27:35c962e8e95b | 441 | IN11=0; |
mjhaugsdal | 27:35c962e8e95b | 442 | IN12=1; |
mjhaugsdal | 27:35c962e8e95b | 443 | } |
mjhaugsdal | 23:ad08a8eabc24 | 444 | |
mjhaugsdal | 23:ad08a8eabc24 | 445 | |
mjhaugsdal | 1:a3287196a9b3 | 446 | void input(void const *args) |
mjhaugsdal | 1:a3287196a9b3 | 447 | { |
mjhaugsdal | 1:a3287196a9b3 | 448 | while(true) |
mjhaugsdal | 1:a3287196a9b3 | 449 | { |
mjhaugsdal | 3:15be78948724 | 450 | |
rlanghbv | 2:25bcc26f7a5b | 451 | if(pc.readable()) |
mjhaugsdal | 27:35c962e8e95b | 452 | { |
mjhaugsdal | 27:35c962e8e95b | 453 | m_cmd=pc.getc(); |
mjhaugsdal | 27:35c962e8e95b | 454 | } |
mjhaugsdal | 23:ad08a8eabc24 | 455 | Thread::wait(100); |
mjhaugsdal | 5:fdc7a779d525 | 456 | //pc.printf("%d", steps); |
mjhaugsdal | 27:35c962e8e95b | 457 | /* |
mjhaugsdal | 27:35c962e8e95b | 458 | if (m_cmd == 'x') |
mjhaugsdal | 27:35c962e8e95b | 459 | { |
mjhaugsdal | 27:35c962e8e95b | 460 | while(speed < 7000) |
mjhaugsdal | 27:35c962e8e95b | 461 | { |
mjhaugsdal | 27:35c962e8e95b | 462 | //Thread::wait(1); |
mjhaugsdal | 27:35c962e8e95b | 463 | speed ++; |
mjhaugsdal | 27:35c962e8e95b | 464 | } |
mjhaugsdal | 27:35c962e8e95b | 465 | speed = 2000; |
mjhaugsdal | 27:35c962e8e95b | 466 | cmd = 'x'; |
mjhaugsdal | 27:35c962e8e95b | 467 | break; |
mjhaugsdal | 27:35c962e8e95b | 468 | } |
mjhaugsdal | 27:35c962e8e95b | 469 | */ |
mjhaugsdal | 27:35c962e8e95b | 470 | |
mjhaugsdal | 27:35c962e8e95b | 471 | |
mjhaugsdal | 23:ad08a8eabc24 | 472 | |
mjhaugsdal | 1:a3287196a9b3 | 473 | } |
mjhaugsdal | 1:a3287196a9b3 | 474 | } |
rlanghbv | 0:bd78e433db61 | 475 | |
mjhaugsdal | 25:321b970eb3ff | 476 | |
mjhaugsdal | 27:35c962e8e95b | 477 | //MOTOR 1 LEFT SIDE BUTTON |
mjhaugsdal | 25:321b970eb3ff | 478 | void pb1_hit_callback (void) |
mjhaugsdal | 23:ad08a8eabc24 | 479 | { |
mjhaugsdal | 25:321b970eb3ff | 480 | if(rest == false) |
mjhaugsdal | 25:321b970eb3ff | 481 | { |
mjhaugsdal | 25:321b970eb3ff | 482 | e1 = false; |
mjhaugsdal | 25:321b970eb3ff | 483 | |
mjhaugsdal | 27:35c962e8e95b | 484 | speed = 2000; |
mjhaugsdal | 27:35c962e8e95b | 485 | Thread::wait(1000); |
mjhaugsdal | 27:35c962e8e95b | 486 | int stepsToCenter = 242; |
mjhaugsdal | 27:35c962e8e95b | 487 | |
mjhaugsdal | 27:35c962e8e95b | 488 | while (stepsToCenter >= 0) |
mjhaugsdal | 25:321b970eb3ff | 489 | { |
mjhaugsdal | 27:35c962e8e95b | 490 | stepEngine1Right(); |
mjhaugsdal | 27:35c962e8e95b | 491 | stepsToCenter --; |
mjhaugsdal | 25:321b970eb3ff | 492 | } |
mjhaugsdal | 27:35c962e8e95b | 493 | steps1 = 0; |
mjhaugsdal | 27:35c962e8e95b | 494 | //break; |
mjhaugsdal | 27:35c962e8e95b | 495 | //end if |
mjhaugsdal | 27:35c962e8e95b | 496 | m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 497 | } |
mjhaugsdal | 25:321b970eb3ff | 498 | } |
mjhaugsdal | 25:321b970eb3ff | 499 | |
mjhaugsdal | 27:35c962e8e95b | 500 | //MOTOR 1 RIGHT SIDE BUTTON |
mjhaugsdal | 25:321b970eb3ff | 501 | void pb2_hit_callback (void) |
mjhaugsdal | 25:321b970eb3ff | 502 | { |
mjhaugsdal | 25:321b970eb3ff | 503 | if(rest == false) |
mjhaugsdal | 25:321b970eb3ff | 504 | { |
mjhaugsdal | 25:321b970eb3ff | 505 | e1 = false; |
mjhaugsdal | 25:321b970eb3ff | 506 | //m_cmd = 'x'; |
mjhaugsdal | 23:ad08a8eabc24 | 507 | |
mjhaugsdal | 27:35c962e8e95b | 508 | speed = 2000; |
mjhaugsdal | 27:35c962e8e95b | 509 | Thread::wait(1000); |
mjhaugsdal | 27:35c962e8e95b | 510 | int stepsToCenter = 242; |
mjhaugsdal | 27:35c962e8e95b | 511 | |
mjhaugsdal | 27:35c962e8e95b | 512 | while (stepsToCenter >= 0) |
mjhaugsdal | 25:321b970eb3ff | 513 | { |
mjhaugsdal | 27:35c962e8e95b | 514 | stepEngine1Left(); |
mjhaugsdal | 27:35c962e8e95b | 515 | stepsToCenter --; |
mjhaugsdal | 25:321b970eb3ff | 516 | } |
mjhaugsdal | 27:35c962e8e95b | 517 | steps1 = 0; |
mjhaugsdal | 27:35c962e8e95b | 518 | m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 519 | } |
mjhaugsdal | 25:321b970eb3ff | 520 | } |
mjhaugsdal | 25:321b970eb3ff | 521 | //MOTOR 2 LEFT SIDE BUTTON |
mjhaugsdal | 25:321b970eb3ff | 522 | void pb3_hit_callback (void) |
mjhaugsdal | 25:321b970eb3ff | 523 | { |
mjhaugsdal | 25:321b970eb3ff | 524 | if(rest == false) |
mjhaugsdal | 25:321b970eb3ff | 525 | { |
mjhaugsdal | 25:321b970eb3ff | 526 | e2 = false; |
mjhaugsdal | 25:321b970eb3ff | 527 | //m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 528 | speed = 2000; |
mjhaugsdal | 25:321b970eb3ff | 529 | Thread::wait(1000); |
mjhaugsdal | 25:321b970eb3ff | 530 | int stepsToCenter = 242; |
mjhaugsdal | 25:321b970eb3ff | 531 | |
mjhaugsdal | 25:321b970eb3ff | 532 | while (stepsToCenter >= 0) |
mjhaugsdal | 25:321b970eb3ff | 533 | { |
mjhaugsdal | 27:35c962e8e95b | 534 | stepEngine2Right(); |
mjhaugsdal | 25:321b970eb3ff | 535 | stepsToCenter --; |
mjhaugsdal | 25:321b970eb3ff | 536 | } |
mjhaugsdal | 27:35c962e8e95b | 537 | steps2 = 0; |
mjhaugsdal | 27:35c962e8e95b | 538 | m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 539 | } |
mjhaugsdal | 23:ad08a8eabc24 | 540 | |
mjhaugsdal | 23:ad08a8eabc24 | 541 | } |
mjhaugsdal | 23:ad08a8eabc24 | 542 | |
mjhaugsdal | 25:321b970eb3ff | 543 | //MOTOR 2 RIGHT SIDE BUTTON |
mjhaugsdal | 25:321b970eb3ff | 544 | void pb4_hit_callback (void) |
mjhaugsdal | 25:321b970eb3ff | 545 | { |
mjhaugsdal | 25:321b970eb3ff | 546 | if(rest == false) |
mjhaugsdal | 25:321b970eb3ff | 547 | { |
mjhaugsdal | 25:321b970eb3ff | 548 | e2 = false; |
mjhaugsdal | 25:321b970eb3ff | 549 | //m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 550 | speed = 2000; |
mjhaugsdal | 25:321b970eb3ff | 551 | Thread::wait(1000); |
mjhaugsdal | 25:321b970eb3ff | 552 | int stepsToCenter = 242; |
mjhaugsdal | 25:321b970eb3ff | 553 | |
mjhaugsdal | 25:321b970eb3ff | 554 | while (stepsToCenter >= 0) |
mjhaugsdal | 25:321b970eb3ff | 555 | { |
mjhaugsdal | 27:35c962e8e95b | 556 | stepEngine2Left(); |
mjhaugsdal | 25:321b970eb3ff | 557 | stepsToCenter --; |
mjhaugsdal | 25:321b970eb3ff | 558 | } |
mjhaugsdal | 27:35c962e8e95b | 559 | steps2 = 0; |
mjhaugsdal | 27:35c962e8e95b | 560 | m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 561 | } |
mjhaugsdal | 25:321b970eb3ff | 562 | |
mjhaugsdal | 25:321b970eb3ff | 563 | |
mjhaugsdal | 25:321b970eb3ff | 564 | } |
mjhaugsdal | 25:321b970eb3ff | 565 | |
mjhaugsdal | 25:321b970eb3ff | 566 | //MOTOR 3 LEFT SIDE BUTTON |
mjhaugsdal | 25:321b970eb3ff | 567 | void pb5_hit_callback (void) |
mjhaugsdal | 25:321b970eb3ff | 568 | { |
mjhaugsdal | 25:321b970eb3ff | 569 | if(rest == false) |
mjhaugsdal | 25:321b970eb3ff | 570 | { |
mjhaugsdal | 25:321b970eb3ff | 571 | e3 = false; |
mjhaugsdal | 25:321b970eb3ff | 572 | //m_cmd = 'x'; |
mjhaugsdal | 27:35c962e8e95b | 573 | speed = 2500; |
mjhaugsdal | 25:321b970eb3ff | 574 | Thread::wait(1000); |
mjhaugsdal | 27:35c962e8e95b | 575 | int stepsToCenter = 200; |
mjhaugsdal | 25:321b970eb3ff | 576 | |
mjhaugsdal | 25:321b970eb3ff | 577 | while (stepsToCenter >= 0) |
mjhaugsdal | 25:321b970eb3ff | 578 | { |
mjhaugsdal | 25:321b970eb3ff | 579 | stepEngine3Left(); |
mjhaugsdal | 25:321b970eb3ff | 580 | stepsToCenter --; |
mjhaugsdal | 25:321b970eb3ff | 581 | } |
mjhaugsdal | 27:35c962e8e95b | 582 | steps3 = 0; |
mjhaugsdal | 27:35c962e8e95b | 583 | m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 584 | } |
mjhaugsdal | 25:321b970eb3ff | 585 | |
mjhaugsdal | 25:321b970eb3ff | 586 | |
mjhaugsdal | 25:321b970eb3ff | 587 | } |
mjhaugsdal | 25:321b970eb3ff | 588 | //MOTOR 3 RIGHT SIDE BUTTON |
mjhaugsdal | 25:321b970eb3ff | 589 | void pb6_hit_callback (void) |
mjhaugsdal | 25:321b970eb3ff | 590 | { |
mjhaugsdal | 27:35c962e8e95b | 591 | |
mjhaugsdal | 25:321b970eb3ff | 592 | if(rest == false) |
mjhaugsdal | 25:321b970eb3ff | 593 | { |
mjhaugsdal | 25:321b970eb3ff | 594 | e3 = false; |
mjhaugsdal | 25:321b970eb3ff | 595 | //m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 596 | speed = 2000; |
mjhaugsdal | 25:321b970eb3ff | 597 | Thread::wait(1000); |
mjhaugsdal | 27:35c962e8e95b | 598 | int stepsToCenter = 280; |
mjhaugsdal | 25:321b970eb3ff | 599 | |
mjhaugsdal | 25:321b970eb3ff | 600 | while (stepsToCenter >= 0) |
mjhaugsdal | 25:321b970eb3ff | 601 | { |
mjhaugsdal | 25:321b970eb3ff | 602 | stepEngine3Right(); |
mjhaugsdal | 25:321b970eb3ff | 603 | stepsToCenter --; |
mjhaugsdal | 25:321b970eb3ff | 604 | } |
mjhaugsdal | 27:35c962e8e95b | 605 | //reset steps and stop engine |
mjhaugsdal | 27:35c962e8e95b | 606 | steps3 = 0; |
mjhaugsdal | 27:35c962e8e95b | 607 | m_cmd = 'x'; |
mjhaugsdal | 25:321b970eb3ff | 608 | } |
mjhaugsdal | 25:321b970eb3ff | 609 | } |
mjhaugsdal | 23:ad08a8eabc24 | 610 | |
rlanghbv | 0:bd78e433db61 | 611 | int main() |
rlanghbv | 0:bd78e433db61 | 612 | { |
mjhaugsdal | 27:35c962e8e95b | 613 | int slowDown; |
mjhaugsdal | 24:24c91a6ae6ba | 614 | |
mjhaugsdal | 25:321b970eb3ff | 615 | pb1.mode(PullUp); |
mjhaugsdal | 25:321b970eb3ff | 616 | pb2.mode(PullUp); |
mjhaugsdal | 25:321b970eb3ff | 617 | pb3.mode(PullUp); |
mjhaugsdal | 25:321b970eb3ff | 618 | pb4.mode(PullUp); |
mjhaugsdal | 25:321b970eb3ff | 619 | pb5.mode(PullUp); |
mjhaugsdal | 25:321b970eb3ff | 620 | pb6.mode(PullUp); |
mjhaugsdal | 25:321b970eb3ff | 621 | |
mjhaugsdal | 25:321b970eb3ff | 622 | //Set up buttons 1 and 2 |
mjhaugsdal | 25:321b970eb3ff | 623 | pb1.attach_deasserted(&pb1_hit_callback); |
mjhaugsdal | 25:321b970eb3ff | 624 | pb1.setSampleFrequency(); |
mjhaugsdal | 25:321b970eb3ff | 625 | pb2.attach_deasserted(&pb2_hit_callback); |
mjhaugsdal | 25:321b970eb3ff | 626 | pb2.setSampleFrequency(); |
mjhaugsdal | 23:ad08a8eabc24 | 627 | |
mjhaugsdal | 1:a3287196a9b3 | 628 | //Thread 1 has constant feed from usb |
rlanghbv | 2:25bcc26f7a5b | 629 | Thread t1(input); |
mjhaugsdal | 22:f6e328f7bd28 | 630 | //static char global_direction; |
mjhaugsdal | 3:15be78948724 | 631 | printf("Started"); |
mjhaugsdal | 22:f6e328f7bd28 | 632 | |
mjhaugsdal | 24:24c91a6ae6ba | 633 | // Move motor in one direction |
mjhaugsdal | 24:24c91a6ae6ba | 634 | while (true) |
mjhaugsdal | 24:24c91a6ae6ba | 635 | { |
mjhaugsdal | 28:dac262b7ab32 | 636 | |
mjhaugsdal | 25:321b970eb3ff | 637 | |
mjhaugsdal | 25:321b970eb3ff | 638 | while(bootStep1 >= 0) |
mjhaugsdal | 25:321b970eb3ff | 639 | { |
mjhaugsdal | 25:321b970eb3ff | 640 | bootStep1--; |
mjhaugsdal | 25:321b970eb3ff | 641 | stepEngine1Right(); |
mjhaugsdal | 25:321b970eb3ff | 642 | } |
mjhaugsdal | 24:24c91a6ae6ba | 643 | stepEngine1Left(); |
mjhaugsdal | 24:24c91a6ae6ba | 644 | if (e1 == false) |
mjhaugsdal | 24:24c91a6ae6ba | 645 | { |
mjhaugsdal | 24:24c91a6ae6ba | 646 | Thread::wait(1000); |
mjhaugsdal | 25:321b970eb3ff | 647 | break; |
mjhaugsdal | 24:24c91a6ae6ba | 648 | }//end if |
mjhaugsdal | 25:321b970eb3ff | 649 | |
mjhaugsdal | 24:24c91a6ae6ba | 650 | }//end while |
mjhaugsdal | 25:321b970eb3ff | 651 | |
mjhaugsdal | 25:321b970eb3ff | 652 | //Set up buttons 3 and 4 |
mjhaugsdal | 25:321b970eb3ff | 653 | pb3.attach_deasserted(&pb3_hit_callback); |
mjhaugsdal | 25:321b970eb3ff | 654 | pb3.setSampleFrequency(); |
mjhaugsdal | 25:321b970eb3ff | 655 | pb4.attach_deasserted(&pb4_hit_callback); |
mjhaugsdal | 25:321b970eb3ff | 656 | pb4.setSampleFrequency(); |
mjhaugsdal | 25:321b970eb3ff | 657 | |
mjhaugsdal | 24:24c91a6ae6ba | 658 | while (true) |
mjhaugsdal | 24:24c91a6ae6ba | 659 | { |
mjhaugsdal | 25:321b970eb3ff | 660 | |
mjhaugsdal | 25:321b970eb3ff | 661 | speed = 2000; |
mjhaugsdal | 25:321b970eb3ff | 662 | while(bootStep2 >= 0) |
mjhaugsdal | 25:321b970eb3ff | 663 | { |
mjhaugsdal | 25:321b970eb3ff | 664 | bootStep2--; |
mjhaugsdal | 25:321b970eb3ff | 665 | stepEngine2Right(); |
mjhaugsdal | 25:321b970eb3ff | 666 | |
mjhaugsdal | 25:321b970eb3ff | 667 | } |
mjhaugsdal | 25:321b970eb3ff | 668 | |
mjhaugsdal | 25:321b970eb3ff | 669 | stepEngine2Left(); |
mjhaugsdal | 24:24c91a6ae6ba | 670 | if (e2 == false) |
mjhaugsdal | 24:24c91a6ae6ba | 671 | { |
mjhaugsdal | 27:35c962e8e95b | 672 | |
mjhaugsdal | 25:321b970eb3ff | 673 | Thread::wait(1000); |
mjhaugsdal | 24:24c91a6ae6ba | 674 | break; |
mjhaugsdal | 24:24c91a6ae6ba | 675 | }//end if |
mjhaugsdal | 24:24c91a6ae6ba | 676 | } |
mjhaugsdal | 25:321b970eb3ff | 677 | |
mjhaugsdal | 25:321b970eb3ff | 678 | pb5.attach_deasserted(&pb5_hit_callback); |
mjhaugsdal | 25:321b970eb3ff | 679 | pb5.setSampleFrequency(); |
mjhaugsdal | 25:321b970eb3ff | 680 | pb6.attach_deasserted(&pb6_hit_callback); |
mjhaugsdal | 25:321b970eb3ff | 681 | pb6.setSampleFrequency(); |
mjhaugsdal | 24:24c91a6ae6ba | 682 | while (true) |
mjhaugsdal | 24:24c91a6ae6ba | 683 | { |
mjhaugsdal | 27:35c962e8e95b | 684 | //speed = 2000; |
mjhaugsdal | 25:321b970eb3ff | 685 | while(bootStep3 >= 0) |
mjhaugsdal | 25:321b970eb3ff | 686 | { |
mjhaugsdal | 25:321b970eb3ff | 687 | bootStep3--; |
mjhaugsdal | 25:321b970eb3ff | 688 | stepEngine3Right(); |
mjhaugsdal | 25:321b970eb3ff | 689 | |
mjhaugsdal | 25:321b970eb3ff | 690 | } |
mjhaugsdal | 25:321b970eb3ff | 691 | stepEngine3Left(); |
mjhaugsdal | 24:24c91a6ae6ba | 692 | if (e3 == false) |
mjhaugsdal | 24:24c91a6ae6ba | 693 | { |
mjhaugsdal | 27:35c962e8e95b | 694 | //pc.printf("HALLO"); |
mjhaugsdal | 28:dac262b7ab32 | 695 | m_cmd = "z"; |
mjhaugsdal | 24:24c91a6ae6ba | 696 | Thread::wait(1000); |
mjhaugsdal | 24:24c91a6ae6ba | 697 | break; |
mjhaugsdal | 24:24c91a6ae6ba | 698 | }//end if |
mjhaugsdal | 24:24c91a6ae6ba | 699 | } |
mjhaugsdal | 24:24c91a6ae6ba | 700 | |
mjhaugsdal | 28:dac262b7ab32 | 701 | //normal runtime |
mjhaugsdal | 1:a3287196a9b3 | 702 | while (true) |
mjhaugsdal | 22:f6e328f7bd28 | 703 | { |
mjhaugsdal | 28:dac262b7ab32 | 704 | |
mjhaugsdal | 28:dac262b7ab32 | 705 | //user button to turn off engines |
mjhaugsdal | 28:dac262b7ab32 | 706 | if(SW==1) |
mjhaugsdal | 28:dac262b7ab32 | 707 | { |
mjhaugsdal | 28:dac262b7ab32 | 708 | //put engines to sleep |
mjhaugsdal | 28:dac262b7ab32 | 709 | m_cmd ="z"; |
mjhaugsdal | 28:dac262b7ab32 | 710 | |
mjhaugsdal | 28:dac262b7ab32 | 711 | |
mjhaugsdal | 28:dac262b7ab32 | 712 | } |
mjhaugsdal | 28:dac262b7ab32 | 713 | //set the speed. Higher = slower |
mjhaugsdal | 28:dac262b7ab32 | 714 | speed = 2000; |
mjhaugsdal | 27:35c962e8e95b | 715 | //speed = 1500; |
mjhaugsdal | 24:24c91a6ae6ba | 716 | |
mjhaugsdal | 27:35c962e8e95b | 717 | switch (m_cmd) |
mjhaugsdal | 27:35c962e8e95b | 718 | { |
mjhaugsdal | 27:35c962e8e95b | 719 | case '7': |
mjhaugsdal | 27:35c962e8e95b | 720 | cmd = '7'; |
mjhaugsdal | 27:35c962e8e95b | 721 | break; |
mjhaugsdal | 27:35c962e8e95b | 722 | |
mjhaugsdal | 27:35c962e8e95b | 723 | case '9': |
mjhaugsdal | 27:35c962e8e95b | 724 | cmd = '9'; |
mjhaugsdal | 27:35c962e8e95b | 725 | break; |
mjhaugsdal | 27:35c962e8e95b | 726 | |
mjhaugsdal | 27:35c962e8e95b | 727 | case '4': |
mjhaugsdal | 27:35c962e8e95b | 728 | cmd= '4'; |
mjhaugsdal | 27:35c962e8e95b | 729 | break; |
mjhaugsdal | 27:35c962e8e95b | 730 | |
mjhaugsdal | 27:35c962e8e95b | 731 | case '6': |
mjhaugsdal | 27:35c962e8e95b | 732 | cmd = '6'; |
mjhaugsdal | 27:35c962e8e95b | 733 | break; |
mjhaugsdal | 27:35c962e8e95b | 734 | |
mjhaugsdal | 27:35c962e8e95b | 735 | case '1': |
mjhaugsdal | 27:35c962e8e95b | 736 | cmd = '1'; |
mjhaugsdal | 27:35c962e8e95b | 737 | break; |
mjhaugsdal | 27:35c962e8e95b | 738 | |
mjhaugsdal | 27:35c962e8e95b | 739 | case '3': |
mjhaugsdal | 27:35c962e8e95b | 740 | cmd = '3'; |
mjhaugsdal | 27:35c962e8e95b | 741 | break; |
mjhaugsdal | 27:35c962e8e95b | 742 | |
mjhaugsdal | 27:35c962e8e95b | 743 | case 'x': |
mjhaugsdal | 27:35c962e8e95b | 744 | cmd = 'x'; |
mjhaugsdal | 27:35c962e8e95b | 745 | break; |
mjhaugsdal | 27:35c962e8e95b | 746 | |
mjhaugsdal | 27:35c962e8e95b | 747 | //release motors |
mjhaugsdal | 27:35c962e8e95b | 748 | case 'z': |
mjhaugsdal | 27:35c962e8e95b | 749 | |
mjhaugsdal | 27:35c962e8e95b | 750 | //step all motors to the middle |
mjhaugsdal | 27:35c962e8e95b | 751 | |
mjhaugsdal | 27:35c962e8e95b | 752 | while(steps1 > 0) |
mjhaugsdal | 27:35c962e8e95b | 753 | { |
mjhaugsdal | 27:35c962e8e95b | 754 | stepEngine1Left(); |
mjhaugsdal | 27:35c962e8e95b | 755 | steps1--; |
mjhaugsdal | 27:35c962e8e95b | 756 | } |
mjhaugsdal | 27:35c962e8e95b | 757 | while(steps1 < 0) |
mjhaugsdal | 27:35c962e8e95b | 758 | { |
mjhaugsdal | 27:35c962e8e95b | 759 | stepEngine1Right(); |
mjhaugsdal | 27:35c962e8e95b | 760 | steps1++; |
mjhaugsdal | 27:35c962e8e95b | 761 | } |
mjhaugsdal | 27:35c962e8e95b | 762 | |
mjhaugsdal | 27:35c962e8e95b | 763 | while(steps2 > 0) |
mjhaugsdal | 27:35c962e8e95b | 764 | { |
mjhaugsdal | 27:35c962e8e95b | 765 | stepEngine2Left(); |
mjhaugsdal | 27:35c962e8e95b | 766 | steps2--; |
mjhaugsdal | 27:35c962e8e95b | 767 | } |
mjhaugsdal | 27:35c962e8e95b | 768 | while(steps2 < 0) |
mjhaugsdal | 27:35c962e8e95b | 769 | { |
mjhaugsdal | 27:35c962e8e95b | 770 | stepEngine2Right(); |
mjhaugsdal | 27:35c962e8e95b | 771 | steps2++; |
mjhaugsdal | 27:35c962e8e95b | 772 | } |
mjhaugsdal | 27:35c962e8e95b | 773 | |
mjhaugsdal | 27:35c962e8e95b | 774 | while(steps3 > 0) |
mjhaugsdal | 27:35c962e8e95b | 775 | { |
mjhaugsdal | 27:35c962e8e95b | 776 | stepEngine3Left(); |
mjhaugsdal | 27:35c962e8e95b | 777 | steps3--; |
mjhaugsdal | 27:35c962e8e95b | 778 | } |
mjhaugsdal | 27:35c962e8e95b | 779 | while(steps3 < 0) |
mjhaugsdal | 27:35c962e8e95b | 780 | { |
mjhaugsdal | 27:35c962e8e95b | 781 | stepEngine3Right(); |
mjhaugsdal | 27:35c962e8e95b | 782 | steps3++; |
mjhaugsdal | 27:35c962e8e95b | 783 | } |
mjhaugsdal | 27:35c962e8e95b | 784 | |
mjhaugsdal | 27:35c962e8e95b | 785 | cmd = 'z'; |
mjhaugsdal | 27:35c962e8e95b | 786 | |
mjhaugsdal | 27:35c962e8e95b | 787 | |
mjhaugsdal | 27:35c962e8e95b | 788 | break; |
mjhaugsdal | 27:35c962e8e95b | 789 | |
mjhaugsdal | 27:35c962e8e95b | 790 | } |
mjhaugsdal | 27:35c962e8e95b | 791 | |
mjhaugsdal | 21:9f3ae352ee63 | 792 | //Release all motors / Set all pins to 0 |
mjhaugsdal | 27:35c962e8e95b | 793 | if (cmd == 'z') |
mjhaugsdal | 18:ef02a9014491 | 794 | { |
mjhaugsdal | 18:ef02a9014491 | 795 | stopAll(); |
mjhaugsdal | 19:79600d3509d7 | 796 | } |
mjhaugsdal | 21:9f3ae352ee63 | 797 | //Make all engines halt and hold still. |
mjhaugsdal | 27:35c962e8e95b | 798 | if (cmd == 'x') |
mjhaugsdal | 19:79600d3509d7 | 799 | { |
mjhaugsdal | 27:35c962e8e95b | 800 | hold(); |
mjhaugsdal | 28:dac262b7ab32 | 801 | Thread::wait(1000); |
mjhaugsdal | 28:dac262b7ab32 | 802 | m_cmd = 'z'; |
mjhaugsdal | 27:35c962e8e95b | 803 | |
mjhaugsdal | 18:ef02a9014491 | 804 | } |
mjhaugsdal | 25:321b970eb3ff | 805 | |
mjhaugsdal | 25:321b970eb3ff | 806 | //Rest mode. Make the engines ignore pushbuttons. |
mjhaugsdal | 25:321b970eb3ff | 807 | /* |
mjhaugsdal | 25:321b970eb3ff | 808 | if(m_cmd == 'r') |
mjhaugsdal | 25:321b970eb3ff | 809 | { |
mjhaugsdal | 25:321b970eb3ff | 810 | rest = true; |
mjhaugsdal | 25:321b970eb3ff | 811 | //Step motors to rest position |
mjhaugsdal | 25:321b970eb3ff | 812 | |
mjhaugsdal | 25:321b970eb3ff | 813 | } |
mjhaugsdal | 25:321b970eb3ff | 814 | */ |
mjhaugsdal | 19:79600d3509d7 | 815 | |
mjhaugsdal | 21:9f3ae352ee63 | 816 | //Controlling each motor seperately. |
mjhaugsdal | 25:321b970eb3ff | 817 | //ENGINE 3 |
mjhaugsdal | 27:35c962e8e95b | 818 | if(cmd == '7' && steps3 > -200) |
mjhaugsdal | 19:79600d3509d7 | 819 | { |
mjhaugsdal | 25:321b970eb3ff | 820 | rest = false; |
mjhaugsdal | 22:f6e328f7bd28 | 821 | |
mjhaugsdal | 24:24c91a6ae6ba | 822 | steps3 --; |
mjhaugsdal | 24:24c91a6ae6ba | 823 | stepEngine3Left(); |
mjhaugsdal | 27:35c962e8e95b | 824 | |
mjhaugsdal | 24:24c91a6ae6ba | 825 | } |
mjhaugsdal | 27:35c962e8e95b | 826 | else if (cmd == '9' && steps3 < 280) |
mjhaugsdal | 24:24c91a6ae6ba | 827 | { |
mjhaugsdal | 25:321b970eb3ff | 828 | rest = false; |
mjhaugsdal | 23:ad08a8eabc24 | 829 | stepEngine3Right(); |
mjhaugsdal | 24:24c91a6ae6ba | 830 | steps3 ++; |
mjhaugsdal | 19:79600d3509d7 | 831 | } |
mjhaugsdal | 19:79600d3509d7 | 832 | //ENGINE 2 |
mjhaugsdal | 27:35c962e8e95b | 833 | else if (cmd == '4' && steps2 > -242) |
mjhaugsdal | 19:79600d3509d7 | 834 | { |
mjhaugsdal | 25:321b970eb3ff | 835 | rest = false; |
mjhaugsdal | 24:24c91a6ae6ba | 836 | steps2 --; |
mjhaugsdal | 19:79600d3509d7 | 837 | stepEngine2Left(); |
mjhaugsdal | 19:79600d3509d7 | 838 | } |
mjhaugsdal | 27:35c962e8e95b | 839 | else if (cmd == '6' && steps2 < 242) |
mjhaugsdal | 19:79600d3509d7 | 840 | { |
mjhaugsdal | 25:321b970eb3ff | 841 | rest = false; |
mjhaugsdal | 24:24c91a6ae6ba | 842 | steps2 ++; |
mjhaugsdal | 19:79600d3509d7 | 843 | stepEngine2Right(); |
mjhaugsdal | 19:79600d3509d7 | 844 | } |
mjhaugsdal | 19:79600d3509d7 | 845 | //ENGINE 3 |
mjhaugsdal | 27:35c962e8e95b | 846 | else if (cmd == '1' && steps1 > -242) |
mjhaugsdal | 19:79600d3509d7 | 847 | { |
mjhaugsdal | 25:321b970eb3ff | 848 | rest = false; |
mjhaugsdal | 24:24c91a6ae6ba | 849 | steps1--; |
mjhaugsdal | 23:ad08a8eabc24 | 850 | stepEngine1Left(); |
mjhaugsdal | 19:79600d3509d7 | 851 | } |
mjhaugsdal | 27:35c962e8e95b | 852 | else if (cmd == '3' && steps1 < 242) |
mjhaugsdal | 19:79600d3509d7 | 853 | { |
mjhaugsdal | 25:321b970eb3ff | 854 | rest = false; |
mjhaugsdal | 24:24c91a6ae6ba | 855 | steps1++; |
mjhaugsdal | 23:ad08a8eabc24 | 856 | stepEngine1Right(); |
mjhaugsdal | 19:79600d3509d7 | 857 | } |
mjhaugsdal | 23:ad08a8eabc24 | 858 | |
mjhaugsdal | 27:35c962e8e95b | 859 | if (m_cmd == 'y') |
mjhaugsdal | 27:35c962e8e95b | 860 | { |
mjhaugsdal | 27:35c962e8e95b | 861 | int step = 100; |
mjhaugsdal | 27:35c962e8e95b | 862 | while (step >= 0) |
mjhaugsdal | 27:35c962e8e95b | 863 | { |
mjhaugsdal | 27:35c962e8e95b | 864 | step--; |
mjhaugsdal | 27:35c962e8e95b | 865 | step2Left3Right(); |
mjhaugsdal | 27:35c962e8e95b | 866 | } |
mjhaugsdal | 27:35c962e8e95b | 867 | m_cmd = 'x'; |
mjhaugsdal | 27:35c962e8e95b | 868 | |
mjhaugsdal | 27:35c962e8e95b | 869 | } |
mjhaugsdal | 27:35c962e8e95b | 870 | |
mjhaugsdal | 27:35c962e8e95b | 871 | if (m_cmd == 't') |
mjhaugsdal | 27:35c962e8e95b | 872 | { |
mjhaugsdal | 27:35c962e8e95b | 873 | int step1, step2, step3; |
mjhaugsdal | 27:35c962e8e95b | 874 | step1 = 100; |
mjhaugsdal | 27:35c962e8e95b | 875 | step2 = 60; |
mjhaugsdal | 27:35c962e8e95b | 876 | step3 = 70; |
mjhaugsdal | 27:35c962e8e95b | 877 | |
mjhaugsdal | 27:35c962e8e95b | 878 | while (step1 > 0) |
mjhaugsdal | 27:35c962e8e95b | 879 | { |
mjhaugsdal | 27:35c962e8e95b | 880 | stepEngine1Left(); |
mjhaugsdal | 27:35c962e8e95b | 881 | step1--; |
mjhaugsdal | 27:35c962e8e95b | 882 | //global stepcounter |
mjhaugsdal | 27:35c962e8e95b | 883 | steps1--; |
mjhaugsdal | 27:35c962e8e95b | 884 | } |
mjhaugsdal | 27:35c962e8e95b | 885 | while(step2 > 0) |
mjhaugsdal | 27:35c962e8e95b | 886 | { |
mjhaugsdal | 27:35c962e8e95b | 887 | stepEngine2Right(); |
mjhaugsdal | 27:35c962e8e95b | 888 | step2--; |
mjhaugsdal | 27:35c962e8e95b | 889 | //global stepcounter |
mjhaugsdal | 27:35c962e8e95b | 890 | steps2++; |
mjhaugsdal | 27:35c962e8e95b | 891 | } |
mjhaugsdal | 27:35c962e8e95b | 892 | while(step3 > 0) |
mjhaugsdal | 27:35c962e8e95b | 893 | { |
mjhaugsdal | 27:35c962e8e95b | 894 | stepEngine3Left(); |
mjhaugsdal | 27:35c962e8e95b | 895 | step3--; |
mjhaugsdal | 27:35c962e8e95b | 896 | //global stepcounter |
mjhaugsdal | 27:35c962e8e95b | 897 | steps3--; |
mjhaugsdal | 27:35c962e8e95b | 898 | } |
mjhaugsdal | 27:35c962e8e95b | 899 | |
mjhaugsdal | 28:dac262b7ab32 | 900 | //m_cmd = 'x'; |
mjhaugsdal | 27:35c962e8e95b | 901 | |
mjhaugsdal | 27:35c962e8e95b | 902 | } |
mjhaugsdal | 25:321b970eb3ff | 903 | |
mjhaugsdal | 25:321b970eb3ff | 904 | |
mjhaugsdal | 23:ad08a8eabc24 | 905 | |
mjhaugsdal | 25:321b970eb3ff | 906 | //Thread::wait(10); |
mjhaugsdal | 25:321b970eb3ff | 907 | //pc.printf("%d", steps2); |
mjhaugsdal | 5:fdc7a779d525 | 908 | |
mjhaugsdal | 4:4d655fdae399 | 909 | |
mjhaugsdal | 24:24c91a6ae6ba | 910 | } //END WHILE TRUE |
mjhaugsdal | 1:a3287196a9b3 | 911 | |
mjhaugsdal | 3:15be78948724 | 912 | } //END Main |