Coursework

Committer:
sesa514652
Date:
Thu Feb 03 22:03:36 2022 +0000
Revision:
40:0d55297c8b34
Parent:
39:a31b49f3e65e
Child:
41:16cd48d6e834
more functions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sesa514652 28:aab0aa846cf6 1 /**
sesa514652 28:aab0aa846cf6 2 *.....Kory Hamill
sesa514652 28:aab0aa846cf6 3 *.....IOT Smart Electronics Coursework
sesa514652 36:3e975536e8d7 4 *.....Acknowlegements Libary Makers
sesa514652 28:aab0aa846cf6 5 *.....18689004
sesa514652 28:aab0aa846cf6 6 */
sesa514652 28:aab0aa846cf6 7 /**
sesa514652 28:aab0aa846cf6 8 * Section of code to bring in the #includes
sesa514652 28:aab0aa846cf6 9 */
sesa514652 0:1f799c7cce2b 10 #include "mbed.h"
sesa514652 38:71cfbdd2076d 11 //#include "Joystick.h" Not used in project
sesa514652 0:1f799c7cce2b 12 #include "N5110.h"
sesa514652 0:1f799c7cce2b 13 #include "hcsr04.h"
sesa514652 3:6ecb75a2675c 14 #include "Piezo.h"
sesa514652 8:770d168713cc 15 #include "string"
sesa514652 20:4e1f2917a857 16 #include "array"
sesa514652 22:82b01fdfc61f 17 #include <iostream>
sesa514652 37:323ec7d23454 18 #include <numeric>
sesa514652 37:323ec7d23454 19
sesa514652 36:3e975536e8d7 20 using namespace std;
sesa514652 35:36c7605dda06 21
sesa514652 28:aab0aa846cf6 22 /**
sesa514652 28:aab0aa846cf6 23 *...This Section of the code is used to bring in volatile Varible's, These can be wrote to throught the code.
sesa514652 28:aab0aa846cf6 24 *...The Varibles are used to track button press's on the board.
sesa514652 28:aab0aa846cf6 25 */
sesa514652 28:aab0aa846cf6 26 volatile int g_ButtonAPress;
sesa514652 28:aab0aa846cf6 27 volatile int g_ButtonBPress;
sesa514652 33:3717bc4e2fa8 28 volatile int LoopCountScan1;
sesa514652 33:3717bc4e2fa8 29 volatile int LoopCountScan2;
sesa514652 33:3717bc4e2fa8 30 volatile int LoopCountScan3;
sesa514652 33:3717bc4e2fa8 31 volatile int LoopCountScan4;
sesa514652 33:3717bc4e2fa8 32 volatile int LoopCountScan5;
sesa514652 40:0d55297c8b34 33 volatile int LoopCountScan6;
sesa514652 28:aab0aa846cf6 34 volatile int g_buttonA_flag = 0;
sesa514652 28:aab0aa846cf6 35 volatile int g_buttonB_flag = 0;
sesa514652 28:aab0aa846cf6 36 volatile int g_buttonX_flag = 0;
sesa514652 28:aab0aa846cf6 37 volatile int g_buttonY_flag = 0;
sesa514652 28:aab0aa846cf6 38 volatile int g_buttonStart_flag = 0;
sesa514652 28:aab0aa846cf6 39 volatile int g_buttonBack_flag = 0;
sesa514652 28:aab0aa846cf6 40 volatile int g_buttonLeft_flag = 0;
sesa514652 28:aab0aa846cf6 41 volatile int g_buttonRight_flag = 0;
sesa514652 40:0d55297c8b34 42 volatile int wallTotal;
sesa514652 40:0d55297c8b34 43 volatile int boxTotal;
sesa514652 40:0d55297c8b34 44 volatile int cartonTotal;
sesa514652 31:91a3c61d33e6 45 /**
sesa514652 31:91a3c61d33e6 46 *..Bring in 5 arrays of 5 for each of the 5 required scans.
sesa514652 31:91a3c61d33e6 47 *..array Ref starts at 0,
sesa514652 31:91a3c61d33e6 48 */
sesa514652 31:91a3c61d33e6 49 volatile int Scan1[5];
sesa514652 38:71cfbdd2076d 50 /* no longer required
sesa514652 31:91a3c61d33e6 51 volatile int Scan2[5];
sesa514652 31:91a3c61d33e6 52 volatile int Scan3[5];
sesa514652 31:91a3c61d33e6 53 volatile int Scan4[5];
sesa514652 31:91a3c61d33e6 54 volatile int Scan5[5];
sesa514652 38:71cfbdd2076d 55 volatile int wall[5];
sesa514652 38:71cfbdd2076d 56 */
sesa514652 28:aab0aa846cf6 57 /**
sesa514652 28:aab0aa846cf6 58 *... Section of code to assign names to IO pins on the K64f
sesa514652 28:aab0aa846cf6 59 */
sesa514652 8:770d168713cc 60 InterruptIn buttonA(PTB9);
sesa514652 8:770d168713cc 61 InterruptIn buttonB(PTD0);
sesa514652 8:770d168713cc 62 InterruptIn buttonX(PTC17);
sesa514652 8:770d168713cc 63 InterruptIn buttonY(PTC12);
sesa514652 11:1dec05b7d1c1 64 InterruptIn buttonStart(PTC5);
sesa514652 11:1dec05b7d1c1 65 InterruptIn buttonBack(PTB19);
sesa514652 11:1dec05b7d1c1 66 InterruptIn buttonLeft(PTB18);
sesa514652 11:1dec05b7d1c1 67 InterruptIn buttonRight(PTB3);
sesa514652 38:71cfbdd2076d 68 //Joystick joystick(PTB10,PTB11,PTC16); Not used in project
sesa514652 28:aab0aa846cf6 69 HCSR04 sensor(D14, D15);
sesa514652 28:aab0aa846cf6 70 Piezo Buzzer(PTC10);
sesa514652 28:aab0aa846cf6 71 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
sesa514652 28:aab0aa846cf6 72
sesa514652 28:aab0aa846cf6 73 /**
sesa514652 28:aab0aa846cf6 74 *...For used with the LCD Screen. rows,cols
sesa514652 28:aab0aa846cf6 75 */
sesa514652 0:1f799c7cce2b 76 int sprite[8][5] = {
sesa514652 28:aab0aa846cf6 77 { 0,0,1,0,0 },
sesa514652 28:aab0aa846cf6 78 { 0,1,1,1,0 },
sesa514652 28:aab0aa846cf6 79 { 0,0,1,0,0 },
sesa514652 28:aab0aa846cf6 80 { 0,1,1,1,0 },
sesa514652 28:aab0aa846cf6 81 { 1,1,1,1,1 },
sesa514652 28:aab0aa846cf6 82 { 1,1,1,1,1 },
sesa514652 28:aab0aa846cf6 83 { 1,1,0,1,1 },
sesa514652 28:aab0aa846cf6 84 { 1,1,0,1,1 },
sesa514652 28:aab0aa846cf6 85 };
sesa514652 28:aab0aa846cf6 86 /**
sesa514652 28:aab0aa846cf6 87 *...Section for starting the board and seeting up interrupt routines
sesa514652 28:aab0aa846cf6 88 *...Along with other functions to be called later
sesa514652 28:aab0aa846cf6 89 */
sesa514652 11:1dec05b7d1c1 90 void init_K64F(); // Start K64fBoard
sesa514652 11:1dec05b7d1c1 91 void buttonA_isr(); // Button A interrupt service routine
sesa514652 11:1dec05b7d1c1 92 void buttonB_isr(); // Button B interrupt service routine
sesa514652 11:1dec05b7d1c1 93 void buttonX_isr(); // Button X interrupt service routine
sesa514652 11:1dec05b7d1c1 94 void buttonY_isr(); // Button Y interrupt service routine
sesa514652 11:1dec05b7d1c1 95 void buttonStart_isr(); // Button Start interrupt service routine
sesa514652 11:1dec05b7d1c1 96 void buttonBack_isr(); // Button Back interrupt service routine
sesa514652 11:1dec05b7d1c1 97 void buttonLeft_isr(); // Button Left interrupt service routine
sesa514652 11:1dec05b7d1c1 98 void buttonRight_isr(); // Button Right interrupt service routine
sesa514652 31:91a3c61d33e6 99 void inputScan1();
sesa514652 31:91a3c61d33e6 100 void inputScan2();
sesa514652 31:91a3c61d33e6 101 void inputScan3();
sesa514652 31:91a3c61d33e6 102 void inputScan4();
sesa514652 31:91a3c61d33e6 103 void inputScan5();
sesa514652 40:0d55297c8b34 104 void inputScan6();
sesa514652 33:3717bc4e2fa8 105 int NoContinueExit();
sesa514652 18:bb36d96142dd 106 int buttonCountA();
sesa514652 18:bb36d96142dd 107 int buttonCountB();
sesa514652 40:0d55297c8b34 108 void printShape();
sesa514652 36:3e975536e8d7 109
sesa514652 33:3717bc4e2fa8 110
sesa514652 33:3717bc4e2fa8 111
sesa514652 33:3717bc4e2fa8 112
sesa514652 33:3717bc4e2fa8 113
sesa514652 28:aab0aa846cf6 114 EventQueue queue; /**< Required to get around issues with printing onto LCD and the Printf */
sesa514652 28:aab0aa846cf6 115
sesa514652 28:aab0aa846cf6 116
sesa514652 28:aab0aa846cf6 117 /** Code which was never used
sesa514652 28:aab0aa846cf6 118 *
sesa514652 28:aab0aa846cf6 119 *.. was for initial learning of C++
sesa514652 11:1dec05b7d1c1 120 //volatile int g_buttonA_counter = 0; // Global counter
sesa514652 8:770d168713cc 121 //Test function after research C++ lanuage 05/01/22
sesa514652 4:167ce930c9d5 122 int cube(int num){
sesa514652 11:1dec05b7d1c1 123 return num*num;
sesa514652 5:9b2c976ca318 124 };
sesa514652 10:42e70b596099 125 // Menu Items
sesa514652 10:42e70b596099 126 int page1;
sesa514652 10:42e70b596099 127 int page2;
sesa514652 10:42e70b596099 128 int page3;
sesa514652 28:aab0aa846cf6 129 string Listitem1 = "Game"; //
sesa514652 28:aab0aa846cf6 130 string Listitem2 = "Measure"; //
sesa514652 28:aab0aa846cf6 131 string Listitem3 = "Detect"; //
sesa514652 28:aab0aa846cf6 132 / Test of the interup an operating the buzzer this kills the board
sesa514652 9:cdd7d9a123f9 133 void buzzme(){
sesa514652 9:cdd7d9a123f9 134 Buzzer.play(200,120);
sesa514652 9:cdd7d9a123f9 135 wait_ms(5);
sesa514652 9:cdd7d9a123f9 136 Buzzer.play(200,120);;
sesa514652 9:cdd7d9a123f9 137 }
sesa514652 26:8826ed43fad2 138 int Scan1[5];
sesa514652 26:8826ed43fad2 139 int Scan2[5];
sesa514652 24:a88c4941a25e 140 int Scan1Input(){;
sesa514652 25:9798017b837d 141 Scan1[0] = sensor.distance();
sesa514652 25:9798017b837d 142 Scan1[1] = sensor.distance();;
sesa514652 25:9798017b837d 143 Scan1[2] = sensor.distance();;
sesa514652 26:8826ed43fad2 144 Scan1[3] = sensor.distance();;
sesa514652 26:8826ed43fad2 145 Scan1[4] = sensor.distance();;
sesa514652 26:8826ed43fad2 146 return Scan1[0,1,2,3,4];}
sesa514652 28:aab0aa846cf6 147 //void returnme(){
sesa514652 10:42e70b596099 148 //int num;
sesa514652 10:42e70b596099 149 // return num*num;
sesa514652 10:42e70b596099 150 // };
sesa514652 28:aab0aa846cf6 151 */
sesa514652 36:3e975536e8d7 152 /*
sesa514652 36:3e975536e8d7 153 bool Equal(int ar1[],int ar2[], int n, int m){
sesa514652 36:3e975536e8d7 154 if(n!=m)
sesa514652 36:3e975536e8d7 155 return false;
sesa514652 36:3e975536e8d7 156 sort(ar1,ar1 +n);
sesa514652 36:3e975536e8d7 157 sort(ar2,ar2 +m);
sesa514652 36:3e975536e8d7 158 for (int i=0;i<n; i++)
sesa514652 36:3e975536e8d7 159 if(ar1[i]!=ar2[i])
sesa514652 36:3e975536e8d7 160 return false;
sesa514652 36:3e975536e8d7 161 return true;
sesa514652 36:3e975536e8d7 162 }*/
sesa514652 38:71cfbdd2076d 163 /* Problems with this and Being exact and repeatable
sesa514652 37:323ec7d23454 164 bool MatchMade(int arr1[], int arr2[], int n, int m)
sesa514652 36:3e975536e8d7 165 {
sesa514652 36:3e975536e8d7 166 // If lengths of array are not equal means
sesa514652 36:3e975536e8d7 167 // array are not equal
sesa514652 36:3e975536e8d7 168 if (n != m)
sesa514652 36:3e975536e8d7 169 return false;
sesa514652 36:3e975536e8d7 170
sesa514652 36:3e975536e8d7 171 // Sort both arrays
sesa514652 36:3e975536e8d7 172 sort(arr1, arr1 + n);
sesa514652 36:3e975536e8d7 173 sort(arr2, arr2 + m);
sesa514652 36:3e975536e8d7 174
sesa514652 36:3e975536e8d7 175 // Linearly compare elements
sesa514652 36:3e975536e8d7 176 for (int i = 0; i < n; i++)
sesa514652 36:3e975536e8d7 177 if (arr1[i] != arr2[i])
sesa514652 36:3e975536e8d7 178 return false;
sesa514652 36:3e975536e8d7 179
sesa514652 36:3e975536e8d7 180
sesa514652 36:3e975536e8d7 181 // If all elements were same.
sesa514652 36:3e975536e8d7 182 return true;
sesa514652 38:71cfbdd2076d 183 */
sesa514652 38:71cfbdd2076d 184
sesa514652 36:3e975536e8d7 185 int main() {
sesa514652 37:323ec7d23454 186
sesa514652 28:aab0aa846cf6 187
sesa514652 28:aab0aa846cf6 188 /**
sesa514652 28:aab0aa846cf6 189 *.. Intialise joystick and Lcd
sesa514652 28:aab0aa846cf6 190 */
sesa514652 38:71cfbdd2076d 191 // joystick.init(); not used in project
sesa514652 28:aab0aa846cf6 192 lcd.init();
sesa514652 28:aab0aa846cf6 193 lcd.setContrast(0.5);
sesa514652 28:aab0aa846cf6 194 /**
sesa514652 28:aab0aa846cf6 195 *.. Issues were found with the LCd and printf while using interrupts, to get around
sesa514652 28:aab0aa846cf6 196 *.. this issue these queue's to the event thread were added.
sesa514652 28:aab0aa846cf6 197 */
sesa514652 11:1dec05b7d1c1 198 Thread eventThread;
sesa514652 28:aab0aa846cf6 199 eventThread.start(callback(&queue, &EventQueue::dispatch_forever));
sesa514652 28:aab0aa846cf6 200 buttonA.rise(queue.event(&buttonA_isr));
sesa514652 11:1dec05b7d1c1 201 buttonB.rise(queue.event(&buttonB_isr));
sesa514652 11:1dec05b7d1c1 202 buttonX.rise(queue.event(&buttonX_isr));
sesa514652 11:1dec05b7d1c1 203 buttonY.rise(queue.event(&buttonY_isr));
sesa514652 28:aab0aa846cf6 204 buttonStart.rise(queue.event(&buttonStart_isr));
sesa514652 11:1dec05b7d1c1 205 buttonBack.rise(queue.event(&buttonBack_isr));
sesa514652 11:1dec05b7d1c1 206 buttonLeft.rise(queue.event(&buttonLeft_isr));
sesa514652 11:1dec05b7d1c1 207 buttonRight.rise(queue.event(&buttonRight_isr));
sesa514652 28:aab0aa846cf6 208 /**
sesa514652 28:aab0aa846cf6 209 *..Buttons were connected to IO pins which required a pull down resistor to be active.
sesa514652 28:aab0aa846cf6 210 */
sesa514652 8:770d168713cc 211 buttonA.mode(PullDown);
sesa514652 10:42e70b596099 212 buttonB.mode(PullDown);
sesa514652 10:42e70b596099 213 buttonX.mode(PullDown);
sesa514652 10:42e70b596099 214 buttonY.mode(PullDown);
sesa514652 11:1dec05b7d1c1 215 buttonStart.mode(PullDown);
sesa514652 11:1dec05b7d1c1 216 buttonBack.mode(PullDown);
sesa514652 11:1dec05b7d1c1 217 buttonLeft.mode(PullDown);
sesa514652 11:1dec05b7d1c1 218 buttonRight.mode(PullDown);
sesa514652 5:9b2c976ca318 219
sesa514652 28:aab0aa846cf6 220 /**
sesa514652 28:aab0aa846cf6 221 *.. Section of code not used in main program.
sesa514652 28:aab0aa846cf6 222 *
sesa514652 28:aab0aa846cf6 223 Buzzer.period(10.0f);
sesa514652 5:9b2c976ca318 224 //Buzzer.pulsewidth(1);
sesa514652 28:aab0aa846cf6 225 Test Struct after research 05/01/22
sesa514652 6:f7f30e0e3bed 226 struct ObjectDefine{
sesa514652 7:ce70a873aa70 227 int qwer;
sesa514652 6:f7f30e0e3bed 228 float Distance;
sesa514652 7:ce70a873aa70 229 char te;
sesa514652 7:ce70a873aa70 230 double dubs;
sesa514652 7:ce70a873aa70 231 string namestruct;
sesa514652 8:770d168713cc 232 // string ;
sesa514652 6:f7f30e0e3bed 233 };
sesa514652 7:ce70a873aa70 234 // Test Class 06/01/22
sesa514652 10:42e70b596099 235 class myClass{
sesa514652 7:ce70a873aa70 236 public:
sesa514652 7:ce70a873aa70 237 string nameclass ;
sesa514652 7:ce70a873aa70 238 double dubss;
sesa514652 7:ce70a873aa70 239 int inty;
sesa514652 7:ce70a873aa70 240 };
sesa514652 7:ce70a873aa70 241 myClass Class1;
sesa514652 7:ce70a873aa70 242 Class1.nameclass ="firstclass";
sesa514652 10:42e70b596099 243 ObjectDefine Object1;
sesa514652 10:42e70b596099 244 Object1.qwer = 12;
sesa514652 6:f7f30e0e3bed 245 Object1.Distance = 34;
sesa514652 7:ce70a873aa70 246 Object1.te = 'A';
sesa514652 7:ce70a873aa70 247 Object1.dubs = 23;
sesa514652 10:42e70b596099 248 Object1.namestruct = "name";
sesa514652 28:aab0aa846cf6 249 */
sesa514652 36:3e975536e8d7 250
sesa514652 36:3e975536e8d7 251 /*
sesa514652 36:3e975536e8d7 252 int ar1[]= {2,3,4,5};
sesa514652 36:3e975536e8d7 253 int ar2[] = {2,3,4,5};
sesa514652 36:3e975536e8d7 254 int n = sizeof(ar1);
sesa514652 36:3e975536e8d7 255 int m = sizeof(ar2);
sesa514652 36:3e975536e8d7 256 if(Equal(ar1,ar2,n,m)){
sesa514652 36:3e975536e8d7 257 printf("TRUEEEEEEEEEEEEEEEEEEE\n");}
sesa514652 36:3e975536e8d7 258 else {printf("Falseeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddd\n");}
sesa514652 36:3e975536e8d7 259
sesa514652 36:3e975536e8d7 260
sesa514652 36:3e975536e8d7 261
sesa514652 36:3e975536e8d7 262
sesa514652 36:3e975536e8d7 263 */
sesa514652 36:3e975536e8d7 264
sesa514652 36:3e975536e8d7 265
sesa514652 36:3e975536e8d7 266
sesa514652 36:3e975536e8d7 267
sesa514652 36:3e975536e8d7 268
sesa514652 36:3e975536e8d7 269 printf("I SHOULD HAVE BEEN PRINTED !!!!!");
sesa514652 36:3e975536e8d7 270
sesa514652 38:71cfbdd2076d 271 while(1) {
sesa514652 27:d48bf4e8f1a0 272
sesa514652 28:aab0aa846cf6 273 /**
sesa514652 28:aab0aa846cf6 274 *.. It was found Cout was not working as expected.
sesa514652 28:aab0aa846cf6 275 cout << "Test value collection";
sesa514652 28:aab0aa846cf6 276 Scan1Input();
sesa514652 28:aab0aa846cf6 277
sesa514652 27:d48bf4e8f1a0 278 cout << Scan1[0];cout <<"/n";
sesa514652 27:d48bf4e8f1a0 279 cout << Scan1[1];"/n";
sesa514652 27:d48bf4e8f1a0 280 cout << Scan1[2];"/n";
sesa514652 27:d48bf4e8f1a0 281 cout << Scan1[3];"/n";
sesa514652 27:d48bf4e8f1a0 282 cout << Scan1[4];"/n";
sesa514652 27:d48bf4e8f1a0 283 cout << Scan1[5];"/n";
sesa514652 27:d48bf4e8f1a0 284 cout << Scan1[6];"/n";
sesa514652 27:d48bf4e8f1a0 285 cout << Scan1[7];"/n";
sesa514652 27:d48bf4e8f1a0 286 cout << Scan1[8];"/n";
sesa514652 27:d48bf4e8f1a0 287 cout << Scan1[9];"/n";
sesa514652 27:d48bf4e8f1a0 288 */
sesa514652 33:3717bc4e2fa8 289 printf("Debug : LoopCount1 : %i\n",LoopCountScan1);
sesa514652 33:3717bc4e2fa8 290 printf("Debug : LoopCount2 : %i\n",LoopCountScan2);
sesa514652 33:3717bc4e2fa8 291 printf("Debug : LoopCount3 : %i\n",LoopCountScan3);
sesa514652 33:3717bc4e2fa8 292 printf("Debug : LoopCount4 : %i\n",LoopCountScan4);
sesa514652 33:3717bc4e2fa8 293 printf("Debug : LoopCount5 : %i\n",LoopCountScan5);
sesa514652 28:aab0aa846cf6 294 printf("press count = %i\n",g_ButtonAPress);
sesa514652 26:8826ed43fad2 295 printf("Scan1 1 : %d cm\n", Scan1[0]);
sesa514652 26:8826ed43fad2 296 printf("Scan1 2 : %d cm\n", Scan1[1]);
sesa514652 26:8826ed43fad2 297 printf("Scan1 3 : %d cm\n", Scan1[2]);
sesa514652 26:8826ed43fad2 298 printf("Scan1 4 : %d cm\n", Scan1[3]);
sesa514652 26:8826ed43fad2 299 printf("Scan1 5 : %d cm\n", Scan1[4]);
sesa514652 38:71cfbdd2076d 300 /* NO longer Reuired Section
sesa514652 26:8826ed43fad2 301 printf("Scan2 1 : %d cm\n", Scan2[0]);
sesa514652 26:8826ed43fad2 302 printf("Scan2 2 : %d cm\n", Scan2[1]);
sesa514652 26:8826ed43fad2 303 printf("Scan2 3 : %d cm\n", Scan2[2]);
sesa514652 26:8826ed43fad2 304 printf("Scan2 4 : %d cm\n", Scan2[3]);
sesa514652 26:8826ed43fad2 305 printf("Scan2 5 : %d cm\n", Scan2[4]);
sesa514652 26:8826ed43fad2 306 printf("Scan3 1 : %d cm\n", Scan3[0]);
sesa514652 26:8826ed43fad2 307 printf("Scan3 2 : %d cm\n", Scan3[1]);
sesa514652 26:8826ed43fad2 308 printf("Scan3 3 : %d cm\n", Scan3[2]);
sesa514652 26:8826ed43fad2 309 printf("Scan3 4 : %d cm\n", Scan3[3]);
sesa514652 26:8826ed43fad2 310 printf("Scan3 5 : %d cm\n", Scan3[4]);
sesa514652 26:8826ed43fad2 311 printf("Scan4 1 : %d cm\n", Scan4[0]);
sesa514652 26:8826ed43fad2 312 printf("Scan4 2 : %d cm\n", Scan4[1]);
sesa514652 26:8826ed43fad2 313 printf("Scan4 3 : %d cm\n", Scan4[2]);
sesa514652 26:8826ed43fad2 314 printf("Scan4 4 : %d cm\n", Scan4[3]);
sesa514652 26:8826ed43fad2 315 printf("Scan4 5 : %d cm\n", Scan4[4]);
sesa514652 26:8826ed43fad2 316 printf("Scan5 1 : %d cm\n", Scan5[0]);
sesa514652 26:8826ed43fad2 317 printf("Scan5 2 : %d cm\n", Scan5[1]);
sesa514652 26:8826ed43fad2 318 printf("Scan5 3 : %d cm\n", Scan5[2]);
sesa514652 26:8826ed43fad2 319 printf("Scan5 4 : %d cm\n", Scan5[3]);
sesa514652 38:71cfbdd2076d 320 printf("Scan5 5 : %d cm\n", Scan5[4]);
sesa514652 38:71cfbdd2076d 321 */
sesa514652 25:9798017b837d 322 printf("I always Get printed \n");
sesa514652 24:a88c4941a25e 323 // cout << Scan1[2];
sesa514652 24:a88c4941a25e 324 // cout << Scan1[6];
sesa514652 28:aab0aa846cf6 325 printf("I Should Be printed always \n");
sesa514652 28:aab0aa846cf6 326 /**
sesa514652 28:aab0aa846cf6 327 *..Code section on Comparing data Cout was causing issue
sesa514652 28:aab0aa846cf6 328 *
sesa514652 24:a88c4941a25e 329 if (Scan1[1] > Scan1[2]){
sesa514652 24:a88c4941a25e 330 cout <<'+';
sesa514652 24:a88c4941a25e 331 }else if (Scan1[1]=Scan1[2]){
sesa514652 24:a88c4941a25e 332 cout <<'=';}
sesa514652 24:a88c4941a25e 333 else {
sesa514652 24:a88c4941a25e 334 cout <<'-';}
sesa514652 24:a88c4941a25e 335 if (Scan1[2] > Scan1[3]){
sesa514652 24:a88c4941a25e 336 cout <<'+';
sesa514652 24:a88c4941a25e 337 }else if (Scan1[2]=Scan1[3]){
sesa514652 24:a88c4941a25e 338 cout <<'=';}
sesa514652 23:f72175fb49ed 339 else {
sesa514652 23:f72175fb49ed 340 cout <<'-';}
sesa514652 24:a88c4941a25e 341
sesa514652 24:a88c4941a25e 342 if (Scan1[3] > Scan1[4]){
sesa514652 24:a88c4941a25e 343 cout <<'+';
sesa514652 24:a88c4941a25e 344 }else if (Scan1[3]=Scan1[4]){
sesa514652 24:a88c4941a25e 345 cout <<'=';}
sesa514652 24:a88c4941a25e 346 else {
sesa514652 24:a88c4941a25e 347 cout <<'-';}
sesa514652 24:a88c4941a25e 348 if (Scan1[4] > Scan1[5]){
sesa514652 24:a88c4941a25e 349 cout <<'+';
sesa514652 24:a88c4941a25e 350 }else if (Scan1[4]=Scan1[5]){
sesa514652 24:a88c4941a25e 351 cout <<'=';}
sesa514652 24:a88c4941a25e 352 else {
sesa514652 24:a88c4941a25e 353 cout <<'-';}
sesa514652 24:a88c4941a25e 354 if (Scan1[5] > Scan1[6]){
sesa514652 24:a88c4941a25e 355 cout <<'+';
sesa514652 24:a88c4941a25e 356 }else if (Scan1[5]=Scan1[6]){
sesa514652 24:a88c4941a25e 357 cout <<'=';}
sesa514652 24:a88c4941a25e 358 else {
sesa514652 24:a88c4941a25e 359 cout <<'-';}
sesa514652 24:a88c4941a25e 360 if (Scan1[6] > Scan1[7]){
sesa514652 24:a88c4941a25e 361 cout <<'+';
sesa514652 24:a88c4941a25e 362 }else if (Scan1[6]=Scan1[7]){
sesa514652 24:a88c4941a25e 363 cout <<'=';}
sesa514652 24:a88c4941a25e 364 else {
sesa514652 24:a88c4941a25e 365 cout <<'-';}
sesa514652 24:a88c4941a25e 366 if (Scan1[7] > Scan1[8]){
sesa514652 24:a88c4941a25e 367 cout <<'+';
sesa514652 24:a88c4941a25e 368 }else if (Scan1[7]=Scan1[8]){
sesa514652 24:a88c4941a25e 369 cout <<'=';}
sesa514652 24:a88c4941a25e 370 else {
sesa514652 24:a88c4941a25e 371 cout <<'-';}
sesa514652 24:a88c4941a25e 372
sesa514652 24:a88c4941a25e 373 if (Scan1[8] > Scan1[9]){
sesa514652 24:a88c4941a25e 374 cout <<'+';
sesa514652 24:a88c4941a25e 375 }else if (Scan1[8]=Scan1[9]){
sesa514652 24:a88c4941a25e 376 cout <<'=';}
sesa514652 24:a88c4941a25e 377 else {
sesa514652 24:a88c4941a25e 378 cout <<'-';}
sesa514652 24:a88c4941a25e 379 if (Scan1[9] > Scan1[10]){
sesa514652 24:a88c4941a25e 380 cout <<'+';
sesa514652 24:a88c4941a25e 381 }else if (Scan1[9]=Scan1[10]){
sesa514652 24:a88c4941a25e 382 cout <<'=';}
sesa514652 24:a88c4941a25e 383 else {
sesa514652 24:a88c4941a25e 384 cout <<'-';}
sesa514652 28:aab0aa846cf6 385 */
sesa514652 21:2e37f80e8b5b 386
sesa514652 26:8826ed43fad2 387 /////////////////////////////////////////////////////////////////////////////////////////////////////
sesa514652 28:aab0aa846cf6 388 /**
sesa514652 28:aab0aa846cf6 389 *..Initial state when starting the Board.
sesa514652 28:aab0aa846cf6 390 */
sesa514652 28:aab0aa846cf6 391 switch(g_ButtonAPress){
sesa514652 21:2e37f80e8b5b 392 default:
sesa514652 29:1aef0ecf9840 393 lcd.clear();
sesa514652 21:2e37f80e8b5b 394 lcd.printString("Main Menu",0,0);
sesa514652 28:aab0aa846cf6 395 lcd.drawLine(0,10,80,10,2);
sesa514652 31:91a3c61d33e6 396 lcd.printString("Press A",0,2);
sesa514652 31:91a3c61d33e6 397 lcd.printString("New Scan",0,3);
sesa514652 31:91a3c61d33e6 398 lcd.printString("Press B",0,4);
sesa514652 38:71cfbdd2076d 399 lcd.printString("Decicde",0,5);
sesa514652 33:3717bc4e2fa8 400 LoopCountScan1 =0;
sesa514652 33:3717bc4e2fa8 401 LoopCountScan2 =0;
sesa514652 33:3717bc4e2fa8 402 LoopCountScan3 =0;
sesa514652 33:3717bc4e2fa8 403 LoopCountScan4 =0;
sesa514652 33:3717bc4e2fa8 404 LoopCountScan5 =0;
sesa514652 40:0d55297c8b34 405 LoopCountScan6 =0;
sesa514652 29:1aef0ecf9840 406
sesa514652 36:3e975536e8d7 407
sesa514652 36:3e975536e8d7 408
sesa514652 38:71cfbdd2076d 409 /* Code Section No longer required
sesa514652 38:71cfbdd2076d 410 *
sesa514652 38:71cfbdd2076d 411
sesa514652 33:3717bc4e2fa8 412 for(int i=0; i<5; i++){
sesa514652 33:3717bc4e2fa8 413
sesa514652 36:3e975536e8d7 414 printf("hello Scan: %i The value of : %i \n",i, Scan1[i]);
sesa514652 33:3717bc4e2fa8 415 if (Scan1[i]>95){
sesa514652 36:3e975536e8d7 416 Decide[i]= '+';
sesa514652 36:3e975536e8d7 417 printf("no wall%c/n",Decide[i]);}
sesa514652 33:3717bc4e2fa8 418 else if (Scan1[i]<85){
sesa514652 36:3e975536e8d7 419 Decide[i]= '-';
sesa514652 36:3e975536e8d7 420 printf("OBJECT ABOUT%c/n",Decide[i]);}
sesa514652 33:3717bc4e2fa8 421 else if (Scan1[i]>85<95){
sesa514652 36:3e975536e8d7 422 Decide[i]= '=';
sesa514652 36:3e975536e8d7 423 printf("No Object %c/n",Decide[i]);}
sesa514652 35:36c7605dda06 424 }
sesa514652 38:71cfbdd2076d 425 */
sesa514652 38:71cfbdd2076d 426
sesa514652 37:323ec7d23454 427
sesa514652 35:36c7605dda06 428
sesa514652 29:1aef0ecf9840 429 /** IF Statement to decide on shape to draw
sesa514652 29:1aef0ecf9840 430 *.. This section of code compares the each array element with the one proceding it and makes a logical decision if higher lower or equal.
sesa514652 29:1aef0ecf9840 431 */
sesa514652 34:dfe7f5799582 432 /*
sesa514652 29:1aef0ecf9840 433 if (Scan1[0] > Scan1[1])
sesa514652 29:1aef0ecf9840 434 {
sesa514652 29:1aef0ecf9840 435 printf("+");
sesa514652 29:1aef0ecf9840 436 Decide[0]= 'x';
sesa514652 29:1aef0ecf9840 437 printf( "chosen 1 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 438 }
sesa514652 31:91a3c61d33e6 439 else if (Scan1[0] == Scan1[1])
sesa514652 29:1aef0ecf9840 440 {
sesa514652 29:1aef0ecf9840 441 printf("=");
sesa514652 29:1aef0ecf9840 442 Decide[0]='=';
sesa514652 29:1aef0ecf9840 443 printf( "chosen2 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 444 }
sesa514652 29:1aef0ecf9840 445 else if (Scan1[0] < Scan1[1])
sesa514652 29:1aef0ecf9840 446 {
sesa514652 29:1aef0ecf9840 447 printf("-");
sesa514652 29:1aef0ecf9840 448 Decide[0]='-';
sesa514652 29:1aef0ecf9840 449 printf( "chosen3 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 450 }
sesa514652 29:1aef0ecf9840 451 if (Scan1[1] > Scan1[2])
sesa514652 29:1aef0ecf9840 452 {
sesa514652 29:1aef0ecf9840 453 printf("+");
sesa514652 29:1aef0ecf9840 454 Decide[1]= 'x';
sesa514652 29:1aef0ecf9840 455 printf( "chosen 1 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 456 }
sesa514652 31:91a3c61d33e6 457 else if (Scan1[1] == Scan1[2])
sesa514652 29:1aef0ecf9840 458 {
sesa514652 29:1aef0ecf9840 459 printf("=");
sesa514652 29:1aef0ecf9840 460 Decide[1]='=';
sesa514652 29:1aef0ecf9840 461 printf( "chosen2 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 462 }
sesa514652 29:1aef0ecf9840 463 else if (Scan1[1] < Scan1[2])
sesa514652 29:1aef0ecf9840 464 {
sesa514652 29:1aef0ecf9840 465 printf("-");
sesa514652 29:1aef0ecf9840 466 Decide[1]='-';
sesa514652 29:1aef0ecf9840 467 printf( "chosen3 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 468 }
sesa514652 29:1aef0ecf9840 469
sesa514652 29:1aef0ecf9840 470 if (Scan1[2] > Scan1[3])
sesa514652 29:1aef0ecf9840 471 {
sesa514652 29:1aef0ecf9840 472 printf("+");
sesa514652 29:1aef0ecf9840 473 Decide[2]= 'x';
sesa514652 29:1aef0ecf9840 474 printf( "chosen 1 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 475 }
sesa514652 31:91a3c61d33e6 476 else if (Scan1[2] == Scan1[3])
sesa514652 29:1aef0ecf9840 477 {
sesa514652 29:1aef0ecf9840 478 printf("=");
sesa514652 29:1aef0ecf9840 479 Decide[2]='=';
sesa514652 29:1aef0ecf9840 480 printf( "chosen2 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 481 }
sesa514652 29:1aef0ecf9840 482 else if (Scan1[2] < Scan1[3])
sesa514652 29:1aef0ecf9840 483 {
sesa514652 29:1aef0ecf9840 484 printf("-");
sesa514652 29:1aef0ecf9840 485 Decide[2]='-';
sesa514652 29:1aef0ecf9840 486 printf( "chosen3 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 487 }
sesa514652 29:1aef0ecf9840 488 if (Scan1[3] > Scan1[4])
sesa514652 29:1aef0ecf9840 489 {
sesa514652 29:1aef0ecf9840 490 printf("+");
sesa514652 29:1aef0ecf9840 491 Decide[3]= 'x';
sesa514652 29:1aef0ecf9840 492 printf( "chosen 1 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 493 }
sesa514652 31:91a3c61d33e6 494 else if (Scan1[3] == Scan1[4])
sesa514652 29:1aef0ecf9840 495 {
sesa514652 29:1aef0ecf9840 496 printf("=");
sesa514652 29:1aef0ecf9840 497 Decide[3]='=';
sesa514652 29:1aef0ecf9840 498 printf( "chosen2 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 499 }
sesa514652 29:1aef0ecf9840 500 else if (Scan1[3] < Scan1[4])
sesa514652 29:1aef0ecf9840 501 {
sesa514652 29:1aef0ecf9840 502 printf("-");
sesa514652 29:1aef0ecf9840 503 Decide[3]='-';
sesa514652 29:1aef0ecf9840 504 printf( "chosen3 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 505 }
sesa514652 29:1aef0ecf9840 506
sesa514652 29:1aef0ecf9840 507 if (Scan2[0] > Scan2[1])
sesa514652 29:1aef0ecf9840 508 {
sesa514652 29:1aef0ecf9840 509 printf("+");
sesa514652 29:1aef0ecf9840 510 Decide2[0]= 'x';
sesa514652 29:1aef0ecf9840 511 printf( "chosen 1 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 512 }
sesa514652 31:91a3c61d33e6 513 else if (Scan2[0] == Scan2[1])
sesa514652 29:1aef0ecf9840 514 {
sesa514652 29:1aef0ecf9840 515 printf("=");
sesa514652 29:1aef0ecf9840 516 Decide2[0]='=';
sesa514652 29:1aef0ecf9840 517 printf( "chosen2 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 518 }
sesa514652 29:1aef0ecf9840 519 else if (Scan2[0] < Scan2[1])
sesa514652 29:1aef0ecf9840 520 {
sesa514652 29:1aef0ecf9840 521 printf("-");
sesa514652 29:1aef0ecf9840 522 Decide2[0]='-';
sesa514652 29:1aef0ecf9840 523 printf( "chosen3 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 524 }
sesa514652 29:1aef0ecf9840 525 if (Scan2[1] > Scan2[2])
sesa514652 29:1aef0ecf9840 526 {
sesa514652 29:1aef0ecf9840 527 printf("+");
sesa514652 29:1aef0ecf9840 528 Decide2[1]= 'x';
sesa514652 29:1aef0ecf9840 529 printf( "chosen 1 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 530 }
sesa514652 31:91a3c61d33e6 531 else if (Scan2[1] == Scan2[2])
sesa514652 29:1aef0ecf9840 532 {
sesa514652 29:1aef0ecf9840 533 printf("=");
sesa514652 29:1aef0ecf9840 534 Decide2[1]='=';
sesa514652 29:1aef0ecf9840 535 printf( "chosen2 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 536 }
sesa514652 29:1aef0ecf9840 537 else if (Scan2[1] < Scan2[2])
sesa514652 29:1aef0ecf9840 538 {
sesa514652 29:1aef0ecf9840 539 printf("-");
sesa514652 29:1aef0ecf9840 540 Decide2[1]='-';
sesa514652 29:1aef0ecf9840 541 printf( "chosen3 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 542 }
sesa514652 29:1aef0ecf9840 543
sesa514652 29:1aef0ecf9840 544 if (Scan2[2] > Scan2[3])
sesa514652 29:1aef0ecf9840 545 {
sesa514652 29:1aef0ecf9840 546 printf("+");
sesa514652 29:1aef0ecf9840 547 Decide2[2]= 'x';
sesa514652 29:1aef0ecf9840 548 printf( "chosen 1 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 549 }
sesa514652 31:91a3c61d33e6 550 else if (Scan2[2] == Scan2[3])
sesa514652 29:1aef0ecf9840 551 {
sesa514652 29:1aef0ecf9840 552 printf("=");
sesa514652 29:1aef0ecf9840 553 Decide2[2]='=';
sesa514652 29:1aef0ecf9840 554 printf( "chosen2 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 555 }
sesa514652 29:1aef0ecf9840 556 else if (Scan2[2] < Scan2[3])
sesa514652 29:1aef0ecf9840 557 {
sesa514652 29:1aef0ecf9840 558 printf("-");
sesa514652 29:1aef0ecf9840 559 Decide2[2]='-';
sesa514652 29:1aef0ecf9840 560 printf( "chosen3 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 561 }
sesa514652 29:1aef0ecf9840 562 if (Scan2[3] > Scan2[4])
sesa514652 29:1aef0ecf9840 563 {
sesa514652 29:1aef0ecf9840 564 printf("+");
sesa514652 29:1aef0ecf9840 565 Decide2[3]= 'x';
sesa514652 29:1aef0ecf9840 566 printf( "chosen 1 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 567 }
sesa514652 31:91a3c61d33e6 568 else if (Scan2[3] == Scan2[4])
sesa514652 29:1aef0ecf9840 569 {
sesa514652 29:1aef0ecf9840 570 printf("=");
sesa514652 29:1aef0ecf9840 571 Decide2[3]='=';
sesa514652 29:1aef0ecf9840 572 printf( "chosen2 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 573 }
sesa514652 29:1aef0ecf9840 574 else if (Scan2[3] < Scan2[4])
sesa514652 29:1aef0ecf9840 575 {
sesa514652 29:1aef0ecf9840 576 printf("-");
sesa514652 29:1aef0ecf9840 577 Decide2[3]='-';
sesa514652 29:1aef0ecf9840 578 printf( "chosen3 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 579 }
sesa514652 29:1aef0ecf9840 580
sesa514652 29:1aef0ecf9840 581 if (Scan3[0] > Scan3[1])
sesa514652 29:1aef0ecf9840 582 {
sesa514652 29:1aef0ecf9840 583 printf("+");
sesa514652 29:1aef0ecf9840 584 Decide3[0]= 'x';
sesa514652 29:1aef0ecf9840 585 printf( "chosen 1 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 586 }
sesa514652 31:91a3c61d33e6 587 else if (Scan3[0] == Scan3[1])
sesa514652 29:1aef0ecf9840 588 {
sesa514652 29:1aef0ecf9840 589 printf("=");
sesa514652 29:1aef0ecf9840 590 Decide3[0]='=';
sesa514652 29:1aef0ecf9840 591 printf( "chosen2 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 592 }
sesa514652 29:1aef0ecf9840 593 else if (Scan3[0] < Scan3[1])
sesa514652 29:1aef0ecf9840 594 {
sesa514652 29:1aef0ecf9840 595 printf("-");
sesa514652 29:1aef0ecf9840 596 Decide3[0]='-';
sesa514652 29:1aef0ecf9840 597 printf( "chosen3 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 598 }
sesa514652 29:1aef0ecf9840 599 if (Scan3[1] > Scan3[2])
sesa514652 29:1aef0ecf9840 600 {
sesa514652 29:1aef0ecf9840 601 printf("+");
sesa514652 29:1aef0ecf9840 602 Decide3[1]= 'x';
sesa514652 29:1aef0ecf9840 603 printf( "chosen 1 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 604 }
sesa514652 31:91a3c61d33e6 605 else if (Scan3[1] == Scan3[2])
sesa514652 29:1aef0ecf9840 606 {
sesa514652 29:1aef0ecf9840 607 printf("=");
sesa514652 29:1aef0ecf9840 608 Decide3[1]='=';
sesa514652 29:1aef0ecf9840 609 printf( "chosen2 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 610 }
sesa514652 29:1aef0ecf9840 611 else if (Scan3[1] < Scan3[2])
sesa514652 29:1aef0ecf9840 612 {
sesa514652 29:1aef0ecf9840 613 printf("-");
sesa514652 29:1aef0ecf9840 614 Decide3[1]='-';
sesa514652 29:1aef0ecf9840 615 printf( "chosen3 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 616 }
sesa514652 29:1aef0ecf9840 617
sesa514652 29:1aef0ecf9840 618 if (Scan3[2] > Scan3[3])
sesa514652 29:1aef0ecf9840 619 {
sesa514652 29:1aef0ecf9840 620 printf("+");
sesa514652 29:1aef0ecf9840 621 Decide3[2]= 'x';
sesa514652 29:1aef0ecf9840 622 printf( "chosen 1 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 623 }
sesa514652 31:91a3c61d33e6 624 else if (Scan3[2] == Scan3[3])
sesa514652 29:1aef0ecf9840 625 {
sesa514652 29:1aef0ecf9840 626 printf("=");
sesa514652 29:1aef0ecf9840 627 Decide3[2]='=';
sesa514652 29:1aef0ecf9840 628 printf( "chosen2 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 629 }
sesa514652 29:1aef0ecf9840 630 else if (Scan3[2] < Scan3[3])
sesa514652 29:1aef0ecf9840 631 {
sesa514652 29:1aef0ecf9840 632 printf("-");
sesa514652 29:1aef0ecf9840 633 Decide3[2]='-';
sesa514652 29:1aef0ecf9840 634 printf( "chosen3 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 635 }
sesa514652 29:1aef0ecf9840 636 if (Scan3[3] > Scan3[4])
sesa514652 29:1aef0ecf9840 637 {
sesa514652 29:1aef0ecf9840 638 printf("+");
sesa514652 29:1aef0ecf9840 639 Decide3[3]= 'x';
sesa514652 29:1aef0ecf9840 640 printf( "chosen 1 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 641 }
sesa514652 31:91a3c61d33e6 642 else if (Scan3[3] == Scan3[4])
sesa514652 29:1aef0ecf9840 643 {
sesa514652 29:1aef0ecf9840 644 printf("=");
sesa514652 29:1aef0ecf9840 645 Decide3[3]='=';
sesa514652 29:1aef0ecf9840 646 printf( "chosen2 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 647 }
sesa514652 29:1aef0ecf9840 648 else if (Scan3[3] < Scan3[4])
sesa514652 29:1aef0ecf9840 649 {
sesa514652 29:1aef0ecf9840 650 printf("-");
sesa514652 29:1aef0ecf9840 651 Decide3[3]='-';
sesa514652 29:1aef0ecf9840 652 printf( "chosen3 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 653 }
sesa514652 29:1aef0ecf9840 654
sesa514652 29:1aef0ecf9840 655 if (Scan4[0] > Scan4[1])
sesa514652 29:1aef0ecf9840 656 {
sesa514652 29:1aef0ecf9840 657 printf("+");
sesa514652 29:1aef0ecf9840 658 Decide4[0]= 'x';
sesa514652 29:1aef0ecf9840 659 printf( "chosen 1 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 660 }
sesa514652 31:91a3c61d33e6 661 else if (Scan4[0] == Scan4[1])
sesa514652 29:1aef0ecf9840 662 {
sesa514652 29:1aef0ecf9840 663 printf("=");
sesa514652 29:1aef0ecf9840 664 Decide4[0]='=';
sesa514652 29:1aef0ecf9840 665 printf( "chosen2 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 666 }
sesa514652 29:1aef0ecf9840 667 else if (Scan4[0] < Scan4[1])
sesa514652 29:1aef0ecf9840 668 {
sesa514652 29:1aef0ecf9840 669 printf("-");
sesa514652 29:1aef0ecf9840 670 Decide4[0]='-';
sesa514652 29:1aef0ecf9840 671 printf( "chosen3 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 672 }
sesa514652 29:1aef0ecf9840 673 if (Scan4[1] > Scan4[2])
sesa514652 29:1aef0ecf9840 674 {
sesa514652 29:1aef0ecf9840 675 printf("+");
sesa514652 29:1aef0ecf9840 676 Decide4[1]= 'x';
sesa514652 29:1aef0ecf9840 677 printf( "chosen 1 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 678 }
sesa514652 31:91a3c61d33e6 679 else if (Scan4[1] == Scan4[2])
sesa514652 29:1aef0ecf9840 680 {
sesa514652 29:1aef0ecf9840 681 printf("=");
sesa514652 29:1aef0ecf9840 682 Decide4[1]='=';
sesa514652 29:1aef0ecf9840 683 printf( "chosen2 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 684 }
sesa514652 29:1aef0ecf9840 685 else if (Scan4[1] < Scan4[2])
sesa514652 29:1aef0ecf9840 686 {
sesa514652 29:1aef0ecf9840 687 printf("-");
sesa514652 29:1aef0ecf9840 688 Decide4[1]='-';
sesa514652 29:1aef0ecf9840 689 printf( "chosen3 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 690 }
sesa514652 29:1aef0ecf9840 691
sesa514652 29:1aef0ecf9840 692 if (Scan4[2] > Scan4[3])
sesa514652 29:1aef0ecf9840 693 {
sesa514652 29:1aef0ecf9840 694 printf("+");
sesa514652 29:1aef0ecf9840 695 Decide4[2]= 'x';
sesa514652 29:1aef0ecf9840 696 printf( "chosen 1 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 697 }
sesa514652 31:91a3c61d33e6 698 else if (Scan4[2] == Scan4[3])
sesa514652 29:1aef0ecf9840 699 {
sesa514652 29:1aef0ecf9840 700 printf("=");
sesa514652 29:1aef0ecf9840 701 Decide4[2]='=';
sesa514652 29:1aef0ecf9840 702 printf( "chosen2 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 703 }
sesa514652 29:1aef0ecf9840 704 else if (Scan4[2] < Scan4[3])
sesa514652 29:1aef0ecf9840 705 {
sesa514652 29:1aef0ecf9840 706 printf("-");
sesa514652 29:1aef0ecf9840 707 Decide4[2]='-';
sesa514652 29:1aef0ecf9840 708 printf( "chosen3 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 709 }
sesa514652 29:1aef0ecf9840 710 if (Scan4[3] > Scan4[4])
sesa514652 29:1aef0ecf9840 711 {
sesa514652 29:1aef0ecf9840 712 printf("+");
sesa514652 29:1aef0ecf9840 713 Decide4[3]= 'x';
sesa514652 29:1aef0ecf9840 714 printf( "chosen 1 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 715 }
sesa514652 31:91a3c61d33e6 716 else if (Scan4[3] == Scan4[4])
sesa514652 29:1aef0ecf9840 717 {
sesa514652 29:1aef0ecf9840 718 printf("=");
sesa514652 29:1aef0ecf9840 719 Decide4[3]='=';
sesa514652 29:1aef0ecf9840 720 printf( "chosen2 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 721 }
sesa514652 29:1aef0ecf9840 722 else if (Scan4[3] < Scan4[4])
sesa514652 29:1aef0ecf9840 723 {
sesa514652 29:1aef0ecf9840 724 printf("-");
sesa514652 29:1aef0ecf9840 725 Decide4[3]='-';
sesa514652 29:1aef0ecf9840 726 printf( "chosen3 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 727 }
sesa514652 29:1aef0ecf9840 728 if (Scan5[0] > Scan5[1])
sesa514652 29:1aef0ecf9840 729 {
sesa514652 29:1aef0ecf9840 730 printf("+");
sesa514652 29:1aef0ecf9840 731 Decide5[0]= 'x';
sesa514652 29:1aef0ecf9840 732 printf( "chosen 1 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 733 }
sesa514652 31:91a3c61d33e6 734 else if (Scan5[0] == Scan5[1])
sesa514652 29:1aef0ecf9840 735 {
sesa514652 29:1aef0ecf9840 736 printf("=");
sesa514652 29:1aef0ecf9840 737 Decide5[0]='=';
sesa514652 29:1aef0ecf9840 738 printf( "chosen2 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 739 }
sesa514652 29:1aef0ecf9840 740 else if (Scan5[0] < Scan5[1])
sesa514652 29:1aef0ecf9840 741 {
sesa514652 29:1aef0ecf9840 742 printf("-");
sesa514652 29:1aef0ecf9840 743 Decide5[0]='-';
sesa514652 29:1aef0ecf9840 744 printf( "chosen3 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 745 }
sesa514652 29:1aef0ecf9840 746 if (Scan5[1] > Scan5[2])
sesa514652 29:1aef0ecf9840 747 {
sesa514652 29:1aef0ecf9840 748 printf("+");
sesa514652 29:1aef0ecf9840 749 Decide5[1]= 'x';
sesa514652 29:1aef0ecf9840 750 printf( "chosen 1 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 751 }
sesa514652 31:91a3c61d33e6 752 else if (Scan5[1] == Scan5[2])
sesa514652 29:1aef0ecf9840 753 {
sesa514652 29:1aef0ecf9840 754 printf("=");
sesa514652 29:1aef0ecf9840 755 Decide5[1]='=';
sesa514652 29:1aef0ecf9840 756 printf( "chosen2 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 757 }
sesa514652 29:1aef0ecf9840 758 else if (Scan5[1] < Scan5[2])
sesa514652 29:1aef0ecf9840 759 {
sesa514652 29:1aef0ecf9840 760 printf("-");
sesa514652 29:1aef0ecf9840 761 Decide5[1]='-';
sesa514652 29:1aef0ecf9840 762 printf( "chosen3 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 763 }
sesa514652 29:1aef0ecf9840 764
sesa514652 29:1aef0ecf9840 765 if (Scan5[2] > Scan5[3])
sesa514652 29:1aef0ecf9840 766 {
sesa514652 29:1aef0ecf9840 767 printf("+");
sesa514652 29:1aef0ecf9840 768 Decide5[2]= 'x';
sesa514652 29:1aef0ecf9840 769 printf( "chosen 1 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 770 }
sesa514652 31:91a3c61d33e6 771 else if (Scan5[2] == Scan5[3])
sesa514652 29:1aef0ecf9840 772 {
sesa514652 29:1aef0ecf9840 773 printf("=");
sesa514652 29:1aef0ecf9840 774 Decide5[2]='=';
sesa514652 29:1aef0ecf9840 775 printf( "chosen2 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 776 }
sesa514652 29:1aef0ecf9840 777 else if (Scan5[2] < Scan5[3])
sesa514652 29:1aef0ecf9840 778 {
sesa514652 29:1aef0ecf9840 779 printf("-");
sesa514652 29:1aef0ecf9840 780 Decide5[2]='-';
sesa514652 29:1aef0ecf9840 781 printf( "chosen3 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 782 }
sesa514652 29:1aef0ecf9840 783 if (Scan5[3] > Scan5[4])
sesa514652 29:1aef0ecf9840 784 {
sesa514652 29:1aef0ecf9840 785 printf("+");
sesa514652 29:1aef0ecf9840 786 Decide5[3]= 'x';
sesa514652 29:1aef0ecf9840 787 printf( "chosen 1 %c\n",Decide5[3]);
sesa514652 29:1aef0ecf9840 788 }
sesa514652 31:91a3c61d33e6 789 else if (Scan5[3] == Scan5[4])
sesa514652 29:1aef0ecf9840 790 {
sesa514652 29:1aef0ecf9840 791 printf("=");
sesa514652 29:1aef0ecf9840 792 Decide5[3]='=';
sesa514652 29:1aef0ecf9840 793 printf( "chosen2 %c\n",Decide5[3]);
sesa514652 29:1aef0ecf9840 794 }
sesa514652 29:1aef0ecf9840 795 else if (Scan5[3] < Scan5[4])
sesa514652 29:1aef0ecf9840 796 {
sesa514652 29:1aef0ecf9840 797 printf("-");
sesa514652 29:1aef0ecf9840 798 Decide5[3]='-';
sesa514652 29:1aef0ecf9840 799 printf( "chosen3 %c\n",Decide5[3]);
sesa514652 34:dfe7f5799582 800 } */
sesa514652 27:d48bf4e8f1a0 801
sesa514652 21:2e37f80e8b5b 802 lcd.refresh();
sesa514652 21:2e37f80e8b5b 803 wait_ms(50);
sesa514652 21:2e37f80e8b5b 804
sesa514652 21:2e37f80e8b5b 805 break;
sesa514652 28:aab0aa846cf6 806
sesa514652 22:82b01fdfc61f 807 //////////////////////////////////////////////////////////////////////////////////////////////////
sesa514652 28:aab0aa846cf6 808 /**
sesa514652 28:aab0aa846cf6 809 *.. When Button A is pressed this section of code is ran to collect data points of the object.
sesa514652 28:aab0aa846cf6 810 *..Scanning takes marks the LCD with locationof points which data has been collected for.
sesa514652 28:aab0aa846cf6 811 */
sesa514652 21:2e37f80e8b5b 812 case 1:
sesa514652 28:aab0aa846cf6 813 g_ButtonAPress =1;
sesa514652 33:3717bc4e2fa8 814 /*
sesa514652 33:3717bc4e2fa8 815 *..Section used for power saving, if the user has not continued after 5 scans
sesa514652 33:3717bc4e2fa8 816 */
sesa514652 38:71cfbdd2076d 817 if(LoopCountScan1==10){
sesa514652 33:3717bc4e2fa8 818 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 819 LoopCountScan1=0;
sesa514652 33:3717bc4e2fa8 820 break;}
sesa514652 33:3717bc4e2fa8 821 else;
sesa514652 31:91a3c61d33e6 822 inputScan1();
sesa514652 33:3717bc4e2fa8 823 break;
sesa514652 32:9c206f993cf5 824 /*
sesa514652 30:9d39318ef584 825 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 826 inputScan2();
sesa514652 31:91a3c61d33e6 827 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 828 inputScan3();
sesa514652 28:aab0aa846cf6 829
sesa514652 30:9d39318ef584 830 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 831 inputScan4();
sesa514652 28:aab0aa846cf6 832
sesa514652 30:9d39318ef584 833 wait_ms(5);
sesa514652 31:91a3c61d33e6 834 inputScan5();
sesa514652 30:9d39318ef584 835
sesa514652 30:9d39318ef584 836
sesa514652 30:9d39318ef584 837
sesa514652 28:aab0aa846cf6 838 g_ButtonAPress=0;
sesa514652 32:9c206f993cf5 839 */
sesa514652 33:3717bc4e2fa8 840
sesa514652 22:82b01fdfc61f 841 ////////////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 842 case 2:
sesa514652 28:aab0aa846cf6 843 g_ButtonAPress= 2;
sesa514652 38:71cfbdd2076d 844 if(LoopCountScan2==10){
sesa514652 33:3717bc4e2fa8 845 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 846 LoopCountScan2=0;
sesa514652 33:3717bc4e2fa8 847 break;}
sesa514652 33:3717bc4e2fa8 848 else;
sesa514652 32:9c206f993cf5 849 /*int secondScan[10];
sesa514652 22:82b01fdfc61f 850
sesa514652 22:82b01fdfc61f 851 secondScan[5] = sensor.distance();
sesa514652 22:82b01fdfc61f 852 printf("Distance : %d cm", secondScan[5]);
sesa514652 22:82b01fdfc61f 853 lcd.clear();
sesa514652 22:82b01fdfc61f 854 lcd.printString("2nd Scan up down",0,0);
sesa514652 32:9c206f993cf5 855 lcd.drawLine(0,10,80,10,2); */
sesa514652 32:9c206f993cf5 856 inputScan2();
sesa514652 20:4e1f2917a857 857 break;
sesa514652 22:82b01fdfc61f 858 ////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 859 case 3:
sesa514652 28:aab0aa846cf6 860 g_ButtonAPress= 3;
sesa514652 38:71cfbdd2076d 861 if(LoopCountScan3==10){
sesa514652 33:3717bc4e2fa8 862 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 863 LoopCountScan3=0;
sesa514652 33:3717bc4e2fa8 864 break;}
sesa514652 33:3717bc4e2fa8 865 else;
sesa514652 32:9c206f993cf5 866 /* lcd.clear();
sesa514652 20:4e1f2917a857 867 lcd.printString("Menu 3",0,0);
sesa514652 31:91a3c61d33e6 868 int us = sensor.distance();
sesa514652 21:2e37f80e8b5b 869 printf("Distance : %d cm",us);
sesa514652 20:4e1f2917a857 870 lcd.refresh();
sesa514652 32:9c206f993cf5 871 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 872 inputScan3();
sesa514652 20:4e1f2917a857 873 break;
sesa514652 32:9c206f993cf5 874
sesa514652 32:9c206f993cf5 875 /////////////////////////////////////////////////////////////////////////
sesa514652 32:9c206f993cf5 876
sesa514652 32:9c206f993cf5 877 case 4:
sesa514652 32:9c206f993cf5 878 g_ButtonAPress= 4;
sesa514652 38:71cfbdd2076d 879 if(LoopCountScan4==10){
sesa514652 33:3717bc4e2fa8 880 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 881 LoopCountScan4=0;
sesa514652 33:3717bc4e2fa8 882 break;}
sesa514652 33:3717bc4e2fa8 883 else;
sesa514652 32:9c206f993cf5 884 /* lcd.clear();
sesa514652 32:9c206f993cf5 885 lcd.printString("Menu 3",0,0);
sesa514652 32:9c206f993cf5 886 int us = sensor.distance();
sesa514652 32:9c206f993cf5 887 printf("Distance : %d cm",us);
sesa514652 32:9c206f993cf5 888 lcd.refresh();
sesa514652 32:9c206f993cf5 889 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 890 inputScan4();
sesa514652 32:9c206f993cf5 891 break;
sesa514652 32:9c206f993cf5 892 ///////////////////////////////////////////////////////////////////
sesa514652 32:9c206f993cf5 893 case 5:
sesa514652 32:9c206f993cf5 894 g_ButtonAPress= 5;
sesa514652 38:71cfbdd2076d 895 if(LoopCountScan5==10){
sesa514652 33:3717bc4e2fa8 896 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 897 LoopCountScan5=0;
sesa514652 33:3717bc4e2fa8 898 break;}
sesa514652 33:3717bc4e2fa8 899 else;
sesa514652 32:9c206f993cf5 900 /* lcd.clear();
sesa514652 32:9c206f993cf5 901 lcd.printString("Menu 3",0,0);
sesa514652 32:9c206f993cf5 902 int us = sensor.distance();
sesa514652 32:9c206f993cf5 903 printf("Distance : %d cm",us);
sesa514652 32:9c206f993cf5 904 lcd.refresh();
sesa514652 32:9c206f993cf5 905 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 906 inputScan5();
sesa514652 32:9c206f993cf5 907 break;
sesa514652 39:a31b49f3e65e 908
sesa514652 39:a31b49f3e65e 909
sesa514652 39:a31b49f3e65e 910
sesa514652 32:9c206f993cf5 911 /////////////////////////////////////////////////////////////////
sesa514652 39:a31b49f3e65e 912
sesa514652 39:a31b49f3e65e 913
sesa514652 39:a31b49f3e65e 914 case 6:
sesa514652 39:a31b49f3e65e 915 g_ButtonAPress=6;
sesa514652 40:0d55297c8b34 916 if(LoopCountScan6==10){
sesa514652 40:0d55297c8b34 917 g_ButtonAPress=0;
sesa514652 40:0d55297c8b34 918 LoopCountScan6=0;
sesa514652 40:0d55297c8b34 919 break;}
sesa514652 40:0d55297c8b34 920 else;
sesa514652 39:a31b49f3e65e 921
sesa514652 40:0d55297c8b34 922 inputScan6();
sesa514652 40:0d55297c8b34 923 break;
sesa514652 23:f72175fb49ed 924
sesa514652 20:4e1f2917a857 925 /*
sesa514652 11:1dec05b7d1c1 926 int button_counter;
sesa514652 10:42e70b596099 927 if (g_buttonA_flag){
sesa514652 11:1dec05b7d1c1 928 button_counter = button_counter +1;
sesa514652 11:1dec05b7d1c1 929 //case (test)
sesa514652 10:42e70b596099 930 g_buttonA_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 931
sesa514652 10:42e70b596099 932 // send message over serial port - can observe in CoolTerm etc.
sesa514652 11:1dec05b7d1c1 933 printf("Button A pressed %f\n", button_counter);
sesa514652 10:42e70b596099 934 }
sesa514652 10:42e70b596099 935 if (g_buttonB_flag){
sesa514652 10:42e70b596099 936 g_buttonB_flag = 0; // if it has, clear the flag
sesa514652 8:770d168713cc 937
sesa514652 10:42e70b596099 938 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 939 printf("Button B pressed\n");
sesa514652 10:42e70b596099 940 }
sesa514652 10:42e70b596099 941 if (g_buttonX_flag){
sesa514652 10:42e70b596099 942 g_buttonX_flag = 0; // if it has, clear the flag
sesa514652 12:ceea378d5691 943 // swap direction when button has been pressed
sesa514652 12:ceea378d5691 944 // (could just use ! but want this to be explicit to aid understanding)
sesa514652 12:ceea378d5691 945 if (direction == UP) {
sesa514652 12:ceea378d5691 946 direction = DOWN;
sesa514652 12:ceea378d5691 947 }
sesa514652 12:ceea378d5691 948 else {
sesa514652 12:ceea378d5691 949 direction = UP;
sesa514652 12:ceea378d5691 950 }
sesa514652 10:42e70b596099 951
sesa514652 10:42e70b596099 952 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 953 printf("Button X pressed\n");
sesa514652 10:42e70b596099 954 lcd.clear();
sesa514652 10:42e70b596099 955 lcd.printString("Button Pressed!",0,0);
sesa514652 10:42e70b596099 956 lcd.refresh();
sesa514652 11:1dec05b7d1c1 957 wait(1);
sesa514652 10:42e70b596099 958 }
sesa514652 10:42e70b596099 959 if (g_buttonY_flag){
sesa514652 10:42e70b596099 960 g_buttonY_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 961
sesa514652 10:42e70b596099 962 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 963 printf("Button Y pressed\n");
sesa514652 10:42e70b596099 964 }
sesa514652 5:9b2c976ca318 965 Buzzer.play(200,120);
sesa514652 5:9b2c976ca318 966 wait_ms(5);
sesa514652 5:9b2c976ca318 967 Buzzer.play(200,120);
sesa514652 1:757728321abd 968 long distanced = sensor.distance();
sesa514652 1:757728321abd 969 if (distanced >= 400 || distanced <= 2)
sesa514652 5:9b2c976ca318 970 {
sesa514652 1:757728321abd 971 printf("Out of range");
sesa514652 5:9b2c976ca318 972 //Calling dummy function 05/01/22
sesa514652 4:167ce930c9d5 973 int answer = cube(2);
sesa514652 5:9b2c976ca318 974 printf("%f\n",answer);
sesa514652 1:757728321abd 975 wait(1.0);
sesa514652 5:9b2c976ca318 976 }
sesa514652 5:9b2c976ca318 977 else
sesa514652 5:9b2c976ca318 978 {
sesa514652 5:9b2c976ca318 979 printf("Distance : %d cm",distanced);
sesa514652 5:9b2c976ca318 980 wait(1.0); // 1 sec
sesa514652 1:757728321abd 981 }
sesa514652 5:9b2c976ca318 982 lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK);
sesa514652 5:9b2c976ca318 983 //lcd.refresh must be used to update the lcd Display
sesa514652 5:9b2c976ca318 984 lcd.refresh();
sesa514652 5:9b2c976ca318 985 wait(5.0);
sesa514652 5:9b2c976ca318 986 //these are default settings so not strictly needed
sesa514652 0:1f799c7cce2b 987 lcd.normalMode(); // normal colour mode
sesa514652 5:9b2c976ca318 988 lcd.setBrightness(0.5); // put LED backlight on 50%
sesa514652 0:1f799c7cce2b 989 lcd.clear();
sesa514652 0:1f799c7cce2b 990 lcd.printString("Hello, World!",0,0);
sesa514652 0:1f799c7cce2b 991 Vector2D coord = joystick.get_coord();
sesa514652 0:1f799c7cce2b 992 lcd.refresh();
sesa514652 0:1f799c7cce2b 993 printf("Coord = %f,%f\n",coord.x,coord.y);
sesa514652 0:1f799c7cce2b 994 char buffer[14];
sesa514652 0:1f799c7cce2b 995 Vector2D mapped_coord = joystick.get_mapped_coord();
sesa514652 0:1f799c7cce2b 996 printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y);
sesa514652 0:1f799c7cce2b 997
sesa514652 5:9b2c976ca318 998 int length = sprintf(buffer,"T = %2f",coord.x);
sesa514652 5:9b2c976ca318 999 //it is important the format specifier ensures the length will fit in the buffer
sesa514652 0:1f799c7cce2b 1000 if (length <= 14) // if string will fit on display (assuming printing at x=0)
sesa514652 5:9b2c976ca318 1001 lcd.printString(buffer,0,1); // display on screen
sesa514652 0:1f799c7cce2b 1002 lcd.refresh();
sesa514652 5:9b2c976ca318 1003 lcd.clear();
sesa514652 5:9b2c976ca318 1004 //times by 50 to try get the point moving across screen
sesa514652 0:1f799c7cce2b 1005 float x50 = mapped_coord.x*5;
sesa514652 0:1f799c7cce2b 1006 float y50 = mapped_coord.y*8;
sesa514652 5:9b2c976ca318 1007 //to see what the values are
sesa514652 5:9b2c976ca318 1008 printf(" *50 = %f,%f\n",x50,y50);
sesa514652 5:9b2c976ca318 1009 //example of how to draw circles
sesa514652 1:757728321abd 1010 lcd.printChar('o',WIDTH/2,HEIGHT/2);
sesa514652 5:9b2c976ca318 1011 lcd.refresh();
sesa514652 0:1f799c7cce2b 1012 float mag = joystick.get_mag();
sesa514652 0:1f799c7cce2b 1013 float angle = joystick.get_angle();
sesa514652 0:1f799c7cce2b 1014 printf("Mag = %f Angle = %f\n",mag,angle);
sesa514652 0:1f799c7cce2b 1015 Direction d = joystick.get_direction();
sesa514652 0:1f799c7cce2b 1016 printf("Direction = %i\n",d);
sesa514652 0:1f799c7cce2b 1017 if (joystick.button_pressed() ) {
sesa514652 0:1f799c7cce2b 1018 printf("Button Pressed\n");
sesa514652 9:cdd7d9a123f9 1019 wait(5);
sesa514652 0:1f799c7cce2b 1020 }
sesa514652 8:770d168713cc 1021
sesa514652 8:770d168713cc 1022 }
sesa514652 16:2646c1c4e62e 1023 }
sesa514652 20:4e1f2917a857 1024 */
sesa514652 23:f72175fb49ed 1025 }
sesa514652 32:9c206f993cf5 1026 }
sesa514652 40:0d55297c8b34 1027 }
sesa514652 18:bb36d96142dd 1028 int buttonCountA(){
sesa514652 28:aab0aa846cf6 1029 g_ButtonAPress++;
sesa514652 32:9c206f993cf5 1030 if (g_ButtonAPress>5){
sesa514652 28:aab0aa846cf6 1031 g_ButtonAPress= 0;
sesa514652 18:bb36d96142dd 1032 }
sesa514652 28:aab0aa846cf6 1033 return g_ButtonAPress;
sesa514652 18:bb36d96142dd 1034 }
sesa514652 18:bb36d96142dd 1035 int buttonCountB(){
sesa514652 28:aab0aa846cf6 1036 g_ButtonBPress++;
sesa514652 28:aab0aa846cf6 1037 if (g_ButtonBPress>3){
sesa514652 28:aab0aa846cf6 1038 g_ButtonBPress= 0;
sesa514652 18:bb36d96142dd 1039 }
sesa514652 28:aab0aa846cf6 1040 return g_ButtonBPress;
sesa514652 18:bb36d96142dd 1041 }
sesa514652 33:3717bc4e2fa8 1042 int NoContinueExitScan1(){
sesa514652 33:3717bc4e2fa8 1043 LoopCountScan1++;
sesa514652 40:0d55297c8b34 1044 if (LoopCountScan1>10){
sesa514652 33:3717bc4e2fa8 1045 LoopCountScan1= 0;
sesa514652 33:3717bc4e2fa8 1046 }
sesa514652 33:3717bc4e2fa8 1047 return LoopCountScan1;
sesa514652 33:3717bc4e2fa8 1048 }
sesa514652 33:3717bc4e2fa8 1049 int NoContinueExitScan2(){
sesa514652 33:3717bc4e2fa8 1050 LoopCountScan2++;
sesa514652 40:0d55297c8b34 1051 if (LoopCountScan2>10){
sesa514652 33:3717bc4e2fa8 1052 LoopCountScan2= 0;
sesa514652 33:3717bc4e2fa8 1053 }
sesa514652 33:3717bc4e2fa8 1054 return LoopCountScan2;
sesa514652 33:3717bc4e2fa8 1055 }
sesa514652 33:3717bc4e2fa8 1056 int NoContinueExitScan3(){
sesa514652 33:3717bc4e2fa8 1057 LoopCountScan3++;
sesa514652 40:0d55297c8b34 1058 if (LoopCountScan3>10){
sesa514652 33:3717bc4e2fa8 1059 LoopCountScan3= 0;
sesa514652 33:3717bc4e2fa8 1060 }
sesa514652 33:3717bc4e2fa8 1061 return LoopCountScan3;
sesa514652 33:3717bc4e2fa8 1062 }
sesa514652 33:3717bc4e2fa8 1063 int NoContinueExitScan4(){
sesa514652 33:3717bc4e2fa8 1064 LoopCountScan4++;
sesa514652 40:0d55297c8b34 1065 if (LoopCountScan4>10){
sesa514652 33:3717bc4e2fa8 1066 LoopCountScan4= 0;
sesa514652 33:3717bc4e2fa8 1067 }
sesa514652 33:3717bc4e2fa8 1068 return LoopCountScan4;
sesa514652 33:3717bc4e2fa8 1069 }
sesa514652 33:3717bc4e2fa8 1070 int NoContinueExitScan5(){
sesa514652 33:3717bc4e2fa8 1071 LoopCountScan5++;
sesa514652 40:0d55297c8b34 1072 if (LoopCountScan5>10){
sesa514652 33:3717bc4e2fa8 1073 LoopCountScan5= 0;
sesa514652 33:3717bc4e2fa8 1074 }
sesa514652 33:3717bc4e2fa8 1075 return LoopCountScan5;
sesa514652 33:3717bc4e2fa8 1076 }
sesa514652 40:0d55297c8b34 1077 int NoContinueExitScan6(){
sesa514652 40:0d55297c8b34 1078 LoopCountScan6++;
sesa514652 40:0d55297c8b34 1079 if (LoopCountScan6>10){
sesa514652 40:0d55297c8b34 1080 LoopCountScan6= 0;
sesa514652 40:0d55297c8b34 1081 }
sesa514652 40:0d55297c8b34 1082 return LoopCountScan6;
sesa514652 40:0d55297c8b34 1083 }
sesa514652 33:3717bc4e2fa8 1084
sesa514652 15:234321e80678 1085
sesa514652 12:ceea378d5691 1086 //Button A event-triggered interrupt
sesa514652 10:42e70b596099 1087 void buttonA_isr()
sesa514652 10:42e70b596099 1088 {
sesa514652 12:ceea378d5691 1089
sesa514652 18:bb36d96142dd 1090 long distanced = sensor.distance();
sesa514652 18:bb36d96142dd 1091 buttonCountA();
sesa514652 18:bb36d96142dd 1092
sesa514652 16:2646c1c4e62e 1093
sesa514652 12:ceea378d5691 1094
sesa514652 12:ceea378d5691 1095 g_buttonA_flag = 1; // set flag in ISR
sesa514652 12:ceea378d5691 1096
sesa514652 28:aab0aa846cf6 1097 printf("press count = %i\n",g_ButtonAPress);
sesa514652 12:ceea378d5691 1098
sesa514652 12:ceea378d5691 1099 // lcd.clear();
sesa514652 15:234321e80678 1100 //lcd.printString("Button A Pressed",0,0);
sesa514652 12:ceea378d5691 1101
sesa514652 15:234321e80678 1102 // lcd.refresh(); // set flag in ISR
sesa514652 12:ceea378d5691 1103 }
sesa514652 12:ceea378d5691 1104
sesa514652 11:1dec05b7d1c1 1105
sesa514652 10:42e70b596099 1106 //Button B event-triggered interrupt
sesa514652 10:42e70b596099 1107 void buttonB_isr()
sesa514652 10:42e70b596099 1108 {
sesa514652 18:bb36d96142dd 1109 buttonCountB();
sesa514652 10:42e70b596099 1110 g_buttonB_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1111 lcd.clear();
sesa514652 39:a31b49f3e65e 1112 g_ButtonAPress = 6; // This is is a work around due to time constraints
sesa514652 11:1dec05b7d1c1 1113 lcd.printString("Button B Pressed",0,0);
sesa514652 39:a31b49f3e65e 1114
sesa514652 11:1dec05b7d1c1 1115 lcd.refresh(); // set flag in ISR
sesa514652 28:aab0aa846cf6 1116 printf("press count = %i\n",g_ButtonBPress);
sesa514652 10:42e70b596099 1117 }
sesa514652 10:42e70b596099 1118 //Button X event-triggered interrupt
sesa514652 10:42e70b596099 1119 void buttonX_isr()
sesa514652 10:42e70b596099 1120 {
sesa514652 10:42e70b596099 1121 g_buttonX_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1122 lcd.clear();
sesa514652 11:1dec05b7d1c1 1123 lcd.printString("Button X Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1124 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 1125 }
sesa514652 10:42e70b596099 1126 //Button Y event-triggered interrupt
sesa514652 10:42e70b596099 1127 void buttonY_isr()
sesa514652 10:42e70b596099 1128 {
sesa514652 10:42e70b596099 1129 g_buttonY_flag = 1; // set flag in ISR
sesa514652 37:323ec7d23454 1130 lcd.clear();
sesa514652 11:1dec05b7d1c1 1131 lcd.printString("Button Y Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1132 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 1133 }
sesa514652 11:1dec05b7d1c1 1134 //Button Start event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1135 void buttonStart_isr()
sesa514652 11:1dec05b7d1c1 1136 {
sesa514652 11:1dec05b7d1c1 1137 g_buttonStart_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1138 lcd.clear();
sesa514652 37:323ec7d23454 1139 /////////////////////////////////////////////////
sesa514652 37:323ec7d23454 1140 int arr1[5] ;
sesa514652 37:323ec7d23454 1141 /*
sesa514652 37:323ec7d23454 1142 * For loop required to assign array values to that of the scan value
sesa514652 39:a31b49f3e65e 1143 */ /* not required due to repeatablity issues
sesa514652 37:323ec7d23454 1144 for(int i=0; i<5; i++){
sesa514652 37:323ec7d23454 1145 arr1[i] =Scan1[i];}
sesa514652 37:323ec7d23454 1146 int arr2[] = { 90, 90, 90, 90, 90 };
sesa514652 37:323ec7d23454 1147 int n = sizeof(arr1) / sizeof(int);
sesa514652 37:323ec7d23454 1148 int m = sizeof(arr2) / sizeof(int);
sesa514652 39:a31b49f3e65e 1149 */
sesa514652 37:323ec7d23454 1150
sesa514652 38:71cfbdd2076d 1151 // if(MatchMade(arr1, arr2, n, m))
sesa514652 38:71cfbdd2076d 1152 // printf("You are a wall");
sesa514652 38:71cfbdd2076d 1153 // else
sesa514652 38:71cfbdd2076d 1154 // printf("Not THis Object"); //////////////////////////////////
sesa514652 37:323ec7d23454 1155
sesa514652 37:323ec7d23454 1156
sesa514652 11:1dec05b7d1c1 1157 lcd.printString("Button Start Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1158 lcd.refresh(); // set flag in ISR
sesa514652 29:1aef0ecf9840 1159
sesa514652 11:1dec05b7d1c1 1160 }
sesa514652 11:1dec05b7d1c1 1161 //Button Back event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1162 void buttonBack_isr()
sesa514652 11:1dec05b7d1c1 1163 {
sesa514652 11:1dec05b7d1c1 1164 g_buttonBack_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1165 lcd.clear();
sesa514652 11:1dec05b7d1c1 1166 lcd.printString("Button Back Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1167 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 1168 }
sesa514652 11:1dec05b7d1c1 1169 //Button Left event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1170 void buttonLeft_isr()
sesa514652 11:1dec05b7d1c1 1171 {
sesa514652 11:1dec05b7d1c1 1172 g_buttonLeft_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1173 lcd.clear();
sesa514652 11:1dec05b7d1c1 1174 lcd.printString("Button Left Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1175 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 1176 }
sesa514652 11:1dec05b7d1c1 1177 //Button Right event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1178 void buttonRight_isr()
sesa514652 11:1dec05b7d1c1 1179 {
sesa514652 11:1dec05b7d1c1 1180 g_buttonRight_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1181 lcd.clear();
sesa514652 31:91a3c61d33e6 1182 lcd.printString("Button Right Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1183 lcd.refresh(); // set flag in ISR
sesa514652 31:91a3c61d33e6 1184 }
sesa514652 31:91a3c61d33e6 1185 void inputScan1()
sesa514652 31:91a3c61d33e6 1186 {
sesa514652 31:91a3c61d33e6 1187 lcd.clear();
sesa514652 31:91a3c61d33e6 1188 lcd.printString("First Scan",0,0);
sesa514652 31:91a3c61d33e6 1189 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1190 NoContinueExitScan1();
sesa514652 31:91a3c61d33e6 1191
sesa514652 31:91a3c61d33e6 1192 Buzzer.play(300,120); lcd.printString("X",0,1); lcd.refresh(); Scan1[0] = sensor.distance();
sesa514652 36:3e975536e8d7 1193 wait_ms(5);
sesa514652 38:71cfbdd2076d 1194 /* NO Longer Required Section
sesa514652 31:91a3c61d33e6 1195 Buzzer.play(200,120); lcd.printString("X",0,2);lcd.refresh(); Scan1[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1196 wait_ms(5);
sesa514652 31:91a3c61d33e6 1197 Buzzer.play(200,120); lcd.printString("X",0,3);lcd.refresh(); Scan1[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1198 wait_ms(5);
sesa514652 31:91a3c61d33e6 1199 Buzzer.play(200,120); lcd.printString("X",0,4);lcd.refresh(); Scan1[3] = sensor.distance();;
sesa514652 31:91a3c61d33e6 1200 wait_ms(5);
sesa514652 31:91a3c61d33e6 1201 Buzzer.play(200,120); lcd.printString("X",0,5);lcd.refresh(); Scan1[4] = sensor.distance();;
sesa514652 38:71cfbdd2076d 1202 wait_ms(5); */
sesa514652 36:3e975536e8d7 1203 lcd.printString("Scan 1 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1204 }
sesa514652 31:91a3c61d33e6 1205
sesa514652 31:91a3c61d33e6 1206 void inputScan2()
sesa514652 31:91a3c61d33e6 1207 {
sesa514652 31:91a3c61d33e6 1208 lcd.clear();
sesa514652 31:91a3c61d33e6 1209 lcd.printString("Second Scan",0,0);
sesa514652 31:91a3c61d33e6 1210 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1211 NoContinueExitScan2();
sesa514652 38:71cfbdd2076d 1212 lcd.printString("X",0,1); //No longer Required Line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1213 Buzzer.play(300,120); lcd.printString("X",15,1); lcd.refresh(); Scan1[1] = sensor.distance();
sesa514652 38:71cfbdd2076d 1214 wait_ms(5);/*
sesa514652 31:91a3c61d33e6 1215 Buzzer.play(200,120); lcd.printString("X",15,2);lcd.refresh(); Scan2[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1216 wait_ms(5);
sesa514652 31:91a3c61d33e6 1217 Buzzer.play(200,120); lcd.printString("X",15,3);lcd.refresh(); Scan2[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1218 wait_ms(5);
sesa514652 31:91a3c61d33e6 1219 Buzzer.play(200,120); lcd.printString("X",15,4);lcd.refresh(); Scan2[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1220 wait_ms(5);
sesa514652 38:71cfbdd2076d 1221 Buzzer.play(200,120); lcd.printString("X",15,5);lcd.refresh(); Scan2[4] = sensor.distance();*/
sesa514652 31:91a3c61d33e6 1222 lcd.printString("Scan 2 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1223
sesa514652 31:91a3c61d33e6 1224 }
sesa514652 31:91a3c61d33e6 1225 void inputScan3()
sesa514652 31:91a3c61d33e6 1226 {
sesa514652 38:71cfbdd2076d 1227 lcd.clear();
sesa514652 31:91a3c61d33e6 1228 lcd.printString("Third Scan",0,0);
sesa514652 31:91a3c61d33e6 1229 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1230 NoContinueExitScan3();
sesa514652 38:71cfbdd2076d 1231 lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1232 lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1233 Buzzer.play(300,120); lcd.printString("X",30,1); lcd.refresh(); Scan1[2] = sensor.distance();
sesa514652 38:71cfbdd2076d 1234 wait_ms(5);/*
sesa514652 31:91a3c61d33e6 1235 Buzzer.play(200,120); lcd.printString("X",30,2);lcd.refresh(); Scan3[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1236 wait_ms(5);
sesa514652 31:91a3c61d33e6 1237 Buzzer.play(200,120); lcd.printString("X",30,3);lcd.refresh(); Scan3[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1238 wait_ms(5);
sesa514652 31:91a3c61d33e6 1239 Buzzer.play(200,120); lcd.printString("X",30,4);lcd.refresh(); Scan3[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1240 wait_ms(5);
sesa514652 38:71cfbdd2076d 1241 Buzzer.play(200,120); lcd.printString("X",30,5);lcd.refresh(); Scan3[4] = sensor.distance(); */
sesa514652 31:91a3c61d33e6 1242 lcd.printString("Scan 3 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1243 }
sesa514652 31:91a3c61d33e6 1244 void inputScan4()
sesa514652 31:91a3c61d33e6 1245 {
sesa514652 33:3717bc4e2fa8 1246 lcd.clear();
sesa514652 33:3717bc4e2fa8 1247 lcd.printString("Fourth Scan",0,0);
sesa514652 33:3717bc4e2fa8 1248 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1249 NoContinueExitScan4();
sesa514652 38:71cfbdd2076d 1250 lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1251 lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1252 lcd.printString("X",30,1);//No Longer required line,lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1253 Buzzer.play(300,120); lcd.printString("X",45,1); lcd.refresh(); Scan1[3] = sensor.distance();
sesa514652 38:71cfbdd2076d 1254 wait_ms(5);/*
sesa514652 31:91a3c61d33e6 1255 Buzzer.play(200,120); lcd.printString("X",45,2);lcd.refresh(); Scan4[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1256 wait_ms(5);
sesa514652 31:91a3c61d33e6 1257 Buzzer.play(200,120); lcd.printString("X",45,3);lcd.refresh(); Scan4[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1258 wait_ms(5);
sesa514652 31:91a3c61d33e6 1259 Buzzer.play(200,120); lcd.printString("X",45,4);lcd.refresh(); Scan4[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1260 wait_ms(5);
sesa514652 38:71cfbdd2076d 1261 Buzzer.play(200,120); lcd.printString("X",45,5);lcd.refresh(); Scan4[4] = sensor.distance(); */
sesa514652 31:91a3c61d33e6 1262 lcd.printString("Scan 4 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1263 }
sesa514652 31:91a3c61d33e6 1264 void inputScan5()
sesa514652 31:91a3c61d33e6 1265 {
sesa514652 31:91a3c61d33e6 1266 lcd.clear();
sesa514652 31:91a3c61d33e6 1267 lcd.printString("Fifth Scan",0,0);
sesa514652 31:91a3c61d33e6 1268 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1269 NoContinueExitScan5();
sesa514652 38:71cfbdd2076d 1270 lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1271 lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1272 lcd.printString("X",30,1);//No Longer required line,lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1273 lcd.printString("X",45,1);//No Longer required line,lcd.printString("X",45,2),lcd.printString("X",45,3),lcd.printString("X",45,4),lcd.printString("X",45,5); lcd.refresh();
sesa514652 38:71cfbdd2076d 1274 Buzzer.play(300,120); lcd.printString("X",60,1); lcd.refresh(); Scan1[4] = sensor.distance();
sesa514652 38:71cfbdd2076d 1275 wait_ms(5); /*
sesa514652 31:91a3c61d33e6 1276 Buzzer.play(200,120); lcd.printString("X",60,2);lcd.refresh(); Scan5[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1277 wait_ms(5);
sesa514652 31:91a3c61d33e6 1278 Buzzer.play(200,120); lcd.printString("X",60,3);lcd.refresh(); Scan5[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1279 wait_ms(5);
sesa514652 31:91a3c61d33e6 1280 Buzzer.play(200,120); lcd.printString("X",60,4);lcd.refresh(); Scan5[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1281 wait_ms(5);
sesa514652 38:71cfbdd2076d 1282 Buzzer.play(200,120); lcd.printString("X",60,5);lcd.refresh(); Scan5[4] = sensor.distance(); */
sesa514652 31:91a3c61d33e6 1283 lcd.printString("Scan 5 Done",0,0); lcd.refresh();
sesa514652 40:0d55297c8b34 1284 }
sesa514652 40:0d55297c8b34 1285
sesa514652 40:0d55297c8b34 1286 void inputScan6()
sesa514652 40:0d55297c8b34 1287 {
sesa514652 40:0d55297c8b34 1288 lcd.clear();
sesa514652 40:0d55297c8b34 1289 lcd.printString("Decide",0,0);
sesa514652 40:0d55297c8b34 1290 lcd.refresh();
sesa514652 40:0d55297c8b34 1291 NoContinueExitScan6();
sesa514652 40:0d55297c8b34 1292 int box[5]= {90,10,10,90,90};// compared to the wall if the box is present this sequence should be recorded
sesa514652 40:0d55297c8b34 1293 int carton[5] = {10,10,10,10,10}; // compared to the carton if the box is present this sequence should be recorded
sesa514652 40:0d55297c8b34 1294 int wall [5] = {90,90,90,90,90}; // compared to the carton if the box is present this sequence should be recorded
sesa514652 40:0d55297c8b34 1295 int isBox[5];
sesa514652 40:0d55297c8b34 1296 int isCarton[5];
sesa514652 40:0d55297c8b34 1297 int isWall[5];
sesa514652 40:0d55297c8b34 1298 //int wallTotal;
sesa514652 40:0d55297c8b34 1299 //int cartonTotal;
sesa514652 40:0d55297c8b34 1300 //int boxTotal;
sesa514652 40:0d55297c8b34 1301 for (int i=0; i<5; i++){
sesa514652 40:0d55297c8b34 1302 isBox[i] =abs(Scan1[i]-box[i]);
sesa514652 40:0d55297c8b34 1303 printf("DeBUGGING isBOX : %i\n", isBox[i]);
sesa514652 40:0d55297c8b34 1304 if (isBox[i]<=5){
sesa514652 40:0d55297c8b34 1305 isBox[i]=0;}
sesa514652 40:0d55297c8b34 1306 else if (isBox[i]>5){
sesa514652 40:0d55297c8b34 1307 isBox[i]=1;}
sesa514652 40:0d55297c8b34 1308 printf("DeBUGGING isBOX : %i\n", isBox[i]);
sesa514652 40:0d55297c8b34 1309 boxTotal = accumulate(begin(isBox), end(isBox), 0, plus<int>());
sesa514652 40:0d55297c8b34 1310 printf("DEBUGGING BOX total %i\n", boxTotal);
sesa514652 40:0d55297c8b34 1311
sesa514652 40:0d55297c8b34 1312 isCarton[i] =abs(Scan1[i]-carton[i]);
sesa514652 40:0d55297c8b34 1313 printf("DeBUGGING isCarton : %i\n", isCarton[i]);
sesa514652 40:0d55297c8b34 1314 if (isCarton[i]<=5){
sesa514652 40:0d55297c8b34 1315 isCarton[i]=0;}
sesa514652 40:0d55297c8b34 1316 else if (isCarton[i]>5){
sesa514652 40:0d55297c8b34 1317 isCarton[i]=1;}
sesa514652 40:0d55297c8b34 1318 printf("DeBUGGING isCarton : %i\n", isCarton[i]);
sesa514652 40:0d55297c8b34 1319 cartonTotal = accumulate(begin(isCarton), end(isCarton), 0, plus<int>());
sesa514652 40:0d55297c8b34 1320 printf("DEBUGGING CARTON total %i\n", cartonTotal);
sesa514652 40:0d55297c8b34 1321
sesa514652 40:0d55297c8b34 1322 isWall[i] =abs(Scan1[i]-wall[i]);
sesa514652 40:0d55297c8b34 1323 printf("DeBUGGING isWall : %i\n", isWall[i]);
sesa514652 40:0d55297c8b34 1324 if (isWall[i]<=5){
sesa514652 40:0d55297c8b34 1325 isWall[i]=0;}
sesa514652 40:0d55297c8b34 1326 else if (isWall[i]>5){
sesa514652 40:0d55297c8b34 1327 isWall[i]=1;}
sesa514652 40:0d55297c8b34 1328 printf("DeBUGGING isWall : %i\n", isWall[i]);
sesa514652 40:0d55297c8b34 1329 wallTotal = accumulate(begin(isWall), end(isWall), 0, plus<int>());
sesa514652 40:0d55297c8b34 1330 printf("DEBUGGING Wall total %i\n", wallTotal);
sesa514652 40:0d55297c8b34 1331
sesa514652 40:0d55297c8b34 1332 ;}
sesa514652 40:0d55297c8b34 1333 printf("Im Free of the For Debug WallTotoal:: %i\n", wallTotal);
sesa514652 40:0d55297c8b34 1334 printf("Im Free of the For Debug BoxTotoal:: %i\n", boxTotal);
sesa514652 40:0d55297c8b34 1335 printf("Im Free of the For Debug cartonTotoal:: %i\n", cartonTotal);
sesa514652 40:0d55297c8b34 1336 printShape();
sesa514652 40:0d55297c8b34 1337
sesa514652 40:0d55297c8b34 1338 }
sesa514652 40:0d55297c8b34 1339 void printShape(){
sesa514652 40:0d55297c8b34 1340 if(wallTotal == 0){
sesa514652 40:0d55297c8b34 1341 printf("We Have a wall\n");
sesa514652 40:0d55297c8b34 1342 lcd.clear();
sesa514652 40:0d55297c8b34 1343 lcd.printString("Wall",0,2);
sesa514652 40:0d55297c8b34 1344 lcd.drawLine(20,0,20,5,1);
sesa514652 40:0d55297c8b34 1345 lcd.refresh();;}
sesa514652 40:0d55297c8b34 1346 else if(boxTotal=0){
sesa514652 40:0d55297c8b34 1347 printf("We Have Box\n");}
sesa514652 40:0d55297c8b34 1348 else;
sesa514652 40:0d55297c8b34 1349 printf("Not in the Database \n");}