Pop lock n drop it

Dependencies:   m3pi_ng mbed

Committer:
vsal
Date:
Mon Jun 02 09:47:01 2014 +0000
Revision:
11:af3d70d153bb
Parent:
10:86cb40bf1c17
Final from June 2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vsal 0:80d9725a7342 1 #include "mbed.h"
vsal 0:80d9725a7342 2 #include "m3pi_ng.h"
vsal 3:6f773c2ba3a0 3 #include "DigitalIn.h"
vsal 8:09f4495696d2 4 #include "btbee.h"
vsal 9:493011bacdcd 5 #include "time.h"
vsal 8:09f4495696d2 6
vsal 0:80d9725a7342 7
vsal 0:80d9725a7342 8 DigitalOut myled(LED1);
vsal 0:80d9725a7342 9 m3pi huey;
vsal 8:09f4495696d2 10 btbee btbee;
vsal 8:09f4495696d2 11
vsal 3:6f773c2ba3a0 12 DigitalIn m3pi_IN[]={(p12),(p21)}; // IR-Sensor
vsal 8:09f4495696d2 13 DigitalOut mbed_led[] = {(LED1), (LED2),(LED3), (LED4)};
vsal 8:09f4495696d2 14 DigitalOut m3pi_led[] = {(p13), (p14), (p15), (p16), (p17), (p18), (p19), (p20)};
vsal 8:09f4495696d2 15 DigitalIn m3pi_pb(p21);
vsal 1:ac7fc0b5f878 16
vsal 1:ac7fc0b5f878 17 void printBattery()
vsal 1:ac7fc0b5f878 18 {
vsal 0:80d9725a7342 19 //prints battery voltage on led screen
vsal 0:80d9725a7342 20 float bat = huey.battery();
vsal 1:ac7fc0b5f878 21 huey.printf("Bat volt");
vsal 1:ac7fc0b5f878 22 huey.locate(0,1);
vsal 1:ac7fc0b5f878 23 huey.printf("%f",bat);
vsal 1:ac7fc0b5f878 24 }
vsal 1:ac7fc0b5f878 25
vsal 4:14b00a82d206 26 float myLinePos(void)
vsal 4:14b00a82d206 27 {
vsal 4:14b00a82d206 28 int sensors[5];
vsal 4:14b00a82d206 29 huey.calibrated_sensor(sensors);
vsal 7:d0c19729e7fd 30 //oat leftSen, rightSen, midSen;
vsal 7:d0c19729e7fd 31 //ftSen = sensors[1] / 1000;
vsal 7:d0c19729e7fd 32 //ghtSen = sensors[3] / 1000;
vsal 7:d0c19729e7fd 33 //dSen = sensors[2] / 1000;
vsal 7:d0c19729e7fd 34 float val;
vsal 10:86cb40bf1c17 35 if(sensors[1] < 50 && sensors[2] < 50 && sensors[3] < 50)
vsal 10:86cb40bf1c17 36 return -1;
vsal 10:86cb40bf1c17 37 else
vsal 10:86cb40bf1c17 38 {
vsal 10:86cb40bf1c17 39 val = (((1000*sensors[2] + 2000*sensors[3])/(sensors[1]+sensors[2]+sensors[3])));
vsal 10:86cb40bf1c17 40 return (-1)+(val/1000);
vsal 10:86cb40bf1c17 41 }
vsal 4:14b00a82d206 42 }
vsal 4:14b00a82d206 43
vsal 8:09f4495696d2 44 int rightCorner()
vsal 8:09f4495696d2 45 {
vsal 8:09f4495696d2 46 int sensors[5];
vsal 8:09f4495696d2 47 huey.calibrated_sensor(sensors);
vsal 10:86cb40bf1c17 48 if(sensors[4] > 950)
vsal 8:09f4495696d2 49 return 1;
vsal 8:09f4495696d2 50 else
vsal 8:09f4495696d2 51 return 0;
vsal 8:09f4495696d2 52 }
vsal 8:09f4495696d2 53
vsal 8:09f4495696d2 54 int leftCorner()
vsal 8:09f4495696d2 55 {
vsal 8:09f4495696d2 56 int sensors[5];
vsal 8:09f4495696d2 57 huey.calibrated_sensor(sensors);
vsal 10:86cb40bf1c17 58 if(sensors[0] > 950)
vsal 8:09f4495696d2 59 return 1;
vsal 8:09f4495696d2 60 else
vsal 8:09f4495696d2 61 return 0;
vsal 8:09f4495696d2 62 }
vsal 8:09f4495696d2 63
vsal 10:86cb40bf1c17 64 //returns 0 if side sensors aren't light, 1 if light
vsal 10:86cb40bf1c17 65 int sideSensorsLight(void)
vsal 10:86cb40bf1c17 66 {
vsal 10:86cb40bf1c17 67 int sensors[5];
vsal 10:86cb40bf1c17 68 huey.calibrated_sensor(sensors);
vsal 10:86cb40bf1c17 69 if(sensors[4] > 50 && sensors[0] > 50)
vsal 10:86cb40bf1c17 70 return 0;
vsal 10:86cb40bf1c17 71 else
vsal 10:86cb40bf1c17 72 return 1;
vsal 10:86cb40bf1c17 73 }
vsal 10:86cb40bf1c17 74
vsal 10:86cb40bf1c17 75 //returns 0 if side sensors aren't dark, 1 if dark
vsal 10:86cb40bf1c17 76 int sideSensorsDark(void)
vsal 9:493011bacdcd 77 {
vsal 9:493011bacdcd 78 if(rightCorner() == 1 && leftCorner() == 1)
vsal 10:86cb40bf1c17 79 return 1;
vsal 10:86cb40bf1c17 80 else
vsal 10:86cb40bf1c17 81 return 0;
vsal 10:86cb40bf1c17 82 }
vsal 10:86cb40bf1c17 83
vsal 10:86cb40bf1c17 84 void rightTurn(float speed)
vsal 10:86cb40bf1c17 85 {
vsal 10:86cb40bf1c17 86 int side = sideSensorsLight();
vsal 10:86cb40bf1c17 87 huey.forward(speed/2);
vsal 10:86cb40bf1c17 88 while(side == 0)
vsal 9:493011bacdcd 89 {
vsal 10:86cb40bf1c17 90 side = sideSensorsLight();
vsal 9:493011bacdcd 91 }
vsal 10:86cb40bf1c17 92 wait(0.20);
vsal 10:86cb40bf1c17 93 float pos = myLinePos();
vsal 10:86cb40bf1c17 94 huey.right(speed/2);
vsal 10:86cb40bf1c17 95 while(pos > -0.1 && pos < 0.1)
vsal 9:493011bacdcd 96 {
vsal 10:86cb40bf1c17 97 pos = myLinePos();
vsal 9:493011bacdcd 98 }
vsal 10:86cb40bf1c17 99 pos = myLinePos();
vsal 10:86cb40bf1c17 100 while(pos > 0.05 || pos < -0.05)
vsal 10:86cb40bf1c17 101 {
vsal 10:86cb40bf1c17 102 pos = myLinePos();
vsal 10:86cb40bf1c17 103 }
vsal 9:493011bacdcd 104 }
vsal 10:86cb40bf1c17 105
vsal 10:86cb40bf1c17 106 void leftTurn(float speed)
vsal 10:86cb40bf1c17 107 {
vsal 10:86cb40bf1c17 108 int side = sideSensorsLight();
vsal 10:86cb40bf1c17 109 huey.forward(speed/2);
vsal 10:86cb40bf1c17 110 while(side == 0)
vsal 10:86cb40bf1c17 111 {
vsal 10:86cb40bf1c17 112 side = sideSensorsLight();
vsal 10:86cb40bf1c17 113 }
vsal 10:86cb40bf1c17 114 wait(0.20);
vsal 10:86cb40bf1c17 115
vsal 10:86cb40bf1c17 116 float pos = myLinePos();
vsal 10:86cb40bf1c17 117 huey.left(speed/2);
vsal 10:86cb40bf1c17 118 while(pos > -0.1 && pos < 0.1)
vsal 10:86cb40bf1c17 119 {
vsal 10:86cb40bf1c17 120 pos = myLinePos();
vsal 10:86cb40bf1c17 121 }
vsal 10:86cb40bf1c17 122 pos = myLinePos();
vsal 10:86cb40bf1c17 123 while(pos > 0.05 || pos < -0.05)
vsal 10:86cb40bf1c17 124 {
vsal 10:86cb40bf1c17 125 pos = myLinePos();
vsal 10:86cb40bf1c17 126 }
vsal 10:86cb40bf1c17 127 }
vsal 10:86cb40bf1c17 128
vsal 11:af3d70d153bb 129 void turnAround(float speed)
vsal 11:af3d70d153bb 130 {
vsal 11:af3d70d153bb 131 float pos = myLinePos();
vsal 11:af3d70d153bb 132 huey.right(speed/2);
vsal 11:af3d70d153bb 133 while(pos > -0.1 && pos < 0.1)
vsal 11:af3d70d153bb 134 {
vsal 11:af3d70d153bb 135 pos = myLinePos();
vsal 11:af3d70d153bb 136 }
vsal 11:af3d70d153bb 137 pos = myLinePos();
vsal 11:af3d70d153bb 138 while(pos > 0.05 || pos < -0.05)
vsal 11:af3d70d153bb 139 {
vsal 11:af3d70d153bb 140 pos = myLinePos();
vsal 11:af3d70d153bb 141 }
vsal 11:af3d70d153bb 142 while(pos > -0.1 && pos < 0.1)
vsal 11:af3d70d153bb 143 {
vsal 11:af3d70d153bb 144 pos = myLinePos();
vsal 11:af3d70d153bb 145 }
vsal 11:af3d70d153bb 146 pos = myLinePos();
vsal 11:af3d70d153bb 147 while(pos > 0.05 || pos < -0.05)
vsal 11:af3d70d153bb 148 {
vsal 11:af3d70d153bb 149 pos = myLinePos();
vsal 11:af3d70d153bb 150 }
vsal 11:af3d70d153bb 151 }
vsal 11:af3d70d153bb 152
vsal 11:af3d70d153bb 153 //returns 1 for all turns, 0 for non turns, 2 for end of a task;
vsal 11:af3d70d153bb 154 int smoothFollow(float position, float speed, char direction)
vsal 1:ac7fc0b5f878 155 {
vsal 4:14b00a82d206 156 float u = speed;
vsal 1:ac7fc0b5f878 157 u = u * position;
vsal 11:af3d70d153bb 158
vsal 11:af3d70d153bb 159 if(rightCorner() == 1 && direction == 'R')
vsal 10:86cb40bf1c17 160 {
vsal 10:86cb40bf1c17 161 rightTurn(speed);
vsal 11:af3d70d153bb 162 huey.printf("R");
vsal 11:af3d70d153bb 163 return 1;
vsal 9:493011bacdcd 164 }
vsal 11:af3d70d153bb 165 else if(leftCorner() == 1 && direction == 'L')
vsal 9:493011bacdcd 166 {
vsal 10:86cb40bf1c17 167 leftTurn(speed);
vsal 11:af3d70d153bb 168 huey.printf("L");
vsal 11:af3d70d153bb 169 return 1;
vsal 11:af3d70d153bb 170 }
vsal 11:af3d70d153bb 171 else if(sideSensorsDark() == 1 && direction == 'E')
vsal 11:af3d70d153bb 172 {
vsal 11:af3d70d153bb 173 turnAround(speed);
vsal 11:af3d70d153bb 174 huey.stop();
vsal 11:af3d70d153bb 175 return 2;
vsal 11:af3d70d153bb 176 }
vsal 11:af3d70d153bb 177 else if((rightCorner() == 1 || leftCorner() == 1) && direction == 'S')
vsal 11:af3d70d153bb 178 {
vsal 10:86cb40bf1c17 179 int side = sideSensorsLight();
vsal 10:86cb40bf1c17 180 huey.forward(speed/2);
vsal 10:86cb40bf1c17 181 while(side == 0)
vsal 10:86cb40bf1c17 182 {
vsal 10:86cb40bf1c17 183 side = sideSensorsLight();
vsal 10:86cb40bf1c17 184 }
vsal 11:af3d70d153bb 185 return 1;
vsal 9:493011bacdcd 186 }
vsal 9:493011bacdcd 187 else if(speed+u > 1)
vsal 9:493011bacdcd 188 {
vsal 9:493011bacdcd 189 huey.stop();
vsal 9:493011bacdcd 190 huey.printf("Fast Er");
vsal 11:af3d70d153bb 191 return 0;
vsal 9:493011bacdcd 192 }
vsal 9:493011bacdcd 193 else
vsal 9:493011bacdcd 194 {
vsal 9:493011bacdcd 195 huey.right_motor(speed-u);
vsal 9:493011bacdcd 196 huey.left_motor(speed+u);
vsal 11:af3d70d153bb 197 return 0;
vsal 9:493011bacdcd 198 }
vsal 1:ac7fc0b5f878 199 }
vsal 1:ac7fc0b5f878 200
vsal 9:493011bacdcd 201
vsal 9:493011bacdcd 202
vsal 11:af3d70d153bb 203 /*
vsal 3:6f773c2ba3a0 204 void slowStop(float speed, float waitTime, int steps)
vsal 1:ac7fc0b5f878 205 {
vsal 3:6f773c2ba3a0 206 float i;
vsal 3:6f773c2ba3a0 207 for(i = speed; i > 0; i = i - (speed/steps))
vsal 1:ac7fc0b5f878 208 {
vsal 10:86cb40bf1c17 209
vsal 3:6f773c2ba3a0 210 smoothFollow(huey.line_position(),i);
vsal 3:6f773c2ba3a0 211 wait(waitTime);
vsal 1:ac7fc0b5f878 212 }
vsal 3:6f773c2ba3a0 213 huey.stop();
vsal 1:ac7fc0b5f878 214 }
vsal 11:af3d70d153bb 215 */
vsal 3:6f773c2ba3a0 216
vsal 3:6f773c2ba3a0 217 int pushToStart(void)
vsal 3:6f773c2ba3a0 218 {
vsal 3:6f773c2ba3a0 219 DigitalIn button(p21);
vsal 3:6f773c2ba3a0 220 int value = button.read();
vsal 3:6f773c2ba3a0 221 return value;
vsal 3:6f773c2ba3a0 222 }
vsal 3:6f773c2ba3a0 223
vsal 3:6f773c2ba3a0 224
vsal 8:09f4495696d2 225
vsal 3:6f773c2ba3a0 226 /////////////////////////////////////////////////////////////////
vsal 1:ac7fc0b5f878 227 int main() {
vsal 10:86cb40bf1c17 228
vsal 10:86cb40bf1c17 229
vsal 10:86cb40bf1c17 230 //Matrix of paths from one point to another: Right = R, Left = L, Straight = S
vsal 11:af3d70d153bb 231 char map[6][6][20] =
vsal 10:86cb40bf1c17 232 {
vsal 11:af3d70d153bb 233 {"", "LRLLRE", "LRLSSE", "LRLSRLLE", "LRRLSLRRRLE", "LRRLRE"},
vsal 11:af3d70d153bb 234 {"LRRLRE", "", "LLSE", "LLRLLE", "LSRLRRLE", "LRSLRE"},
vsal 11:af3d70d153bb 235 {"SSRLRE", "SRRE", "", "LLLE", "LLRSRLE", "SSSLRE"},
vsal 11:af3d70d153bb 236 {"RLSRLRE", "RLRRE", "RRE", "", "SSRLE", "SRLRLE"},
vsal 11:af3d70d153bb 237 {"RLLLRSRLLRE", "RLLRLSRE", "RLSLRE", "RLSSE", "", "RLLLRLE"},
vsal 11:af3d70d153bb 238 {"LRLLRE", "LRSLRE", "LRSSSE", "RLRLSE", "RLRRRLE", ""}
vsal 11:af3d70d153bb 239 };
vsal 10:86cb40bf1c17 240
vsal 11:af3d70d153bb 241 int points[3] = {1,2,4};
vsal 10:86cb40bf1c17 242
vsal 10:86cb40bf1c17 243
vsal 10:86cb40bf1c17 244
vsal 9:493011bacdcd 245 //time_t startt, endt;
vsal 9:493011bacdcd 246 //time(&startt);
vsal 9:493011bacdcd 247 //clock_t clock;
vsal 3:6f773c2ba3a0 248
vsal 8:09f4495696d2 249 //btbee trial
vsal 8:09f4495696d2 250 // initialization stuff ////////////////////////////////////////////////////////////////////////////////////////////////////
vsal 8:09f4495696d2 251 huey.locate(0,1);
vsal 8:09f4495696d2 252 btbee.reset();
vsal 8:09f4495696d2 253 for (int i = 0; i <4; i++) {
vsal 8:09f4495696d2 254 mbed_led[i] = 0;
vsal 8:09f4495696d2 255 }
vsal 8:09f4495696d2 256 for (int i = 0; i <8; i++) {
vsal 8:09f4495696d2 257 m3pi_led[i]=0;
vsal 8:09f4495696d2 258 }
vsal 8:09f4495696d2 259 m3pi_pb.mode(PullUp); // expected would be 1 when pb is pressed, 0 when not, opposite is the case
vsal 8:09f4495696d2 260
vsal 8:09f4495696d2 261 // end initialization stuff ////////////////////////////////////////////////////////////////////////////////////////////////
vsal 8:09f4495696d2 262
vsal 8:09f4495696d2 263 huey.locate(0,0);
vsal 8:09f4495696d2 264 huey.printf("B:%0.3f%V",huey.battery());
vsal 8:09f4495696d2 265 wait(0.3);
vsal 8:09f4495696d2 266
vsal 8:09f4495696d2 267 huey.locate(0,0);
vsal 8:09f4495696d2 268 huey.printf("%s","btTest");
vsal 8:09f4495696d2 269 huey.locate(0,1);
vsal 8:09f4495696d2 270 huey.printf("%s","PBonLNK");
vsal 8:09f4495696d2 271
vsal 8:09f4495696d2 272 // wait for the user to push P21, should be pressed when the bt link is established (green led "link")
vsal 8:09f4495696d2 273 while(m3pi_pb) {
vsal 8:09f4495696d2 274 m3pi_led[0]=!m3pi_led[0];
vsal 8:09f4495696d2 275 wait(0.1);
vsal 8:09f4495696d2 276 }
vsal 8:09f4495696d2 277
vsal 8:09f4495696d2 278 int iline=1;
vsal 8:09f4495696d2 279 char arr_read[30]; // this should be long enough to store any reply coming in over bt.
vsal 8:09f4495696d2 280 int chars_read; // number of chars read in a bt reply
vsal 8:09f4495696d2 281
vsal 9:493011bacdcd 282 while (iline < 3) {
vsal 8:09f4495696d2 283 // this writes "Line 001\n" to "Line 005\n" and then "end\n" to the btbee
vsal 8:09f4495696d2 284 if ( btbee.writeable() ) {
vsal 9:493011bacdcd 285 if (iline==2) {
vsal 9:493011bacdcd 286 //btbee.printf("end\n");
vsal 8:09f4495696d2 287 iline++;
vsal 8:09f4495696d2 288 }//if
vsal 8:09f4495696d2 289 else {
vsal 9:493011bacdcd 290 if (iline <2){
vsal 9:493011bacdcd 291 //time(&endt);
vsal 9:493011bacdcd 292 //btbee.printf("%f seconds - ", clock);
vsal 10:86cb40bf1c17 293 //btbee.printf("Battery Voltage: %f\n", huey.battery());
vsal 8:09f4495696d2 294 m3pi_led[0]=0;
vsal 8:09f4495696d2 295 huey.locate(0,0);
vsal 8:09f4495696d2 296 huey.printf("Sent %0.3d",iline);
vsal 8:09f4495696d2 297 iline++;
vsal 8:09f4495696d2 298 }
vsal 8:09f4495696d2 299 }//else
vsal 8:09f4495696d2 300 }//if_write
vsal 8:09f4495696d2 301
vsal 8:09f4495696d2 302 // check for answers after each write /not write
vsal 8:09f4495696d2 303 while ( btbee.readable() ) {
vsal 8:09f4495696d2 304 m3pi_led[7]=1;
vsal 8:09f4495696d2 305 btbee.read_all(arr_read, 30, &chars_read );
vsal 8:09f4495696d2 306 m3pi_led[6]=1;
vsal 8:09f4495696d2 307 huey.locate(0,1);
vsal 8:09f4495696d2 308 huey.print(arr_read,chars_read);
vsal 8:09f4495696d2 309 m3pi_led[5]=1;
vsal 8:09f4495696d2 310 }//while_readable
vsal 8:09f4495696d2 311 wait(0.1);
vsal 8:09f4495696d2 312 }//while_true
vsal 9:493011bacdcd 313
vsal 8:09f4495696d2 314 //main
vsal 8:09f4495696d2 315 //end of btbee trial
vsal 8:09f4495696d2 316
vsal 8:09f4495696d2 317
vsal 7:d0c19729e7fd 318
vsal 3:6f773c2ba3a0 319 m3pi_IN[0].mode(PullUp);
vsal 3:6f773c2ba3a0 320 m3pi_IN[1].mode(PullUp);
vsal 3:6f773c2ba3a0 321
vsal 3:6f773c2ba3a0 322 int start;
vsal 3:6f773c2ba3a0 323 do
vsal 3:6f773c2ba3a0 324 {
vsal 3:6f773c2ba3a0 325 start = pushToStart();
vsal 3:6f773c2ba3a0 326 }while(start == 1);
vsal 3:6f773c2ba3a0 327
vsal 3:6f773c2ba3a0 328 wait(1);
vsal 1:ac7fc0b5f878 329 //calibrates sensors
vsal 1:ac7fc0b5f878 330 huey.sensor_auto_calibrate();
vsal 1:ac7fc0b5f878 331
vsal 3:6f773c2ba3a0 332 printBattery();
vsal 0:80d9725a7342 333
vsal 0:80d9725a7342 334
vsal 2:e513ada0ecf1 335 float speed = 0.25;
vsal 1:ac7fc0b5f878 336 float pos;
vsal 1:ac7fc0b5f878 337 int z=1;
vsal 10:86cb40bf1c17 338
vsal 9:493011bacdcd 339
vsal 1:ac7fc0b5f878 340 while(z==1)
vsal 1:ac7fc0b5f878 341 {
vsal 10:86cb40bf1c17 342
vsal 9:493011bacdcd 343
vsal 11:af3d70d153bb 344 huey.cls();
vsal 11:af3d70d153bb 345 for(int p = 1; p < sizeof(points); p ++)
vsal 11:af3d70d153bb 346 {
vsal 11:af3d70d153bb 347 int s = points[p-1] - 1;
vsal 11:af3d70d153bb 348 int f = points[p] - 1;
vsal 11:af3d70d153bb 349 for(int i = 0; i < sizeof(map[s][f]); i++)
vsal 11:af3d70d153bb 350 {
vsal 11:af3d70d153bb 351 int change = 0;
vsal 11:af3d70d153bb 352 while(change == 0)
vsal 11:af3d70d153bb 353 {
vsal 11:af3d70d153bb 354 pos = myLinePos();
vsal 11:af3d70d153bb 355 change = smoothFollow(pos, speed, map[s][f][i]);
vsal 11:af3d70d153bb 356 }
vsal 11:af3d70d153bb 357 if(change == 2)
vsal 11:af3d70d153bb 358 {
vsal 11:af3d70d153bb 359 huey.stop();
vsal 11:af3d70d153bb 360 wait(1);
vsal 11:af3d70d153bb 361 break;
vsal 11:af3d70d153bb 362 }
vsal 11:af3d70d153bb 363 }
vsal 11:af3d70d153bb 364 }
vsal 3:6f773c2ba3a0 365 if(m3pi_IN[0]==0)
vsal 3:6f773c2ba3a0 366 {
vsal 11:af3d70d153bb 367 //slowStop(speed, 0.05, 3);
vsal 3:6f773c2ba3a0 368 huey.stop();
vsal 9:493011bacdcd 369 btbee.printf("Object in Front");
vsal 3:6f773c2ba3a0 370 while(m3pi_IN[0]==0)
vsal 3:6f773c2ba3a0 371 {
vsal 9:493011bacdcd 372 huey.stop();
vsal 3:6f773c2ba3a0 373 }
vsal 3:6f773c2ba3a0 374 }
vsal 9:493011bacdcd 375 if(pushToStart() == 0)
vsal 9:493011bacdcd 376 {
vsal 9:493011bacdcd 377 btbee.printf("end\n");
vsal 9:493011bacdcd 378 break;
vsal 9:493011bacdcd 379 }
vsal 1:ac7fc0b5f878 380 }
vsal 1:ac7fc0b5f878 381
vsal 1:ac7fc0b5f878 382
vsal 0:80d9725a7342 383
vsal 0:80d9725a7342 384
vsal 0:80d9725a7342 385
vsal 0:80d9725a7342 386
vsal 0:80d9725a7342 387 while(1)
vsal 0:80d9725a7342 388 {
vsal 0:80d9725a7342 389 myled = 1;
vsal 0:80d9725a7342 390 wait(0.2);
vsal 0:80d9725a7342 391 myled = 0;
vsal 0:80d9725a7342 392 wait(0.2);
vsal 0:80d9725a7342 393 }
vsal 0:80d9725a7342 394 }
vsal 1:ac7fc0b5f878 395