First Draft, serial print change based on distance

Committer:
liam94
Date:
Thu Feb 03 21:43:40 2022 +0000
Revision:
13:cc99df342c7f
Parent:
10:be53044119d1
Child:
14:837945ccd8c0
removed the L button input and the print string references to it as it is no longer needed in the code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
liam94 0:506531d0531c 1 #include "mbed.h"
liam94 0:506531d0531c 2 #include "ultrasonic.h"
liam94 0:506531d0531c 3 #include "N5110.h"
liam94 5:98845ccaaacd 4 #include "Joystick.h"
liam94 5:98845ccaaacd 5 #include "main.h"
liam94 4:77500a7f951d 6
liam94 8:7e48229d678c 7 /***************************************************************************//**
liam94 8:7e48229d678c 8 *
liam94 8:7e48229d678c 9 * the main code below sets all the interrupts to pull down and also for the start
liam94 8:7e48229d678c 10 * and back buttons it is sent to the specific start and back functions which sets
liam94 8:7e48229d678c 11 * the flags which are then used in other functions.
liam94 8:7e48229d678c 12 *
liam94 8:7e48229d678c 13 * the mu.startUpdates() is where the ultrasonic sensor is told to start measuring
liam94 8:7e48229d678c 14 * the distances.
liam94 8:7e48229d678c 15 * the joystick and lcd are then initialised and the man menu function is then
liam94 8:7e48229d678c 16 * called.
liam94 8:7e48229d678c 17 *
liam94 8:7e48229d678c 18 *******************************************************************************/
liam94 2:3ace5b4ae9a7 19
liam94 2:3ace5b4ae9a7 20 int main()
liam94 1:a1795335ef8c 21 {
liam94 5:98845ccaaacd 22
liam94 3:0b0fbddb6f51 23 R.mode(PullDown);
liam94 5:98845ccaaacd 24 Start.mode(PullDown);
liam94 5:98845ccaaacd 25 Start.rise(Start_isr);
liam94 5:98845ccaaacd 26 Back.mode(PullDown);
liam94 5:98845ccaaacd 27 Back.rise(Back_isr);
liam94 8:7e48229d678c 28 // printf("set buttons");
liam94 8:7e48229d678c 29
liam94 8:7e48229d678c 30 mu.startUpdates();
liam94 8:7e48229d678c 31 // printf ("Ultrasonic Updates started");
liam94 5:98845ccaaacd 32
liam94 5:98845ccaaacd 33 joystick.init();
liam94 8:7e48229d678c 34 // printf("initialise joystick")
liam94 5:98845ccaaacd 35 init_display();
liam94 8:7e48229d678c 36
liam94 5:98845ccaaacd 37 main_menu();
liam94 5:98845ccaaacd 38
liam94 5:98845ccaaacd 39 }
liam94 5:98845ccaaacd 40
liam94 8:7e48229d678c 41 /***************************************************************************//**
liam94 8:7e48229d678c 42 *
liam94 8:7e48229d678c 43 * added function which initalise the display and sets the contrast, this is
liam94 8:7e48229d678c 44 * called from the int main and so the LCD boots up on startup.
liam94 8:7e48229d678c 45 *
liam94 8:7e48229d678c 46 *******************************************************************************/
liam94 8:7e48229d678c 47
liam94 5:98845ccaaacd 48 void init_display(){
liam94 8:7e48229d678c 49
liam94 8:7e48229d678c 50 // printf("initialise display");
liam94 4:77500a7f951d 51 lcd.init();
liam94 4:77500a7f951d 52 lcd.setContrast(0.4);
liam94 8:7e48229d678c 53 lcd.clear();
liam94 5:98845ccaaacd 54
liam94 5:98845ccaaacd 55 }
liam94 8:7e48229d678c 56
liam94 8:7e48229d678c 57 /***************************************************************************//**
liam94 8:7e48229d678c 58 *
liam94 8:7e48229d678c 59 * this function is the main menu for the program, it is called at the start and
liam94 8:7e48229d678c 60 * depending on what string is selected, clicking the start uton will send the
liam94 8:7e48229d678c 61 * user to the specified function.
liam94 8:7e48229d678c 62 *
liam94 8:7e48229d678c 63 *******************************************************************************/
liam94 5:98845ccaaacd 64
liam94 5:98845ccaaacd 65 void main_menu(){
liam94 5:98845ccaaacd 66
liam94 8:7e48229d678c 67 // printf("main menu");
liam94 8:7e48229d678c 68
liam94 5:98845ccaaacd 69 lcd.clear();
liam94 5:98845ccaaacd 70 Start_flag = 0;
liam94 5:98845ccaaacd 71 int select = 0;
liam94 13:cc99df342c7f 72 LEDS = 63; // 63 on the bus output sets all LEDs to off
liam94 5:98845ccaaacd 73
liam94 5:98845ccaaacd 74 while (1) {
liam94 5:98845ccaaacd 75
liam94 5:98845ccaaacd 76 Direction d = joystick.get_direction();
liam94 8:7e48229d678c 77 // printf("Direction = %i\n",d);
liam94 5:98845ccaaacd 78
liam94 5:98845ccaaacd 79 switch(select) {
liam94 5:98845ccaaacd 80 case 0:
liam94 5:98845ccaaacd 81 switch(d) {
liam94 8:7e48229d678c 82 case N:
liam94 5:98845ccaaacd 83 select = 1;
liam94 8:7e48229d678c 84 // printf("UP");
liam94 5:98845ccaaacd 85 break;
liam94 8:7e48229d678c 86 case S:
liam94 5:98845ccaaacd 87 select = 1;
liam94 8:7e48229d678c 88 // printf("Down");
liam94 5:98845ccaaacd 89 break;
liam94 5:98845ccaaacd 90 }
liam94 5:98845ccaaacd 91 break;
liam94 5:98845ccaaacd 92 case 1:
liam94 5:98845ccaaacd 93 switch(d) {
liam94 8:7e48229d678c 94 case N:
liam94 5:98845ccaaacd 95 select = 0;
liam94 8:7e48229d678c 96 // printf("UP");
liam94 5:98845ccaaacd 97 break;
liam94 8:7e48229d678c 98 case S:
liam94 5:98845ccaaacd 99 select = 0;
liam94 8:7e48229d678c 100 // printf("Down");
liam94 5:98845ccaaacd 101 break;
liam94 5:98845ccaaacd 102 }
liam94 5:98845ccaaacd 103 break;
liam94 5:98845ccaaacd 104
liam94 5:98845ccaaacd 105 }
liam94 5:98845ccaaacd 106 wait(0.1);
liam94 5:98845ccaaacd 107 if (select == 0) {
liam94 8:7e48229d678c 108 // printf("main menu - sense object");
liam94 5:98845ccaaacd 109 lcd.clear();
liam94 5:98845ccaaacd 110 lcd.printString("Detect",27,0);
liam94 5:98845ccaaacd 111 lcd.printString("Sense Object",7,2);
liam94 5:98845ccaaacd 112 lcd.printString("Calibration",7,3);
liam94 5:98845ccaaacd 113 lcd.drawCircle(3,19,2,FILL_TRANSPARENT);
liam94 5:98845ccaaacd 114 lcd.refresh();
liam94 5:98845ccaaacd 115 wait(0.15);
liam94 5:98845ccaaacd 116 if (Start_flag == 1) {
liam94 5:98845ccaaacd 117 Start_flag = 0;
liam94 5:98845ccaaacd 118 sense_object();
liam94 5:98845ccaaacd 119 }
liam94 5:98845ccaaacd 120 } else if (select == 1) {
liam94 8:7e48229d678c 121 // printf("main menu - calibration");
liam94 5:98845ccaaacd 122 lcd.clear();
liam94 5:98845ccaaacd 123 lcd.printString("Detect",27,0);
liam94 5:98845ccaaacd 124 lcd.printString("Sense Object", 7,2);
liam94 5:98845ccaaacd 125 lcd.printString("Calibration",7,3);
liam94 5:98845ccaaacd 126 lcd.drawCircle(3,27,2,FILL_TRANSPARENT);
liam94 5:98845ccaaacd 127 lcd.refresh();
liam94 5:98845ccaaacd 128 wait(0.15);
liam94 5:98845ccaaacd 129 if (Start_flag == 1) {
liam94 5:98845ccaaacd 130 Start_flag = 0;
liam94 6:18a4dd77057e 131 calibrate_object();
liam94 5:98845ccaaacd 132 }
liam94 5:98845ccaaacd 133 }
liam94 5:98845ccaaacd 134 }
liam94 5:98845ccaaacd 135 }
liam94 5:98845ccaaacd 136
liam94 8:7e48229d678c 137 /***************************************************************************//**
liam94 8:7e48229d678c 138 *
liam94 8:7e48229d678c 139 * this function is for sensing the object
liam94 8:7e48229d678c 140 *
liam94 8:7e48229d678c 141 *******************************************************************************/
liam94 8:7e48229d678c 142
liam94 5:98845ccaaacd 143 void sense_object(){
liam94 8:7e48229d678c 144
liam94 8:7e48229d678c 145 // printf("sense object");
liam94 5:98845ccaaacd 146
liam94 5:98845ccaaacd 147 // set inital state
liam94 5:98845ccaaacd 148 int state = 0;
liam94 5:98845ccaaacd 149
liam94 2:3ace5b4ae9a7 150 while(1)
liam94 2:3ace5b4ae9a7 151 {
liam94 13:cc99df342c7f 152 LEDS = fsm[state]; // output current state
liam94 10:be53044119d1 153 printf("state = %d\r\n",state);
liam94 8:7e48229d678c 154
liam94 8:7e48229d678c 155 // check which state we are in and see which the next state should be
liam94 4:77500a7f951d 156 switch(state) {
liam94 9:ada61082bbaa 157 case 0:{
liam94 4:77500a7f951d 158 lcd.clear();
liam94 4:77500a7f951d 159 lcd.printString(" object at 0'",0,0);
liam94 4:77500a7f951d 160 lcd.printString(" R + 60'",0,2);
liam94 13:cc99df342c7f 161 lcd.printString("Start to take",0,4);
liam94 13:cc99df342c7f 162 lcd.printString(" Reading ",0,5);
liam94 4:77500a7f951d 163 lcd.refresh();
liam94 3:0b0fbddb6f51 164 if (R == 1){
liam94 3:0b0fbddb6f51 165 state = 1;}
liam94 3:0b0fbddb6f51 166 else state = 0;
liam94 9:ada61082bbaa 167
liam94 9:ada61082bbaa 168 if (Start_flag == 1) {
liam94 9:ada61082bbaa 169 Start_flag = 0;
liam94 9:ada61082bbaa 170 object_sense1();
liam94 9:ada61082bbaa 171 }
liam94 9:ada61082bbaa 172
liam94 9:ada61082bbaa 173 break;}
liam94 10:be53044119d1 174
liam94 9:ada61082bbaa 175 case 1:{
liam94 4:77500a7f951d 176 lcd.clear();
liam94 4:77500a7f951d 177 lcd.printString(" object at 60'",0,0);
liam94 4:77500a7f951d 178 lcd.printString(" R + 60'",0,2);
liam94 13:cc99df342c7f 179 lcd.printString("Start to take",0,4);
liam94 13:cc99df342c7f 180 lcd.printString(" Reading ",0,5);
liam94 4:77500a7f951d 181 lcd.refresh();
liam94 3:0b0fbddb6f51 182 if (R == 1){
liam94 3:0b0fbddb6f51 183 state = 2;}
liam94 3:0b0fbddb6f51 184 else state = 1;
liam94 9:ada61082bbaa 185
liam94 9:ada61082bbaa 186 if (Start_flag == 1) {
liam94 9:ada61082bbaa 187 Start_flag = 0;
liam94 9:ada61082bbaa 188 object_sense2();
liam94 9:ada61082bbaa 189 }
liam94 10:be53044119d1 190
liam94 10:be53044119d1 191 break;}
liam94 9:ada61082bbaa 192 case 2:{
liam94 4:77500a7f951d 193 lcd.clear();
liam94 4:77500a7f951d 194 lcd.printString(" object at 120'",0,0);
liam94 4:77500a7f951d 195 lcd.printString(" R + 60'",0,2);
liam94 13:cc99df342c7f 196 lcd.printString("Start to take",0,4);
liam94 13:cc99df342c7f 197 lcd.printString(" Reading ",0,5);
liam94 4:77500a7f951d 198 lcd.refresh();
liam94 3:0b0fbddb6f51 199 if (R == 1){
liam94 3:0b0fbddb6f51 200 state = 3;}
liam94 3:0b0fbddb6f51 201 else state = 2;
liam94 9:ada61082bbaa 202
liam94 9:ada61082bbaa 203 if (Start_flag == 1) {
liam94 9:ada61082bbaa 204 Start_flag = 0;
liam94 9:ada61082bbaa 205 object_sense3();
liam94 9:ada61082bbaa 206 }
liam94 10:be53044119d1 207
liam94 10:be53044119d1 208 break;}
liam94 10:be53044119d1 209
liam94 9:ada61082bbaa 210 case 3:{
liam94 4:77500a7f951d 211 lcd.clear();
liam94 4:77500a7f951d 212 lcd.printString(" object at 180'",0,0);
liam94 4:77500a7f951d 213 lcd.printString(" R + 60'",0,2);
liam94 13:cc99df342c7f 214 lcd.printString("Start to take",0,4);
liam94 13:cc99df342c7f 215 lcd.printString(" Reading ",0,5);
liam94 4:77500a7f951d 216 lcd.refresh();
liam94 3:0b0fbddb6f51 217 if (R == 1){
liam94 3:0b0fbddb6f51 218 state = 4;}
liam94 3:0b0fbddb6f51 219 else state = 3;
liam94 9:ada61082bbaa 220
liam94 9:ada61082bbaa 221 if (Start_flag == 1) {
liam94 9:ada61082bbaa 222 Start_flag = 0;
liam94 9:ada61082bbaa 223 object_sense4();
liam94 9:ada61082bbaa 224 }
liam94 10:be53044119d1 225
liam94 10:be53044119d1 226 break;}
liam94 10:be53044119d1 227
liam94 9:ada61082bbaa 228 case 4:{
liam94 4:77500a7f951d 229 lcd.clear();
liam94 4:77500a7f951d 230 lcd.printString(" object at 240'",0,0);
liam94 4:77500a7f951d 231 lcd.printString(" R + 60'",0,2);
liam94 13:cc99df342c7f 232 lcd.printString("Start to take",0,4);
liam94 13:cc99df342c7f 233 lcd.printString(" Reading ",0,5);
liam94 4:77500a7f951d 234 lcd.refresh();
liam94 3:0b0fbddb6f51 235 if (R == 1){
liam94 3:0b0fbddb6f51 236 state = 5;}
liam94 3:0b0fbddb6f51 237 else state = 4;
liam94 9:ada61082bbaa 238
liam94 9:ada61082bbaa 239 if (Start_flag == 1) {
liam94 9:ada61082bbaa 240 Start_flag = 0;
liam94 9:ada61082bbaa 241 object_sense5();
liam94 9:ada61082bbaa 242 }
liam94 10:be53044119d1 243
liam94 10:be53044119d1 244 break;}
liam94 10:be53044119d1 245
liam94 9:ada61082bbaa 246 case 5:{
liam94 4:77500a7f951d 247 lcd.clear();
liam94 4:77500a7f951d 248 lcd.printString(" object at 300'",0,0);
liam94 4:77500a7f951d 249 lcd.printString(" R + 60'",0,2);
liam94 13:cc99df342c7f 250 lcd.printString("Start to take",0,4);
liam94 13:cc99df342c7f 251 lcd.printString(" Reading ",0,5);
liam94 4:77500a7f951d 252 lcd.refresh();
liam94 3:0b0fbddb6f51 253 if (R == 1){
liam94 10:be53044119d1 254 object_detection();}
liam94 3:0b0fbddb6f51 255 else state = 5;
liam94 10:be53044119d1 256
liam94 9:ada61082bbaa 257 if (Start_flag == 1) {
liam94 9:ada61082bbaa 258 Start_flag = 0;
liam94 9:ada61082bbaa 259 object_sense6();
liam94 9:ada61082bbaa 260 }
liam94 10:be53044119d1 261
liam94 10:be53044119d1 262 break;}
liam94 9:ada61082bbaa 263
liam94 9:ada61082bbaa 264 default:{
liam94 2:3ace5b4ae9a7 265 error("Invalid state"); //invalid state - call error routine
liam94 2:3ace5b4ae9a7 266 // or could jump to starting state i.e. state = 0
liam94 9:ada61082bbaa 267 break;}
liam94 2:3ace5b4ae9a7 268 }
liam94 6:18a4dd77057e 269 if (Back_flag == 1) {
liam94 6:18a4dd77057e 270 Back_flag = 0;
liam94 6:18a4dd77057e 271 main_menu();}
liam94 6:18a4dd77057e 272
liam94 5:98845ccaaacd 273 ThisThread::sleep_for(200);
liam94 5:98845ccaaacd 274 }
liam94 5:98845ccaaacd 275 }
liam94 8:7e48229d678c 276
liam94 8:7e48229d678c 277 /***************************************************************************//**
liam94 8:7e48229d678c 278 *
liam94 8:7e48229d678c 279 * this function is for calibrating the distance in which the object centre point
liam94 8:7e48229d678c 280 * should be away from the sensor, it checks the current distance and then though
liam94 8:7e48229d678c 281 * the function "void dist" displays the current distance on the screen.
liam94 8:7e48229d678c 282 * this function also tells the user the distance away from the target centre
liam94 8:7e48229d678c 283 * point this should be, this is so that the board is the right distance away and
liam94 8:7e48229d678c 284 * will be able to detect the object better.
liam94 8:7e48229d678c 285 *
liam94 8:7e48229d678c 286 * in order to print the distance onto the LCD the current distance is printed to
liam94 8:7e48229d678c 287 * a buffer which is a max length of 14 (the amount of characters that can fit
liam94 8:7e48229d678c 288 * width ways on the screen) this can then be printed on the screen using print
liam94 8:7e48229d678c 289 * string.
liam94 8:7e48229d678c 290 *
liam94 8:7e48229d678c 291 *******************************************************************************/
liam94 8:7e48229d678c 292
liam94 6:18a4dd77057e 293 void calibrate_object(){
liam94 6:18a4dd77057e 294
liam94 9:ada61082bbaa 295 sense = 0;
liam94 9:ada61082bbaa 296
liam94 6:18a4dd77057e 297 while(1)
liam94 6:18a4dd77057e 298 {
liam94 9:ada61082bbaa 299 mu.checkDistance();
liam94 7:7464fbb0f3e1 300
liam94 6:18a4dd77057e 301 if (Back_flag == 1) {
liam94 6:18a4dd77057e 302 Back_flag = 0;
liam94 6:18a4dd77057e 303 main_menu();}
liam94 6:18a4dd77057e 304
liam94 6:18a4dd77057e 305 wait (1);
liam94 6:18a4dd77057e 306 }
liam94 6:18a4dd77057e 307 }
liam94 9:ada61082bbaa 308
liam94 7:7464fbb0f3e1 309 void dist(int distance)
liam94 7:7464fbb0f3e1 310 {
liam94 10:be53044119d1 311 printf("sense = %d\n", sense);
liam94 8:7e48229d678c 312 // printf("Distance changed to %dmm\r\n", distance);
liam94 9:ada61082bbaa 313
liam94 9:ada61082bbaa 314 lcd.clear();
liam94 7:7464fbb0f3e1 315
liam94 9:ada61082bbaa 316 char buffer[14];
liam94 9:ada61082bbaa 317 int length = sprintf(buffer,"%dmm", distance);
liam94 9:ada61082bbaa 318 if (length <= 14)
liam94 7:7464fbb0f3e1 319
liam94 9:ada61082bbaa 320 lcd.printString("set object to",0,0);
liam94 9:ada61082bbaa 321 lcd.printString(" 200mm",0,1);
liam94 9:ada61082bbaa 322 lcd.printString(buffer,24,3);
liam94 9:ada61082bbaa 323 lcd.refresh();
liam94 10:be53044119d1 324
liam94 7:7464fbb0f3e1 325 }
liam94 8:7e48229d678c 326
liam94 8:7e48229d678c 327 /***************************************************************************//**
liam94 8:7e48229d678c 328 *
liam94 10:be53044119d1 329 * this is where the magic happens
liam94 10:be53044119d1 330 *
liam94 10:be53044119d1 331 *******************************************************************************/
liam94 10:be53044119d1 332
liam94 10:be53044119d1 333 void object_sense1(){
liam94 10:be53044119d1 334
liam94 10:be53044119d1 335 sense = 1;
liam94 10:be53044119d1 336
liam94 10:be53044119d1 337 Distance1 = mu.getCurrentDistance();
liam94 13:cc99df342c7f 338
liam94 10:be53044119d1 339 printf("distance at sense 1 = %d\r\n", Distance1);
liam94 10:be53044119d1 340
liam94 10:be53044119d1 341 }
liam94 10:be53044119d1 342
liam94 10:be53044119d1 343 void object_sense2(){
liam94 10:be53044119d1 344
liam94 10:be53044119d1 345 sense = 2;
liam94 10:be53044119d1 346
liam94 10:be53044119d1 347 Distance2 = mu.getCurrentDistance();
liam94 10:be53044119d1 348
liam94 10:be53044119d1 349 printf("distance at sense 2 = %d\r\n", Distance2);
liam94 10:be53044119d1 350
liam94 10:be53044119d1 351 }
liam94 10:be53044119d1 352
liam94 10:be53044119d1 353 void object_sense3(){
liam94 10:be53044119d1 354
liam94 10:be53044119d1 355 sense = 3;
liam94 10:be53044119d1 356
liam94 10:be53044119d1 357 Distance3 = mu.getCurrentDistance();
liam94 10:be53044119d1 358
liam94 10:be53044119d1 359 printf("distance at sense 3 = %d\r\n", Distance3);
liam94 10:be53044119d1 360
liam94 10:be53044119d1 361 }
liam94 10:be53044119d1 362
liam94 10:be53044119d1 363 void object_sense4(){
liam94 10:be53044119d1 364
liam94 10:be53044119d1 365 sense = 4;
liam94 10:be53044119d1 366
liam94 10:be53044119d1 367 Distance4 = mu.getCurrentDistance();
liam94 10:be53044119d1 368
liam94 10:be53044119d1 369 printf("distance at sense 4 = %d\r\n", Distance4);
liam94 10:be53044119d1 370
liam94 10:be53044119d1 371 }
liam94 10:be53044119d1 372
liam94 10:be53044119d1 373 void object_sense5(){
liam94 10:be53044119d1 374
liam94 10:be53044119d1 375 sense = 5;
liam94 10:be53044119d1 376
liam94 10:be53044119d1 377 Distance5 = mu.getCurrentDistance();
liam94 10:be53044119d1 378
liam94 10:be53044119d1 379 printf("distance at sense 5 = %d\r\n", Distance5);
liam94 10:be53044119d1 380
liam94 10:be53044119d1 381 }
liam94 10:be53044119d1 382
liam94 10:be53044119d1 383 void object_sense6(){
liam94 10:be53044119d1 384
liam94 10:be53044119d1 385 sense = 6;
liam94 10:be53044119d1 386
liam94 10:be53044119d1 387 Distance6 = mu.getCurrentDistance();
liam94 10:be53044119d1 388
liam94 10:be53044119d1 389 printf("distance at sense 6 = %d\r\n", Distance6);
liam94 10:be53044119d1 390
liam94 10:be53044119d1 391 }
liam94 10:be53044119d1 392
liam94 10:be53044119d1 393 void object_detection(){
liam94 10:be53044119d1 394
liam94 10:be53044119d1 395 lcd.clear();
liam94 10:be53044119d1 396
liam94 10:be53044119d1 397 //printf("Distance 1 = %d\n", Distance1);
liam94 10:be53044119d1 398 //printf("glass[0] = %d\n", glass[0]);
liam94 10:be53044119d1 399 //printf("glass[6] = %d\n", glass[6]);
liam94 10:be53044119d1 400 if (abs(Distance1 - glass[0]) <= 10 and abs(Distance2 - glass[1]) <= 10 and abs(Distance3 - glass[2]) <= 10 and abs(Distance4 - glass[3]) <= 10 and abs(Distance5 - glass[4]) <= 10 and abs(Distance6 - glass[5]) <= 10){
liam94 10:be53044119d1 401 printf("glass\n");
liam94 13:cc99df342c7f 402 lcd.printString(" Object Found!",0,1);
liam94 13:cc99df342c7f 403 lcd.printString(" Pint Glass",0,3);
liam94 10:be53044119d1 404 lcd.refresh();}
liam94 10:be53044119d1 405
liam94 10:be53044119d1 406 else{
liam94 10:be53044119d1 407 printf("nothing\n");
liam94 13:cc99df342c7f 408 lcd.printString(" No Object!",0,1);
liam94 13:cc99df342c7f 409 lcd.printString(" Please Try",0,3);
liam94 10:be53044119d1 410 lcd.printString("Again",24,4);
liam94 10:be53044119d1 411 lcd.refresh();}
liam94 10:be53044119d1 412 }
liam94 10:be53044119d1 413
liam94 10:be53044119d1 414 /***************************************************************************//**
liam94 10:be53044119d1 415 *
liam94 8:7e48229d678c 416 * these functions are for setting the flags for the start and back butons which
liam94 8:7e48229d678c 417 * are used in the other functions.
liam94 8:7e48229d678c 418 *
liam94 8:7e48229d678c 419 *******************************************************************************/
liam94 8:7e48229d678c 420
liam94 5:98845ccaaacd 421 void Start_isr()
liam94 5:98845ccaaacd 422 {
liam94 8:7e48229d678c 423 // printf("start button pressed");
liam94 5:98845ccaaacd 424 Start_flag = 1;
liam94 2:3ace5b4ae9a7 425 }
liam94 2:3ace5b4ae9a7 426
liam94 5:98845ccaaacd 427 void Back_isr()
liam94 5:98845ccaaacd 428 {
liam94 8:7e48229d678c 429 // printf("back button pressed");
liam94 5:98845ccaaacd 430 Back_flag = 1;
liam94 1:a1795335ef8c 431 }
liam94 5:98845ccaaacd 432