mbed interface to jpeg engine (OV528) camera module

Dependencies:   mbed uCAM_TTL120

Committer:
jebradshaw
Date:
Mon Nov 17 21:04:05 2014 +0000
Revision:
0:f0b5974a0c54
Child:
1:9a1b5099488a
close to writing jpeg to filesystem;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jebradshaw 0:f0b5974a0c54 1 // mbed_uCAM_TTL120_test.c
jebradshaw 0:f0b5974a0c54 2 // J Bradshaw 11-06-2014
jebradshaw 0:f0b5974a0c54 3 #include "mbed.h"
jebradshaw 0:f0b5974a0c54 4 #include "uCAM_TTL120.h"
jebradshaw 0:f0b5974a0c54 5 #include "stdio.h"
jebradshaw 0:f0b5974a0c54 6 #include "stdlib.h"
jebradshaw 0:f0b5974a0c54 7
jebradshaw 0:f0b5974a0c54 8 LocalFileSystem local("local");// Create the local filesystem under the name "local"
jebradshaw 0:f0b5974a0c54 9 Serial pc(USBTX,USBRX);
jebradshaw 0:f0b5974a0c54 10 uCAM_TTL120 cam(p28, p27); //Tx/Rx
jebradshaw 0:f0b5974a0c54 11 DigitalOut myled(LED1);
jebradshaw 0:f0b5974a0c54 12 DigitalOut camrst(p15);
jebradshaw 0:f0b5974a0c54 13
jebradshaw 0:f0b5974a0c54 14 char picture[20000];
jebradshaw 0:f0b5974a0c54 15 /*
jebradshaw 0:f0b5974a0c54 16 void write_local_file(char *filename, char data)
jebradshaw 0:f0b5974a0c54 17 {
jebradshaw 0:f0b5974a0c54 18 char c;
jebradshaw 0:f0b5974a0c54 19 FILE *fp = fopen(filename, "w"); // Open file on the local file system for writing
jebradshaw 0:f0b5974a0c54 20 while(true)
jebradshaw 0:f0b5974a0c54 21 {
jebradshaw 0:f0b5974a0c54 22 c = fgetc(fp);
jebradshaw 0:f0b5974a0c54 23 pc.printf("%c", c);
jebradshaw 0:f0b5974a0c54 24 if(c == 0xff)
jebradshaw 0:f0b5974a0c54 25 break;
jebradshaw 0:f0b5974a0c54 26 }
jebradshaw 0:f0b5974a0c54 27 fclose(fp);
jebradshaw 0:f0b5974a0c54 28 }
jebradshaw 0:f0b5974a0c54 29 */
jebradshaw 0:f0b5974a0c54 30
jebradshaw 0:f0b5974a0c54 31
jebradshaw 0:f0b5974a0c54 32 /*
jebradshaw 0:f0b5974a0c54 33 int uCAM_send_GET_PICTURE_640x480_JPEG(FILE *filew)
jebradshaw 0:f0b5974a0c54 34 {
jebradshaw 0:f0b5974a0c54 35 char ser_read[7];
jebradshaw 0:f0b5974a0c54 36 char frame[512];
jebradshaw 0:f0b5974a0c54 37 char c;
jebradshaw 0:f0b5974a0c54 38 unsigned long pic_bytes;
jebradshaw 0:f0b5974a0c54 39 unsigned int pixel_col;
jebradshaw 0:f0b5974a0c54 40 unsigned int i, j, k;
jebradshaw 0:f0b5974a0c54 41 int m;
jebradshaw 0:f0b5974a0c54 42 unsigned int serbytes_read;
jebradshaw 0:f0b5974a0c54 43 int temp;
jebradshaw 0:f0b5974a0c54 44
jebradshaw 0:f0b5974a0c54 45 pic_bytes = 0;
jebradshaw 0:f0b5974a0c54 46 c=0;
jebradshaw 0:f0b5974a0c54 47 serbytes_read = 0;
jebradshaw 0:f0b5974a0c54 48
jebradshaw 0:f0b5974a0c54 49 for(i=0;i<100;i++)
jebradshaw 0:f0b5974a0c54 50 picture[i] = 0;
jebradshaw 0:f0b5974a0c54 51
jebradshaw 0:f0b5974a0c54 52 cam.uCAM_FlushBuffer();
jebradshaw 0:f0b5974a0c54 53
jebradshaw 0:f0b5974a0c54 54 cam.uCAM_Command_Send(uCAM_GET_PICTURE,0x01,0x00,0x00,0x00); // p1=0x01-Snapshot picture
jebradshaw 0:f0b5974a0c54 55 wait(.3);
jebradshaw 0:f0b5974a0c54 56
jebradshaw 0:f0b5974a0c54 57 //read serial C buffer and wait for ACK (0xAA0E0DXX0000)
jebradshaw 0:f0b5974a0c54 58 c=cam.uCAM_read(ser_read, 6, 1);
jebradshaw 0:f0b5974a0c54 59 wait(.2);
jebradshaw 0:f0b5974a0c54 60
jebradshaw 0:f0b5974a0c54 61 if(c==6) //received 6 bytes back
jebradshaw 0:f0b5974a0c54 62 {
jebradshaw 0:f0b5974a0c54 63 if((ser_read[0] == 0xAA) && //first 2 bytes indicate it was a DATA packet
jebradshaw 0:f0b5974a0c54 64 (ser_read[1] == 0x0E) &&
jebradshaw 0:f0b5974a0c54 65 (ser_read[2] == 0x04)) //returned get pic
jebradshaw 0:f0b5974a0c54 66 {
jebradshaw 0:f0b5974a0c54 67 //read serial buffer and wait for ACK (0xAA0E0DXX0000)
jebradshaw 0:f0b5974a0c54 68 c=cam.uCAM_read(ser_read, 6, 1);
jebradshaw 0:f0b5974a0c54 69
jebradshaw 0:f0b5974a0c54 70 if(c==6) //received 6 bytes back
jebradshaw 0:f0b5974a0c54 71 {
jebradshaw 0:f0b5974a0c54 72 if((ser_read[0] == 0xAA) && //first 2 bytes indicate it was a DATA packet
jebradshaw 0:f0b5974a0c54 73 (ser_read[1] == 0x0A))
jebradshaw 0:f0b5974a0c54 74 {
jebradshaw 0:f0b5974a0c54 75 pic_bytes = (unsigned long)ser_read[3];
jebradshaw 0:f0b5974a0c54 76 pic_bytes += (unsigned long)ser_read[4] << 8;
jebradshaw 0:f0b5974a0c54 77 pic_bytes += (unsigned long)ser_read[5] << 16;
jebradshaw 0:f0b5974a0c54 78
jebradshaw 0:f0b5974a0c54 79 serbytes_read = cam.uCAM_read(picture, pic_bytes, .2); //frames of 512 bytes?
jebradshaw 0:f0b5974a0c54 80
jebradshaw 0:f0b5974a0c54 81 if(serbytes_read == pic_bytes){
jebradshaw 0:f0b5974a0c54 82
jebradshaw 0:f0b5974a0c54 83 for(int i=0;i<pic_bytes;i++){
jebradshaw 0:f0b5974a0c54 84 cam.uCAM_Command_Send(uCAM_ACK, 0x0A, 0x00, i, 0x00);
jebradshaw 0:f0b5974a0c54 85
jebradshaw 0:f0b5974a0c54 86 cam.uCAM_read(picture, 512, .2);
jebradshaw 0:f0b5974a0c54 87 for(int j=0;j<512;j++){
jebradshaw 0:f0b5974a0c54 88 pc.printf("%c", picture[j]);
jebradshaw 0:f0b5974a0c54 89 // fputc(picture[j], filew);
jebradshaw 0:f0b5974a0c54 90 }
jebradshaw 0:f0b5974a0c54 91 }
jebradshaw 0:f0b5974a0c54 92 cam.uCAM_Command_Send(uCAM_ACK, 0x00, 0x00, 0xf0, 0xf0);
jebradshaw 0:f0b5974a0c54 93
jebradshaw 0:f0b5974a0c54 94 return pic_bytes;
jebradshaw 0:f0b5974a0c54 95 }
jebradshaw 0:f0b5974a0c54 96 else
jebradshaw 0:f0b5974a0c54 97 return -5;
jebradshaw 0:f0b5974a0c54 98 }
jebradshaw 0:f0b5974a0c54 99 else
jebradshaw 0:f0b5974a0c54 100 return -4;
jebradshaw 0:f0b5974a0c54 101 }
jebradshaw 0:f0b5974a0c54 102 return -3;
jebradshaw 0:f0b5974a0c54 103 }
jebradshaw 0:f0b5974a0c54 104 }
jebradshaw 0:f0b5974a0c54 105 return -2;
jebradshaw 0:f0b5974a0c54 106 }//if(c==6)
jebradshaw 0:f0b5974a0c54 107 return -1;
jebradshaw 0:f0b5974a0c54 108 }//uCAM_send_GET_PICTURE_640x480_JPEG(FILE *filew)
jebradshaw 0:f0b5974a0c54 109
jebradshaw 0:f0b5974a0c54 110 int get_jpeg(FILE *file){
jebradshaw 0:f0b5974a0c54 111 cam.uCAM_Command_Send(uCAM_INITIAL,0x00,0x07,0x07,0x07); // JPEG,640 x 480,JPEG
jebradshaw 0:f0b5974a0c54 112
jebradshaw 0:f0b5974a0c54 113 wait(.05);
jebradshaw 0:f0b5974a0c54 114
jebradshaw 0:f0b5974a0c54 115 if(cam.uCAM_GetACK()){
jebradshaw 0:f0b5974a0c54 116 pc.printf("Did not receive ACK on uCAM_INITIAL\r\n");
jebradshaw 0:f0b5974a0c54 117 return -1;
jebradshaw 0:f0b5974a0c54 118 }
jebradshaw 0:f0b5974a0c54 119
jebradshaw 0:f0b5974a0c54 120 cam.uCAM_Command_Send(uCAM_SET_PACKAGE_SIZE,0x08,0x00,0x02,0x00); //512 bytes
jebradshaw 0:f0b5974a0c54 121
jebradshaw 0:f0b5974a0c54 122 if(cam.uCAM_GetACK()){
jebradshaw 0:f0b5974a0c54 123 pc.printf("Did not receive ACK on uCAM_SET_PACKAGE_SIZE\r\n");
jebradshaw 0:f0b5974a0c54 124 return -2;
jebradshaw 0:f0b5974a0c54 125 }
jebradshaw 0:f0b5974a0c54 126
jebradshaw 0:f0b5974a0c54 127 cam.uCAM_Command_Send(uCAM_SNAPSHOT,0x00,0x00,0x00,0x00); //JPEG
jebradshaw 0:f0b5974a0c54 128
jebradshaw 0:f0b5974a0c54 129 if(cam.uCAM_GetACK()){
jebradshaw 0:f0b5974a0c54 130 pc.printf("Did not receive ACK on uCAM_SNAPSHOT\r\n");
jebradshaw 0:f0b5974a0c54 131 return -3;
jebradshaw 0:f0b5974a0c54 132 }
jebradshaw 0:f0b5974a0c54 133
jebradshaw 0:f0b5974a0c54 134 uCAM_send_GET_PICTURE_640x480_JPEG(file);
jebradshaw 0:f0b5974a0c54 135 }
jebradshaw 0:f0b5974a0c54 136 */
jebradshaw 0:f0b5974a0c54 137
jebradshaw 0:f0b5974a0c54 138 int main(){
jebradshaw 0:f0b5974a0c54 139 FILE *fp;
jebradshaw 0:f0b5974a0c54 140
jebradshaw 0:f0b5974a0c54 141 pc.baud(921600);
jebradshaw 0:f0b5974a0c54 142 pc.printf("\r\n\r\n%s\r\n", __FILE__);
jebradshaw 0:f0b5974a0c54 143
jebradshaw 0:f0b5974a0c54 144 //cam.uCAM_set_baud();
jebradshaw 0:f0b5974a0c54 145
jebradshaw 0:f0b5974a0c54 146 camrst = 0;
jebradshaw 0:f0b5974a0c54 147 wait(.5);
jebradshaw 0:f0b5974a0c54 148 camrst = 1;
jebradshaw 0:f0b5974a0c54 149
jebradshaw 0:f0b5974a0c54 150 if(cam.uCAM_Connect()){ //Initialize the uCAM connection
jebradshaw 0:f0b5974a0c54 151 pc.printf("Camera Initialized\r\n");
jebradshaw 0:f0b5974a0c54 152 }
jebradshaw 0:f0b5974a0c54 153 else{
jebradshaw 0:f0b5974a0c54 154 pc.printf("Camera failed to connect\r\n");
jebradshaw 0:f0b5974a0c54 155 exit(1);
jebradshaw 0:f0b5974a0c54 156 }
jebradshaw 0:f0b5974a0c54 157
jebradshaw 0:f0b5974a0c54 158 int i = 0;
jebradshaw 0:f0b5974a0c54 159 while(1) {
jebradshaw 0:f0b5974a0c54 160 char ser_read[7];
jebradshaw 0:f0b5974a0c54 161 unsigned long pic_bytes;
jebradshaw 0:f0b5974a0c54 162 unsigned int serbytes_read;
jebradshaw 0:f0b5974a0c54 163 char fileNameStr[20];
jebradshaw 0:f0b5974a0c54 164
jebradshaw 0:f0b5974a0c54 165 // sprintf(fileNameStr, "/local/pic%2X.bmp", i++);
jebradshaw 0:f0b5974a0c54 166
jebradshaw 0:f0b5974a0c54 167 /*
jebradshaw 0:f0b5974a0c54 168 FILE *fp = fopen("/local/text1.txt", "w");
jebradshaw 0:f0b5974a0c54 169 wait(.2);
jebradshaw 0:f0b5974a0c54 170 fprintf(fp, "Hello World Joe!");
jebradshaw 0:f0b5974a0c54 171 fclose(fp);
jebradshaw 0:f0b5974a0c54 172
jebradshaw 0:f0b5974a0c54 173 */
jebradshaw 0:f0b5974a0c54 174 fp = fopen("/local/pic000.jpg", "w");
jebradshaw 0:f0b5974a0c54 175
jebradshaw 0:f0b5974a0c54 176 //------- begin get jpeg --------------
jebradshaw 0:f0b5974a0c54 177 cam.uCAM_FlushBuffer();
jebradshaw 0:f0b5974a0c54 178 cam.uCAM_Command_Send(uCAM_INITIAL,0x00,0x07,0x07,0x07); // JPEG,640 x 480,JPEG
jebradshaw 0:f0b5974a0c54 179
jebradshaw 0:f0b5974a0c54 180 wait(.05);
jebradshaw 0:f0b5974a0c54 181
jebradshaw 0:f0b5974a0c54 182 cam.uCAM_read(ser_read, 6, .1);
jebradshaw 0:f0b5974a0c54 183 if((ser_read[0] == 0xAA) &&
jebradshaw 0:f0b5974a0c54 184 (ser_read[1] == 0x0E) &&
jebradshaw 0:f0b5974a0c54 185 (ser_read[2] == 0x01)){ //INITIAL ACK
jebradshaw 0:f0b5974a0c54 186 pc.printf("ACK received on uCAM_INITIAL\r\n");
jebradshaw 0:f0b5974a0c54 187 }
jebradshaw 0:f0b5974a0c54 188 else{
jebradshaw 0:f0b5974a0c54 189 pc.printf("Did not receive ACK on uCAM_INITIAL\r\n");
jebradshaw 0:f0b5974a0c54 190 }
jebradshaw 0:f0b5974a0c54 191
jebradshaw 0:f0b5974a0c54 192 cam.uCAM_FlushBuffer();
jebradshaw 0:f0b5974a0c54 193 cam.uCAM_Command_Send(uCAM_SET_PACKAGE_SIZE,0x08,0x00,0x02,0x00); //512 bytes
jebradshaw 0:f0b5974a0c54 194
jebradshaw 0:f0b5974a0c54 195 wait(.05);
jebradshaw 0:f0b5974a0c54 196
jebradshaw 0:f0b5974a0c54 197 cam.uCAM_read(ser_read, 6, .1);
jebradshaw 0:f0b5974a0c54 198 if((ser_read[0] == 0xAA) &&
jebradshaw 0:f0b5974a0c54 199 (ser_read[1] == 0x0E) &&
jebradshaw 0:f0b5974a0c54 200 (ser_read[2] == 0x06)){ //SET PACKAGE SIZE ACK
jebradshaw 0:f0b5974a0c54 201 pc.printf("ACK received on uCAM_SET_PACKAGE_SIZE\r\n");
jebradshaw 0:f0b5974a0c54 202 }
jebradshaw 0:f0b5974a0c54 203 else{
jebradshaw 0:f0b5974a0c54 204 pc.printf("Did not receive ACK on SET PACKAGE SIZE\r\n");
jebradshaw 0:f0b5974a0c54 205 }
jebradshaw 0:f0b5974a0c54 206
jebradshaw 0:f0b5974a0c54 207 cam.uCAM_Command_Send(uCAM_SNAPSHOT,0x00,0x00,0x00,0x00); //JPEG
jebradshaw 0:f0b5974a0c54 208
jebradshaw 0:f0b5974a0c54 209 cam.uCAM_read(ser_read, 6, .1);
jebradshaw 0:f0b5974a0c54 210 if((ser_read[0] == 0xAA) &&
jebradshaw 0:f0b5974a0c54 211 (ser_read[1] == 0x0E) &&
jebradshaw 0:f0b5974a0c54 212 (ser_read[2] == 0x05)){ //uCAM_SNAPSHOT ACK
jebradshaw 0:f0b5974a0c54 213 pc.printf("ACK received on uCAM_SNAPSHOT\r\n");
jebradshaw 0:f0b5974a0c54 214 }
jebradshaw 0:f0b5974a0c54 215 else{
jebradshaw 0:f0b5974a0c54 216 pc.printf("Did not receive ACK on uCAM_SNAPSHOT\r\n");
jebradshaw 0:f0b5974a0c54 217 }
jebradshaw 0:f0b5974a0c54 218
jebradshaw 0:f0b5974a0c54 219 pic_bytes = 0;
jebradshaw 0:f0b5974a0c54 220 serbytes_read = 0;
jebradshaw 0:f0b5974a0c54 221
jebradshaw 0:f0b5974a0c54 222 for(i=0;i<100;i++)
jebradshaw 0:f0b5974a0c54 223 picture[i] = 0;
jebradshaw 0:f0b5974a0c54 224
jebradshaw 0:f0b5974a0c54 225 cam.uCAM_FlushBuffer();
jebradshaw 0:f0b5974a0c54 226
jebradshaw 0:f0b5974a0c54 227 cam.uCAM_Command_Send(uCAM_GET_PICTURE,0x01,0x00,0x00,0x00); // p1=0x01-Snapshot picture
jebradshaw 0:f0b5974a0c54 228 wait(.3);
jebradshaw 0:f0b5974a0c54 229
jebradshaw 0:f0b5974a0c54 230 //read serial C buffer and wait for ACK (0xAA0E0DXX0000)
jebradshaw 0:f0b5974a0c54 231 char c=cam.uCAM_read(ser_read, 6, 1);
jebradshaw 0:f0b5974a0c54 232
jebradshaw 0:f0b5974a0c54 233 wait(.2);
jebradshaw 0:f0b5974a0c54 234
jebradshaw 0:f0b5974a0c54 235 if((ser_read[0] == 0xAA) && //first 2 bytes indicate it was a DATA packet
jebradshaw 0:f0b5974a0c54 236 (ser_read[1] == 0x0E) &&
jebradshaw 0:f0b5974a0c54 237 (ser_read[2] == 0x04)) //returned get pic
jebradshaw 0:f0b5974a0c54 238 {
jebradshaw 0:f0b5974a0c54 239 //read serial buffer and wait for ACK (0xAA0E0DXX0000)
jebradshaw 0:f0b5974a0c54 240 char c=cam.uCAM_read(ser_read, 6, 1);
jebradshaw 0:f0b5974a0c54 241
jebradshaw 0:f0b5974a0c54 242 if((ser_read[0] == 0xAA) && //first 2 bytes indicate it was a DATA packet
jebradshaw 0:f0b5974a0c54 243 (ser_read[1] == 0x0A) &&
jebradshaw 0:f0b5974a0c54 244 (ser_read[2] == 0x01)) //DATA from snapshot ACK
jebradshaw 0:f0b5974a0c54 245 {
jebradshaw 0:f0b5974a0c54 246 pic_bytes = (unsigned long)ser_read[3];
jebradshaw 0:f0b5974a0c54 247 pic_bytes += (unsigned long)ser_read[4] << 8;
jebradshaw 0:f0b5974a0c54 248 pic_bytes += (unsigned long)ser_read[5] << 16;
jebradshaw 0:f0b5974a0c54 249
jebradshaw 0:f0b5974a0c54 250 int packID=0;
jebradshaw 0:f0b5974a0c54 251 char packID_l, packID_h;
jebradshaw 0:f0b5974a0c54 252
jebradshaw 0:f0b5974a0c54 253 pc.printf("\r\n");
jebradshaw 0:f0b5974a0c54 254 while(pic_bytes>0){
jebradshaw 0:f0b5974a0c54 255 packID_h = (packID >> 8) & 0xff;
jebradshaw 0:f0b5974a0c54 256 packID_l = packID & 0xff;
jebradshaw 0:f0b5974a0c54 257
jebradshaw 0:f0b5974a0c54 258 cam.uCAM_FlushBuffer();
jebradshaw 0:f0b5974a0c54 259 cam.uCAM_Command_Send(uCAM_ACK, 0x00, 0x00, packID_l, packID_h);
jebradshaw 0:f0b5974a0c54 260
jebradshaw 0:f0b5974a0c54 261 pc.printf("\r\n ");
jebradshaw 0:f0b5974a0c54 262
jebradshaw 0:f0b5974a0c54 263 if(pic_bytes > 512){
jebradshaw 0:f0b5974a0c54 264 int pbytes = cam.uCAM_read(picture, 512, .2);
jebradshaw 0:f0b5974a0c54 265 pic_bytes -= 512;
jebradshaw 0:f0b5974a0c54 266 //debugging
jebradshaw 0:f0b5974a0c54 267 for(int j=0;j<512;j++){
jebradshaw 0:f0b5974a0c54 268 fputc(picture[j], fp);
jebradshaw 0:f0b5974a0c54 269 pc.printf("%2X ", picture[j]);
jebradshaw 0:f0b5974a0c54 270 }
jebradshaw 0:f0b5974a0c54 271 }
jebradshaw 0:f0b5974a0c54 272 else{
jebradshaw 0:f0b5974a0c54 273 cam.uCAM_read(picture, pic_bytes, .2);
jebradshaw 0:f0b5974a0c54 274 //for debugging
jebradshaw 0:f0b5974a0c54 275 for(int j=0;j<pic_bytes;j++){
jebradshaw 0:f0b5974a0c54 276 fputc(picture[j], fp);
jebradshaw 0:f0b5974a0c54 277 pc.printf("%2X ", picture[j]);
jebradshaw 0:f0b5974a0c54 278 }
jebradshaw 0:f0b5974a0c54 279 pic_bytes = 0;
jebradshaw 0:f0b5974a0c54 280 }
jebradshaw 0:f0b5974a0c54 281
jebradshaw 0:f0b5974a0c54 282 packID++;
jebradshaw 0:f0b5974a0c54 283 }
jebradshaw 0:f0b5974a0c54 284 cam.uCAM_Command_Send(uCAM_ACK, 0x00, 0x00, 0xf0, 0xf0);
jebradshaw 0:f0b5974a0c54 285
jebradshaw 0:f0b5974a0c54 286 //serbytes_read = cam.uCAM_read(picture, pic_bytes, .2); //frames of 512 bytes?
jebradshaw 0:f0b5974a0c54 287
jebradshaw 0:f0b5974a0c54 288 }
jebradshaw 0:f0b5974a0c54 289 //pc.printf("-3");
jebradshaw 0:f0b5974a0c54 290 }//data packet
jebradshaw 0:f0b5974a0c54 291
jebradshaw 0:f0b5974a0c54 292 fclose(fp);
jebradshaw 0:f0b5974a0c54 293
jebradshaw 0:f0b5974a0c54 294 //------- end get jpeg --------------
jebradshaw 0:f0b5974a0c54 295
jebradshaw 0:f0b5974a0c54 296 /*
jebradshaw 0:f0b5974a0c54 297 cam.uCAM_send_INITIAL_80x60_16RAW();
jebradshaw 0:f0b5974a0c54 298 wait(.1);
jebradshaw 0:f0b5974a0c54 299 cam.uCAM_send_SNAPSHOT();
jebradshaw 0:f0b5974a0c54 300 wait(.1);
jebradshaw 0:f0b5974a0c54 301 cam.uCAM_send_GET_PICTURE_80x60_16COL_RAW();
jebradshaw 0:f0b5974a0c54 302 */
jebradshaw 0:f0b5974a0c54 303 myled = 1;
jebradshaw 0:f0b5974a0c54 304 wait(3);
jebradshaw 0:f0b5974a0c54 305 myled = 0;
jebradshaw 0:f0b5974a0c54 306 wait(0.2);
jebradshaw 0:f0b5974a0c54 307 }
jebradshaw 0:f0b5974a0c54 308 }