Coursework

Committer:
sesa514652
Date:
Sat Jan 29 15:17:34 2022 +0000
Revision:
34:dfe7f5799582
Parent:
33:3717bc4e2fa8
Child:
35:36c7605dda06
Commented out

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