lab4

Dependencies:   4DGL-uLCD-SE mbed-rtos mbed

Committer:
sim91
Date:
Tue Mar 10 02:46:39 2015 +0000
Revision:
1:070b617f00f3
Parent:
0:fcc91e110a28
Child:
2:437fc6e9a1c3
4180_lab4_Mini_Project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sheldonfernandes2404 0:fcc91e110a28 1 #include "mbed.h"
sheldonfernandes2404 0:fcc91e110a28 2 #include "uLCD_4DGL.h"
sheldonfernandes2404 0:fcc91e110a28 3 #include "math.h"
sheldonfernandes2404 0:fcc91e110a28 4 #include "rtos.h"
sim91 1:070b617f00f3 5 #include "wave_player.h"
sim91 1:070b617f00f3 6 #include "SDFileSystem.h"
sim91 1:070b617f00f3 7 #include "Speaker.h"
sim91 1:070b617f00f3 8 #include <string>
sheldonfernandes2404 0:fcc91e110a28 9
sim91 1:070b617f00f3 10 #define YELLOW 0xFFFF00
sim91 1:070b617f00f3 11 #define ORANGE 0xffdd76
sim91 1:070b617f00f3 12 #define MECYAN 0x009696
sim91 1:070b617f00f3 13
sim91 1:070b617f00f3 14 AnalogIn steer(p17);
sheldonfernandes2404 0:fcc91e110a28 15 AnalogIn force(p16);
sim91 1:070b617f00f3 16 AnalogIn timer(p20);
sheldonfernandes2404 0:fcc91e110a28 17 uLCD_4DGL lcd(p28, p27, p30);
sheldonfernandes2404 0:fcc91e110a28 18 Mutex stdio_mutex;
sheldonfernandes2404 0:fcc91e110a28 19
sheldonfernandes2404 0:fcc91e110a28 20 volatile int count=30;
sheldonfernandes2404 0:fcc91e110a28 21 volatile int a=0;
sim91 1:070b617f00f3 22 volatile int cheat=3;
sim91 1:070b617f00f3 23
sim91 1:070b617f00f3 24 void forward(void const *args)
sim91 1:070b617f00f3 25 {
sim91 1:070b617f00f3 26 while(1) {
sim91 1:070b617f00f3 27 if (timer<0.1) {
sim91 1:070b617f00f3 28 if(count<29 && cheat>0) {
sim91 1:070b617f00f3 29 ++count;
sim91 1:070b617f00f3 30 --cheat;
sim91 1:070b617f00f3 31 }
sim91 1:070b617f00f3 32 }
sim91 1:070b617f00f3 33 Thread::wait(400);
sim91 1:070b617f00f3 34 }
sim91 1:070b617f00f3 35 }
sheldonfernandes2404 0:fcc91e110a28 36
sheldonfernandes2404 0:fcc91e110a28 37 void steering(void const *args)
sheldonfernandes2404 0:fcc91e110a28 38 {
sheldonfernandes2404 0:fcc91e110a28 39 while(1) {
sheldonfernandes2404 0:fcc91e110a28 40 stdio_mutex.lock();
sheldonfernandes2404 0:fcc91e110a28 41 lcd.cls();
sim91 1:070b617f00f3 42 a=floor(steer*39);
sim91 1:070b617f00f3 43 if(a>9) {
sim91 1:070b617f00f3 44 a=9;
sim91 1:070b617f00f3 45 }
sheldonfernandes2404 0:fcc91e110a28 46 switch(a) {
sheldonfernandes2404 0:fcc91e110a28 47 case (1): {
sheldonfernandes2404 0:fcc91e110a28 48 lcd.filled_rectangle(0, 98, 9, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 49 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 50 break;
sheldonfernandes2404 0:fcc91e110a28 51 }
sheldonfernandes2404 0:fcc91e110a28 52 case (2): {
sheldonfernandes2404 0:fcc91e110a28 53 lcd.filled_rectangle(14, 98, 23, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 54 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 55 break;
sheldonfernandes2404 0:fcc91e110a28 56 }
sheldonfernandes2404 0:fcc91e110a28 57 case (3): {
sheldonfernandes2404 0:fcc91e110a28 58 lcd.filled_rectangle(28, 98, 37, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 59 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 60 break;
sheldonfernandes2404 0:fcc91e110a28 61 }
sheldonfernandes2404 0:fcc91e110a28 62 case (4): {
sheldonfernandes2404 0:fcc91e110a28 63 lcd.filled_rectangle(42, 98, 51, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 64 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 65 break;
sheldonfernandes2404 0:fcc91e110a28 66 }
sheldonfernandes2404 0:fcc91e110a28 67 case (5): {
sheldonfernandes2404 0:fcc91e110a28 68 lcd.filled_rectangle(56, 98, 65, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 69 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 70 break;
sheldonfernandes2404 0:fcc91e110a28 71 }
sheldonfernandes2404 0:fcc91e110a28 72 case (6): {
sheldonfernandes2404 0:fcc91e110a28 73 lcd.filled_rectangle(70, 98, 79, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 74 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 75 break;
sheldonfernandes2404 0:fcc91e110a28 76 }
sheldonfernandes2404 0:fcc91e110a28 77 case (7): {
sheldonfernandes2404 0:fcc91e110a28 78 lcd.filled_rectangle(84, 98, 93, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 79 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 80 break;
sheldonfernandes2404 0:fcc91e110a28 81 }
sheldonfernandes2404 0:fcc91e110a28 82 case (8): {
sheldonfernandes2404 0:fcc91e110a28 83 lcd.filled_rectangle(98, 98, 107, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 84 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 85 break;
sheldonfernandes2404 0:fcc91e110a28 86 }
sheldonfernandes2404 0:fcc91e110a28 87 case (9): {
sheldonfernandes2404 0:fcc91e110a28 88 lcd.filled_rectangle(112, 98, 121, 110, BLUE);
sheldonfernandes2404 0:fcc91e110a28 89 Thread::wait(200);
sheldonfernandes2404 0:fcc91e110a28 90 break;
sheldonfernandes2404 0:fcc91e110a28 91 }
sheldonfernandes2404 0:fcc91e110a28 92 }
sheldonfernandes2404 0:fcc91e110a28 93 stdio_mutex.unlock();
sheldonfernandes2404 0:fcc91e110a28 94 }
sheldonfernandes2404 0:fcc91e110a28 95 }
sheldonfernandes2404 0:fcc91e110a28 96
sheldonfernandes2404 0:fcc91e110a28 97 void obstacle(void const *args)
sheldonfernandes2404 0:fcc91e110a28 98 {
sheldonfernandes2404 0:fcc91e110a28 99 while(1) {
sheldonfernandes2404 0:fcc91e110a28 100 stdio_mutex.lock();
sheldonfernandes2404 0:fcc91e110a28 101 switch(count) {
sheldonfernandes2404 0:fcc91e110a28 102 case (30): {
sheldonfernandes2404 0:fcc91e110a28 103 lcd.filled_rectangle(0, 0, 90, 10, RED);
sheldonfernandes2404 0:fcc91e110a28 104 break;
sheldonfernandes2404 0:fcc91e110a28 105 }
sheldonfernandes2404 0:fcc91e110a28 106 case (29): {
sheldonfernandes2404 0:fcc91e110a28 107 lcd.filled_rectangle(0, 10, 90, 20, RED);
sheldonfernandes2404 0:fcc91e110a28 108 break;
sheldonfernandes2404 0:fcc91e110a28 109 }
sheldonfernandes2404 0:fcc91e110a28 110 case (28): {
sheldonfernandes2404 0:fcc91e110a28 111 lcd.filled_rectangle(0, 20, 90, 30, RED);
sheldonfernandes2404 0:fcc91e110a28 112 break;
sheldonfernandes2404 0:fcc91e110a28 113 }
sheldonfernandes2404 0:fcc91e110a28 114 case (27): {
sheldonfernandes2404 0:fcc91e110a28 115 lcd.filled_rectangle(0, 30, 90, 40, RED);
sheldonfernandes2404 0:fcc91e110a28 116 break;
sheldonfernandes2404 0:fcc91e110a28 117 }
sheldonfernandes2404 0:fcc91e110a28 118 case (26): {
sheldonfernandes2404 0:fcc91e110a28 119 lcd.filled_rectangle(0, 40, 90, 50, RED);
sheldonfernandes2404 0:fcc91e110a28 120 break;
sheldonfernandes2404 0:fcc91e110a28 121 }
sheldonfernandes2404 0:fcc91e110a28 122 case (25): {
sheldonfernandes2404 0:fcc91e110a28 123 lcd.filled_rectangle(0, 50, 90, 60, RED);
sheldonfernandes2404 0:fcc91e110a28 124 lcd.filled_rectangle(70, 0, 90, 10, GREEN);
sheldonfernandes2404 0:fcc91e110a28 125 break;
sheldonfernandes2404 0:fcc91e110a28 126 }
sheldonfernandes2404 0:fcc91e110a28 127 case (24): {
sheldonfernandes2404 0:fcc91e110a28 128 lcd.filled_rectangle(0, 60, 90, 70, RED);
sheldonfernandes2404 0:fcc91e110a28 129 lcd.filled_rectangle(70, 10, 127, 20, GREEN);
sheldonfernandes2404 0:fcc91e110a28 130 break;
sheldonfernandes2404 0:fcc91e110a28 131 }
sheldonfernandes2404 0:fcc91e110a28 132 case (23): {
sheldonfernandes2404 0:fcc91e110a28 133 lcd.filled_rectangle(0, 70, 90, 80, RED);
sheldonfernandes2404 0:fcc91e110a28 134 lcd.filled_rectangle(70, 20, 127, 30, GREEN);
sheldonfernandes2404 0:fcc91e110a28 135 break;
sheldonfernandes2404 0:fcc91e110a28 136 }
sheldonfernandes2404 0:fcc91e110a28 137 case (22): {
sheldonfernandes2404 0:fcc91e110a28 138 lcd.filled_rectangle(0, 80, 90, 90, RED);
sheldonfernandes2404 0:fcc91e110a28 139 lcd.filled_rectangle(70, 30, 127, 40, GREEN);
sheldonfernandes2404 0:fcc91e110a28 140 break;
sheldonfernandes2404 0:fcc91e110a28 141 }
sheldonfernandes2404 0:fcc91e110a28 142 case (21): {
sheldonfernandes2404 0:fcc91e110a28 143 lcd.filled_rectangle(0, 90, 90, 100, RED);
sheldonfernandes2404 0:fcc91e110a28 144 lcd.filled_rectangle(70, 40, 127, 50, GREEN);
sheldonfernandes2404 0:fcc91e110a28 145 break;
sheldonfernandes2404 0:fcc91e110a28 146 }
sheldonfernandes2404 0:fcc91e110a28 147 case (20): {
sheldonfernandes2404 0:fcc91e110a28 148 lcd.filled_rectangle(0, 100, 90, 110, RED);
sheldonfernandes2404 0:fcc91e110a28 149 lcd.filled_rectangle(70, 50, 127, 60, GREEN);
sheldonfernandes2404 0:fcc91e110a28 150 if(a<8) {
sheldonfernandes2404 0:fcc91e110a28 151 lcd.locate(3,8);
sheldonfernandes2404 0:fcc91e110a28 152 lcd.printf("YOU LOSE!!!");
sheldonfernandes2404 0:fcc91e110a28 153 exit(0);
sheldonfernandes2404 0:fcc91e110a28 154 }
sheldonfernandes2404 0:fcc91e110a28 155 break;
sheldonfernandes2404 0:fcc91e110a28 156 }
sheldonfernandes2404 0:fcc91e110a28 157 case (19): {
sheldonfernandes2404 0:fcc91e110a28 158 lcd.filled_rectangle(0, 110, 100, 120, RED);
sheldonfernandes2404 0:fcc91e110a28 159 lcd.filled_rectangle(70, 60, 127, 70, GREEN);
sheldonfernandes2404 0:fcc91e110a28 160 lcd.filled_rectangle(40,0 , 90,10 , WHITE);
sheldonfernandes2404 0:fcc91e110a28 161 break;
sheldonfernandes2404 0:fcc91e110a28 162 }
sheldonfernandes2404 0:fcc91e110a28 163 case (18): {
sheldonfernandes2404 0:fcc91e110a28 164 lcd.filled_rectangle(0, 120, 100, 130, RED);
sheldonfernandes2404 0:fcc91e110a28 165 lcd.filled_rectangle(70, 70, 127, 80, GREEN);
sheldonfernandes2404 0:fcc91e110a28 166 lcd.filled_rectangle(40,10 , 90,20 , WHITE);
sheldonfernandes2404 0:fcc91e110a28 167 break;
sheldonfernandes2404 0:fcc91e110a28 168 }
sheldonfernandes2404 0:fcc91e110a28 169 case (17): {
sheldonfernandes2404 0:fcc91e110a28 170 lcd.filled_rectangle(70, 80, 127, 90, GREEN);
sheldonfernandes2404 0:fcc91e110a28 171 lcd.filled_rectangle(40,20 , 90, 30, WHITE);
sheldonfernandes2404 0:fcc91e110a28 172 break;
sheldonfernandes2404 0:fcc91e110a28 173 }
sheldonfernandes2404 0:fcc91e110a28 174 case (16): {
sheldonfernandes2404 0:fcc91e110a28 175 lcd.filled_rectangle(70, 90, 127, 100, GREEN);
sheldonfernandes2404 0:fcc91e110a28 176 lcd.filled_rectangle(40,30 , 90, 40, WHITE);
sheldonfernandes2404 0:fcc91e110a28 177 break;
sheldonfernandes2404 0:fcc91e110a28 178 }
sheldonfernandes2404 0:fcc91e110a28 179 case (15): {
sheldonfernandes2404 0:fcc91e110a28 180 lcd.filled_rectangle(70, 100, 127, 110, GREEN);
sheldonfernandes2404 0:fcc91e110a28 181 lcd.filled_rectangle(40,40 , 90,50 , WHITE);
sheldonfernandes2404 0:fcc91e110a28 182 if(a>6) {
sheldonfernandes2404 0:fcc91e110a28 183 lcd.locate(3,8);
sheldonfernandes2404 0:fcc91e110a28 184 lcd.printf("YOU LOSE!!!");
sheldonfernandes2404 0:fcc91e110a28 185 exit(0);
sheldonfernandes2404 0:fcc91e110a28 186 }
sheldonfernandes2404 0:fcc91e110a28 187 break;
sheldonfernandes2404 0:fcc91e110a28 188 }
sheldonfernandes2404 0:fcc91e110a28 189 case (14): {
sheldonfernandes2404 0:fcc91e110a28 190 lcd.filled_rectangle(70, 110, 127, 120, GREEN);
sheldonfernandes2404 0:fcc91e110a28 191 lcd.filled_rectangle(40,50 , 90, 60, WHITE);
sheldonfernandes2404 0:fcc91e110a28 192 break;
sheldonfernandes2404 0:fcc91e110a28 193 }
sheldonfernandes2404 0:fcc91e110a28 194 case (13): {
sheldonfernandes2404 0:fcc91e110a28 195 lcd.filled_rectangle(70, 120, 127, 130, GREEN);
sim91 1:070b617f00f3 196 lcd.filled_rectangle(40, 60 , 90, 70, WHITE);
sim91 1:070b617f00f3 197 lcd.filled_rectangle(0, 0 , 30, 10, YELLOW);
sim91 1:070b617f00f3 198 lcd.filled_rectangle(60, 0 , 127, 10, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 199 break;
sheldonfernandes2404 0:fcc91e110a28 200 }
sheldonfernandes2404 0:fcc91e110a28 201 case (12): {
sim91 1:070b617f00f3 202 lcd.filled_rectangle(40, 70, 90, 80 , WHITE);
sim91 1:070b617f00f3 203 lcd.filled_rectangle(0, 10, 30, 20, YELLOW);
sim91 1:070b617f00f3 204 lcd.filled_rectangle(60, 10, 127, 20, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 205 break;
sheldonfernandes2404 0:fcc91e110a28 206 }
sheldonfernandes2404 0:fcc91e110a28 207 case (11): {
sim91 1:070b617f00f3 208 lcd.filled_rectangle(40, 80, 90, 90 , WHITE);
sim91 1:070b617f00f3 209 lcd.filled_rectangle(0, 20 , 30, 30, YELLOW);
sim91 1:070b617f00f3 210 lcd.filled_rectangle(60, 20 , 127, 30, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 211 break;
sheldonfernandes2404 0:fcc91e110a28 212 }
sheldonfernandes2404 0:fcc91e110a28 213 case (10): {
sim91 1:070b617f00f3 214 lcd.filled_rectangle(40, 90, 90, 100 , WHITE);
sim91 1:070b617f00f3 215 lcd.filled_rectangle(0, 30 , 30, 40, YELLOW);
sim91 1:070b617f00f3 216 lcd.filled_rectangle(60, 30 , 127, 40, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 217 break;
sheldonfernandes2404 0:fcc91e110a28 218 }
sheldonfernandes2404 0:fcc91e110a28 219 case (9): {
sheldonfernandes2404 0:fcc91e110a28 220 lcd.filled_rectangle(40,100 , 90, 110, WHITE);
sim91 1:070b617f00f3 221 lcd.filled_rectangle(0, 40 , 30, 50, YELLOW);
sim91 1:070b617f00f3 222 lcd.filled_rectangle(60, 40 , 127, 50, YELLOW);
sim91 1:070b617f00f3 223 if(a>3 && a<8 ) {
sim91 1:070b617f00f3 224 lcd.locate(3,8);
sheldonfernandes2404 0:fcc91e110a28 225 lcd.printf("YOU LOSE!!!");
sim91 1:070b617f00f3 226 exit(0);
sim91 1:070b617f00f3 227 }
sheldonfernandes2404 0:fcc91e110a28 228 break;
sheldonfernandes2404 0:fcc91e110a28 229 }
sheldonfernandes2404 0:fcc91e110a28 230 case (8): {
sim91 1:070b617f00f3 231 lcd.filled_rectangle(40,110 , 90, 120, WHITE);
sim91 1:070b617f00f3 232 lcd.filled_rectangle(0, 50 , 30, 60, YELLOW);
sim91 1:070b617f00f3 233 lcd.filled_rectangle(60, 50 , 127, 60, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 234 break;
sheldonfernandes2404 0:fcc91e110a28 235 }
sheldonfernandes2404 0:fcc91e110a28 236 case (7): {
sim91 1:070b617f00f3 237 lcd.filled_rectangle(40,120 , 90, 130, WHITE);
sim91 1:070b617f00f3 238 lcd.filled_rectangle(0, 60 , 30, 70, YELLOW);
sim91 1:070b617f00f3 239 lcd.filled_rectangle(60, 60 , 127, 70, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 240 break;
sheldonfernandes2404 0:fcc91e110a28 241 }
sheldonfernandes2404 0:fcc91e110a28 242 case (6): {
sim91 1:070b617f00f3 243 lcd.filled_rectangle(0, 70 , 30, 80, YELLOW);
sim91 1:070b617f00f3 244 lcd.filled_rectangle(60, 70 , 127, 80, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 245 break;
sheldonfernandes2404 0:fcc91e110a28 246 }
sheldonfernandes2404 0:fcc91e110a28 247 case (5): {
sim91 1:070b617f00f3 248 lcd.filled_rectangle(0, 80 , 30, 90, YELLOW);
sim91 1:070b617f00f3 249 lcd.filled_rectangle(60, 80 , 127, 90, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 250 break;
sheldonfernandes2404 0:fcc91e110a28 251 }
sheldonfernandes2404 0:fcc91e110a28 252 case (4): {
sim91 1:070b617f00f3 253 lcd.filled_rectangle(0, 90 , 30, 100, YELLOW);
sim91 1:070b617f00f3 254 lcd.filled_rectangle(60, 90 , 127, 100, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 255 break;
sheldonfernandes2404 0:fcc91e110a28 256 }
sheldonfernandes2404 0:fcc91e110a28 257 case (3): {
sim91 1:070b617f00f3 258 lcd.filled_rectangle(0, 100 , 30, 110, YELLOW);
sim91 1:070b617f00f3 259 lcd.filled_rectangle(60, 100 , 127, 110, YELLOW);
sim91 1:070b617f00f3 260 if(a<4 || a>5 ) {
sim91 1:070b617f00f3 261 lcd.locate(3,8);
sim91 1:070b617f00f3 262 lcd.printf("YOU LOSE!!!");
sim91 1:070b617f00f3 263 exit(0);
sim91 1:070b617f00f3 264 }
sheldonfernandes2404 0:fcc91e110a28 265 break;
sheldonfernandes2404 0:fcc91e110a28 266 }
sheldonfernandes2404 0:fcc91e110a28 267 case (2): {
sim91 1:070b617f00f3 268 lcd.filled_rectangle(0, 110 , 30, 120, YELLOW);
sim91 1:070b617f00f3 269 lcd.filled_rectangle(60, 110 , 127, 120, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 270 break;
sheldonfernandes2404 0:fcc91e110a28 271 }
sheldonfernandes2404 0:fcc91e110a28 272 case (1): {
sim91 1:070b617f00f3 273 lcd.filled_rectangle(0, 120 , 30, 130, YELLOW);
sim91 1:070b617f00f3 274 lcd.filled_rectangle(60, 120 , 127, 130, YELLOW);
sheldonfernandes2404 0:fcc91e110a28 275 break;
sheldonfernandes2404 0:fcc91e110a28 276 }
sheldonfernandes2404 0:fcc91e110a28 277
sheldonfernandes2404 0:fcc91e110a28 278 }
sheldonfernandes2404 0:fcc91e110a28 279 stdio_mutex.unlock();
sheldonfernandes2404 0:fcc91e110a28 280 }
sheldonfernandes2404 0:fcc91e110a28 281 }
sheldonfernandes2404 0:fcc91e110a28 282
sheldonfernandes2404 0:fcc91e110a28 283 int main(void)
sheldonfernandes2404 0:fcc91e110a28 284 {
sheldonfernandes2404 0:fcc91e110a28 285
sheldonfernandes2404 0:fcc91e110a28 286 Thread thread1(steering);
sheldonfernandes2404 0:fcc91e110a28 287 Thread thread2(obstacle);
sim91 1:070b617f00f3 288 Thread thread3(forward);
sheldonfernandes2404 0:fcc91e110a28 289
sheldonfernandes2404 0:fcc91e110a28 290 while (1) {
sheldonfernandes2404 0:fcc91e110a28 291 stdio_mutex.lock();
sheldonfernandes2404 0:fcc91e110a28 292 int wait=450*force;
sheldonfernandes2404 0:fcc91e110a28 293 lcd.locate(13,0);
sheldonfernandes2404 0:fcc91e110a28 294 lcd.printf("%d",--count);
sheldonfernandes2404 0:fcc91e110a28 295
sheldonfernandes2404 0:fcc91e110a28 296 Thread::wait(600-wait);
sheldonfernandes2404 0:fcc91e110a28 297 if(count==0) {
sim91 1:070b617f00f3 298 lcd.cls();
sheldonfernandes2404 0:fcc91e110a28 299 lcd.locate(1,8);
sheldonfernandes2404 0:fcc91e110a28 300 lcd.printf("Congrats You win!");
sheldonfernandes2404 0:fcc91e110a28 301 exit(0);
sheldonfernandes2404 0:fcc91e110a28 302 }
sheldonfernandes2404 0:fcc91e110a28 303 stdio_mutex.unlock();
sheldonfernandes2404 0:fcc91e110a28 304 }
sheldonfernandes2404 0:fcc91e110a28 305 }