Coursework

Committer:
sesa514652
Date:
Sat Jan 29 15:05:25 2022 +0000
Revision:
33:3717bc4e2fa8
Parent:
32:9c206f993cf5
Child:
34:dfe7f5799582
Using For for loop and if statement for the logic, previous if's can be removed .. comment 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 33:3717bc4e2fa8 349 printf("no wall");}
sesa514652 33:3717bc4e2fa8 350 else if (Scan1[i]<85){
sesa514652 33:3717bc4e2fa8 351 printf("OBJECT ABOUT");}
sesa514652 33:3717bc4e2fa8 352 else if (Scan1[i]>85<95){
sesa514652 33:3717bc4e2fa8 353 printf("No Object");}
sesa514652 33:3717bc4e2fa8 354 }
sesa514652 29:1aef0ecf9840 355
sesa514652 29:1aef0ecf9840 356 /** IF Statement to decide on shape to draw
sesa514652 29:1aef0ecf9840 357 *.. 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 358 */
sesa514652 29:1aef0ecf9840 359
sesa514652 29:1aef0ecf9840 360 if (Scan1[0] > Scan1[1])
sesa514652 29:1aef0ecf9840 361 {
sesa514652 29:1aef0ecf9840 362 printf("+");
sesa514652 29:1aef0ecf9840 363 Decide[0]= 'x';
sesa514652 29:1aef0ecf9840 364 printf( "chosen 1 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 365 }
sesa514652 31:91a3c61d33e6 366 else if (Scan1[0] == Scan1[1])
sesa514652 29:1aef0ecf9840 367 {
sesa514652 29:1aef0ecf9840 368 printf("=");
sesa514652 29:1aef0ecf9840 369 Decide[0]='=';
sesa514652 29:1aef0ecf9840 370 printf( "chosen2 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 371 }
sesa514652 29:1aef0ecf9840 372 else if (Scan1[0] < Scan1[1])
sesa514652 29:1aef0ecf9840 373 {
sesa514652 29:1aef0ecf9840 374 printf("-");
sesa514652 29:1aef0ecf9840 375 Decide[0]='-';
sesa514652 29:1aef0ecf9840 376 printf( "chosen3 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 377 }
sesa514652 29:1aef0ecf9840 378 if (Scan1[1] > Scan1[2])
sesa514652 29:1aef0ecf9840 379 {
sesa514652 29:1aef0ecf9840 380 printf("+");
sesa514652 29:1aef0ecf9840 381 Decide[1]= 'x';
sesa514652 29:1aef0ecf9840 382 printf( "chosen 1 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 383 }
sesa514652 31:91a3c61d33e6 384 else if (Scan1[1] == Scan1[2])
sesa514652 29:1aef0ecf9840 385 {
sesa514652 29:1aef0ecf9840 386 printf("=");
sesa514652 29:1aef0ecf9840 387 Decide[1]='=';
sesa514652 29:1aef0ecf9840 388 printf( "chosen2 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 389 }
sesa514652 29:1aef0ecf9840 390 else if (Scan1[1] < Scan1[2])
sesa514652 29:1aef0ecf9840 391 {
sesa514652 29:1aef0ecf9840 392 printf("-");
sesa514652 29:1aef0ecf9840 393 Decide[1]='-';
sesa514652 29:1aef0ecf9840 394 printf( "chosen3 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 395 }
sesa514652 29:1aef0ecf9840 396
sesa514652 29:1aef0ecf9840 397 if (Scan1[2] > Scan1[3])
sesa514652 29:1aef0ecf9840 398 {
sesa514652 29:1aef0ecf9840 399 printf("+");
sesa514652 29:1aef0ecf9840 400 Decide[2]= 'x';
sesa514652 29:1aef0ecf9840 401 printf( "chosen 1 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 402 }
sesa514652 31:91a3c61d33e6 403 else if (Scan1[2] == Scan1[3])
sesa514652 29:1aef0ecf9840 404 {
sesa514652 29:1aef0ecf9840 405 printf("=");
sesa514652 29:1aef0ecf9840 406 Decide[2]='=';
sesa514652 29:1aef0ecf9840 407 printf( "chosen2 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 408 }
sesa514652 29:1aef0ecf9840 409 else if (Scan1[2] < Scan1[3])
sesa514652 29:1aef0ecf9840 410 {
sesa514652 29:1aef0ecf9840 411 printf("-");
sesa514652 29:1aef0ecf9840 412 Decide[2]='-';
sesa514652 29:1aef0ecf9840 413 printf( "chosen3 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 414 }
sesa514652 29:1aef0ecf9840 415 if (Scan1[3] > Scan1[4])
sesa514652 29:1aef0ecf9840 416 {
sesa514652 29:1aef0ecf9840 417 printf("+");
sesa514652 29:1aef0ecf9840 418 Decide[3]= 'x';
sesa514652 29:1aef0ecf9840 419 printf( "chosen 1 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 420 }
sesa514652 31:91a3c61d33e6 421 else if (Scan1[3] == Scan1[4])
sesa514652 29:1aef0ecf9840 422 {
sesa514652 29:1aef0ecf9840 423 printf("=");
sesa514652 29:1aef0ecf9840 424 Decide[3]='=';
sesa514652 29:1aef0ecf9840 425 printf( "chosen2 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 426 }
sesa514652 29:1aef0ecf9840 427 else if (Scan1[3] < Scan1[4])
sesa514652 29:1aef0ecf9840 428 {
sesa514652 29:1aef0ecf9840 429 printf("-");
sesa514652 29:1aef0ecf9840 430 Decide[3]='-';
sesa514652 29:1aef0ecf9840 431 printf( "chosen3 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 432 }
sesa514652 29:1aef0ecf9840 433
sesa514652 29:1aef0ecf9840 434 if (Scan2[0] > Scan2[1])
sesa514652 29:1aef0ecf9840 435 {
sesa514652 29:1aef0ecf9840 436 printf("+");
sesa514652 29:1aef0ecf9840 437 Decide2[0]= 'x';
sesa514652 29:1aef0ecf9840 438 printf( "chosen 1 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 439 }
sesa514652 31:91a3c61d33e6 440 else if (Scan2[0] == Scan2[1])
sesa514652 29:1aef0ecf9840 441 {
sesa514652 29:1aef0ecf9840 442 printf("=");
sesa514652 29:1aef0ecf9840 443 Decide2[0]='=';
sesa514652 29:1aef0ecf9840 444 printf( "chosen2 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 445 }
sesa514652 29:1aef0ecf9840 446 else if (Scan2[0] < Scan2[1])
sesa514652 29:1aef0ecf9840 447 {
sesa514652 29:1aef0ecf9840 448 printf("-");
sesa514652 29:1aef0ecf9840 449 Decide2[0]='-';
sesa514652 29:1aef0ecf9840 450 printf( "chosen3 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 451 }
sesa514652 29:1aef0ecf9840 452 if (Scan2[1] > Scan2[2])
sesa514652 29:1aef0ecf9840 453 {
sesa514652 29:1aef0ecf9840 454 printf("+");
sesa514652 29:1aef0ecf9840 455 Decide2[1]= 'x';
sesa514652 29:1aef0ecf9840 456 printf( "chosen 1 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 457 }
sesa514652 31:91a3c61d33e6 458 else if (Scan2[1] == Scan2[2])
sesa514652 29:1aef0ecf9840 459 {
sesa514652 29:1aef0ecf9840 460 printf("=");
sesa514652 29:1aef0ecf9840 461 Decide2[1]='=';
sesa514652 29:1aef0ecf9840 462 printf( "chosen2 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 463 }
sesa514652 29:1aef0ecf9840 464 else if (Scan2[1] < Scan2[2])
sesa514652 29:1aef0ecf9840 465 {
sesa514652 29:1aef0ecf9840 466 printf("-");
sesa514652 29:1aef0ecf9840 467 Decide2[1]='-';
sesa514652 29:1aef0ecf9840 468 printf( "chosen3 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 469 }
sesa514652 29:1aef0ecf9840 470
sesa514652 29:1aef0ecf9840 471 if (Scan2[2] > Scan2[3])
sesa514652 29:1aef0ecf9840 472 {
sesa514652 29:1aef0ecf9840 473 printf("+");
sesa514652 29:1aef0ecf9840 474 Decide2[2]= 'x';
sesa514652 29:1aef0ecf9840 475 printf( "chosen 1 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 476 }
sesa514652 31:91a3c61d33e6 477 else if (Scan2[2] == Scan2[3])
sesa514652 29:1aef0ecf9840 478 {
sesa514652 29:1aef0ecf9840 479 printf("=");
sesa514652 29:1aef0ecf9840 480 Decide2[2]='=';
sesa514652 29:1aef0ecf9840 481 printf( "chosen2 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 482 }
sesa514652 29:1aef0ecf9840 483 else if (Scan2[2] < Scan2[3])
sesa514652 29:1aef0ecf9840 484 {
sesa514652 29:1aef0ecf9840 485 printf("-");
sesa514652 29:1aef0ecf9840 486 Decide2[2]='-';
sesa514652 29:1aef0ecf9840 487 printf( "chosen3 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 488 }
sesa514652 29:1aef0ecf9840 489 if (Scan2[3] > Scan2[4])
sesa514652 29:1aef0ecf9840 490 {
sesa514652 29:1aef0ecf9840 491 printf("+");
sesa514652 29:1aef0ecf9840 492 Decide2[3]= 'x';
sesa514652 29:1aef0ecf9840 493 printf( "chosen 1 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 494 }
sesa514652 31:91a3c61d33e6 495 else if (Scan2[3] == Scan2[4])
sesa514652 29:1aef0ecf9840 496 {
sesa514652 29:1aef0ecf9840 497 printf("=");
sesa514652 29:1aef0ecf9840 498 Decide2[3]='=';
sesa514652 29:1aef0ecf9840 499 printf( "chosen2 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 500 }
sesa514652 29:1aef0ecf9840 501 else if (Scan2[3] < Scan2[4])
sesa514652 29:1aef0ecf9840 502 {
sesa514652 29:1aef0ecf9840 503 printf("-");
sesa514652 29:1aef0ecf9840 504 Decide2[3]='-';
sesa514652 29:1aef0ecf9840 505 printf( "chosen3 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 506 }
sesa514652 29:1aef0ecf9840 507
sesa514652 29:1aef0ecf9840 508 if (Scan3[0] > Scan3[1])
sesa514652 29:1aef0ecf9840 509 {
sesa514652 29:1aef0ecf9840 510 printf("+");
sesa514652 29:1aef0ecf9840 511 Decide3[0]= 'x';
sesa514652 29:1aef0ecf9840 512 printf( "chosen 1 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 513 }
sesa514652 31:91a3c61d33e6 514 else if (Scan3[0] == Scan3[1])
sesa514652 29:1aef0ecf9840 515 {
sesa514652 29:1aef0ecf9840 516 printf("=");
sesa514652 29:1aef0ecf9840 517 Decide3[0]='=';
sesa514652 29:1aef0ecf9840 518 printf( "chosen2 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 519 }
sesa514652 29:1aef0ecf9840 520 else if (Scan3[0] < Scan3[1])
sesa514652 29:1aef0ecf9840 521 {
sesa514652 29:1aef0ecf9840 522 printf("-");
sesa514652 29:1aef0ecf9840 523 Decide3[0]='-';
sesa514652 29:1aef0ecf9840 524 printf( "chosen3 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 525 }
sesa514652 29:1aef0ecf9840 526 if (Scan3[1] > Scan3[2])
sesa514652 29:1aef0ecf9840 527 {
sesa514652 29:1aef0ecf9840 528 printf("+");
sesa514652 29:1aef0ecf9840 529 Decide3[1]= 'x';
sesa514652 29:1aef0ecf9840 530 printf( "chosen 1 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 531 }
sesa514652 31:91a3c61d33e6 532 else if (Scan3[1] == Scan3[2])
sesa514652 29:1aef0ecf9840 533 {
sesa514652 29:1aef0ecf9840 534 printf("=");
sesa514652 29:1aef0ecf9840 535 Decide3[1]='=';
sesa514652 29:1aef0ecf9840 536 printf( "chosen2 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 537 }
sesa514652 29:1aef0ecf9840 538 else if (Scan3[1] < Scan3[2])
sesa514652 29:1aef0ecf9840 539 {
sesa514652 29:1aef0ecf9840 540 printf("-");
sesa514652 29:1aef0ecf9840 541 Decide3[1]='-';
sesa514652 29:1aef0ecf9840 542 printf( "chosen3 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 543 }
sesa514652 29:1aef0ecf9840 544
sesa514652 29:1aef0ecf9840 545 if (Scan3[2] > Scan3[3])
sesa514652 29:1aef0ecf9840 546 {
sesa514652 29:1aef0ecf9840 547 printf("+");
sesa514652 29:1aef0ecf9840 548 Decide3[2]= 'x';
sesa514652 29:1aef0ecf9840 549 printf( "chosen 1 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 550 }
sesa514652 31:91a3c61d33e6 551 else if (Scan3[2] == Scan3[3])
sesa514652 29:1aef0ecf9840 552 {
sesa514652 29:1aef0ecf9840 553 printf("=");
sesa514652 29:1aef0ecf9840 554 Decide3[2]='=';
sesa514652 29:1aef0ecf9840 555 printf( "chosen2 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 556 }
sesa514652 29:1aef0ecf9840 557 else if (Scan3[2] < Scan3[3])
sesa514652 29:1aef0ecf9840 558 {
sesa514652 29:1aef0ecf9840 559 printf("-");
sesa514652 29:1aef0ecf9840 560 Decide3[2]='-';
sesa514652 29:1aef0ecf9840 561 printf( "chosen3 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 562 }
sesa514652 29:1aef0ecf9840 563 if (Scan3[3] > Scan3[4])
sesa514652 29:1aef0ecf9840 564 {
sesa514652 29:1aef0ecf9840 565 printf("+");
sesa514652 29:1aef0ecf9840 566 Decide3[3]= 'x';
sesa514652 29:1aef0ecf9840 567 printf( "chosen 1 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 568 }
sesa514652 31:91a3c61d33e6 569 else if (Scan3[3] == Scan3[4])
sesa514652 29:1aef0ecf9840 570 {
sesa514652 29:1aef0ecf9840 571 printf("=");
sesa514652 29:1aef0ecf9840 572 Decide3[3]='=';
sesa514652 29:1aef0ecf9840 573 printf( "chosen2 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 574 }
sesa514652 29:1aef0ecf9840 575 else if (Scan3[3] < Scan3[4])
sesa514652 29:1aef0ecf9840 576 {
sesa514652 29:1aef0ecf9840 577 printf("-");
sesa514652 29:1aef0ecf9840 578 Decide3[3]='-';
sesa514652 29:1aef0ecf9840 579 printf( "chosen3 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 580 }
sesa514652 29:1aef0ecf9840 581
sesa514652 29:1aef0ecf9840 582 if (Scan4[0] > Scan4[1])
sesa514652 29:1aef0ecf9840 583 {
sesa514652 29:1aef0ecf9840 584 printf("+");
sesa514652 29:1aef0ecf9840 585 Decide4[0]= 'x';
sesa514652 29:1aef0ecf9840 586 printf( "chosen 1 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 587 }
sesa514652 31:91a3c61d33e6 588 else if (Scan4[0] == Scan4[1])
sesa514652 29:1aef0ecf9840 589 {
sesa514652 29:1aef0ecf9840 590 printf("=");
sesa514652 29:1aef0ecf9840 591 Decide4[0]='=';
sesa514652 29:1aef0ecf9840 592 printf( "chosen2 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 593 }
sesa514652 29:1aef0ecf9840 594 else if (Scan4[0] < Scan4[1])
sesa514652 29:1aef0ecf9840 595 {
sesa514652 29:1aef0ecf9840 596 printf("-");
sesa514652 29:1aef0ecf9840 597 Decide4[0]='-';
sesa514652 29:1aef0ecf9840 598 printf( "chosen3 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 599 }
sesa514652 29:1aef0ecf9840 600 if (Scan4[1] > Scan4[2])
sesa514652 29:1aef0ecf9840 601 {
sesa514652 29:1aef0ecf9840 602 printf("+");
sesa514652 29:1aef0ecf9840 603 Decide4[1]= 'x';
sesa514652 29:1aef0ecf9840 604 printf( "chosen 1 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 605 }
sesa514652 31:91a3c61d33e6 606 else if (Scan4[1] == Scan4[2])
sesa514652 29:1aef0ecf9840 607 {
sesa514652 29:1aef0ecf9840 608 printf("=");
sesa514652 29:1aef0ecf9840 609 Decide4[1]='=';
sesa514652 29:1aef0ecf9840 610 printf( "chosen2 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 611 }
sesa514652 29:1aef0ecf9840 612 else if (Scan4[1] < Scan4[2])
sesa514652 29:1aef0ecf9840 613 {
sesa514652 29:1aef0ecf9840 614 printf("-");
sesa514652 29:1aef0ecf9840 615 Decide4[1]='-';
sesa514652 29:1aef0ecf9840 616 printf( "chosen3 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 617 }
sesa514652 29:1aef0ecf9840 618
sesa514652 29:1aef0ecf9840 619 if (Scan4[2] > Scan4[3])
sesa514652 29:1aef0ecf9840 620 {
sesa514652 29:1aef0ecf9840 621 printf("+");
sesa514652 29:1aef0ecf9840 622 Decide4[2]= 'x';
sesa514652 29:1aef0ecf9840 623 printf( "chosen 1 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 624 }
sesa514652 31:91a3c61d33e6 625 else if (Scan4[2] == Scan4[3])
sesa514652 29:1aef0ecf9840 626 {
sesa514652 29:1aef0ecf9840 627 printf("=");
sesa514652 29:1aef0ecf9840 628 Decide4[2]='=';
sesa514652 29:1aef0ecf9840 629 printf( "chosen2 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 630 }
sesa514652 29:1aef0ecf9840 631 else if (Scan4[2] < Scan4[3])
sesa514652 29:1aef0ecf9840 632 {
sesa514652 29:1aef0ecf9840 633 printf("-");
sesa514652 29:1aef0ecf9840 634 Decide4[2]='-';
sesa514652 29:1aef0ecf9840 635 printf( "chosen3 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 636 }
sesa514652 29:1aef0ecf9840 637 if (Scan4[3] > Scan4[4])
sesa514652 29:1aef0ecf9840 638 {
sesa514652 29:1aef0ecf9840 639 printf("+");
sesa514652 29:1aef0ecf9840 640 Decide4[3]= 'x';
sesa514652 29:1aef0ecf9840 641 printf( "chosen 1 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 642 }
sesa514652 31:91a3c61d33e6 643 else if (Scan4[3] == Scan4[4])
sesa514652 29:1aef0ecf9840 644 {
sesa514652 29:1aef0ecf9840 645 printf("=");
sesa514652 29:1aef0ecf9840 646 Decide4[3]='=';
sesa514652 29:1aef0ecf9840 647 printf( "chosen2 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 648 }
sesa514652 29:1aef0ecf9840 649 else if (Scan4[3] < Scan4[4])
sesa514652 29:1aef0ecf9840 650 {
sesa514652 29:1aef0ecf9840 651 printf("-");
sesa514652 29:1aef0ecf9840 652 Decide4[3]='-';
sesa514652 29:1aef0ecf9840 653 printf( "chosen3 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 654 }
sesa514652 29:1aef0ecf9840 655 if (Scan5[0] > Scan5[1])
sesa514652 29:1aef0ecf9840 656 {
sesa514652 29:1aef0ecf9840 657 printf("+");
sesa514652 29:1aef0ecf9840 658 Decide5[0]= 'x';
sesa514652 29:1aef0ecf9840 659 printf( "chosen 1 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 660 }
sesa514652 31:91a3c61d33e6 661 else if (Scan5[0] == Scan5[1])
sesa514652 29:1aef0ecf9840 662 {
sesa514652 29:1aef0ecf9840 663 printf("=");
sesa514652 29:1aef0ecf9840 664 Decide5[0]='=';
sesa514652 29:1aef0ecf9840 665 printf( "chosen2 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 666 }
sesa514652 29:1aef0ecf9840 667 else if (Scan5[0] < Scan5[1])
sesa514652 29:1aef0ecf9840 668 {
sesa514652 29:1aef0ecf9840 669 printf("-");
sesa514652 29:1aef0ecf9840 670 Decide5[0]='-';
sesa514652 29:1aef0ecf9840 671 printf( "chosen3 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 672 }
sesa514652 29:1aef0ecf9840 673 if (Scan5[1] > Scan5[2])
sesa514652 29:1aef0ecf9840 674 {
sesa514652 29:1aef0ecf9840 675 printf("+");
sesa514652 29:1aef0ecf9840 676 Decide5[1]= 'x';
sesa514652 29:1aef0ecf9840 677 printf( "chosen 1 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 678 }
sesa514652 31:91a3c61d33e6 679 else if (Scan5[1] == Scan5[2])
sesa514652 29:1aef0ecf9840 680 {
sesa514652 29:1aef0ecf9840 681 printf("=");
sesa514652 29:1aef0ecf9840 682 Decide5[1]='=';
sesa514652 29:1aef0ecf9840 683 printf( "chosen2 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 684 }
sesa514652 29:1aef0ecf9840 685 else if (Scan5[1] < Scan5[2])
sesa514652 29:1aef0ecf9840 686 {
sesa514652 29:1aef0ecf9840 687 printf("-");
sesa514652 29:1aef0ecf9840 688 Decide5[1]='-';
sesa514652 29:1aef0ecf9840 689 printf( "chosen3 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 690 }
sesa514652 29:1aef0ecf9840 691
sesa514652 29:1aef0ecf9840 692 if (Scan5[2] > Scan5[3])
sesa514652 29:1aef0ecf9840 693 {
sesa514652 29:1aef0ecf9840 694 printf("+");
sesa514652 29:1aef0ecf9840 695 Decide5[2]= 'x';
sesa514652 29:1aef0ecf9840 696 printf( "chosen 1 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 697 }
sesa514652 31:91a3c61d33e6 698 else if (Scan5[2] == Scan5[3])
sesa514652 29:1aef0ecf9840 699 {
sesa514652 29:1aef0ecf9840 700 printf("=");
sesa514652 29:1aef0ecf9840 701 Decide5[2]='=';
sesa514652 29:1aef0ecf9840 702 printf( "chosen2 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 703 }
sesa514652 29:1aef0ecf9840 704 else if (Scan5[2] < Scan5[3])
sesa514652 29:1aef0ecf9840 705 {
sesa514652 29:1aef0ecf9840 706 printf("-");
sesa514652 29:1aef0ecf9840 707 Decide5[2]='-';
sesa514652 29:1aef0ecf9840 708 printf( "chosen3 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 709 }
sesa514652 29:1aef0ecf9840 710 if (Scan5[3] > Scan5[4])
sesa514652 29:1aef0ecf9840 711 {
sesa514652 29:1aef0ecf9840 712 printf("+");
sesa514652 29:1aef0ecf9840 713 Decide5[3]= 'x';
sesa514652 29:1aef0ecf9840 714 printf( "chosen 1 %c\n",Decide5[3]);
sesa514652 29:1aef0ecf9840 715 }
sesa514652 31:91a3c61d33e6 716 else if (Scan5[3] == Scan5[4])
sesa514652 29:1aef0ecf9840 717 {
sesa514652 29:1aef0ecf9840 718 printf("=");
sesa514652 29:1aef0ecf9840 719 Decide5[3]='=';
sesa514652 29:1aef0ecf9840 720 printf( "chosen2 %c\n",Decide5[3]);
sesa514652 29:1aef0ecf9840 721 }
sesa514652 29:1aef0ecf9840 722 else if (Scan5[3] < Scan5[4])
sesa514652 29:1aef0ecf9840 723 {
sesa514652 29:1aef0ecf9840 724 printf("-");
sesa514652 29:1aef0ecf9840 725 Decide5[3]='-';
sesa514652 29:1aef0ecf9840 726 printf( "chosen3 %c\n",Decide5[3]);
sesa514652 29:1aef0ecf9840 727 }
sesa514652 27:d48bf4e8f1a0 728
sesa514652 21:2e37f80e8b5b 729 lcd.refresh();
sesa514652 21:2e37f80e8b5b 730 wait_ms(50);
sesa514652 21:2e37f80e8b5b 731
sesa514652 21:2e37f80e8b5b 732 break;
sesa514652 28:aab0aa846cf6 733
sesa514652 22:82b01fdfc61f 734 //////////////////////////////////////////////////////////////////////////////////////////////////
sesa514652 28:aab0aa846cf6 735 /**
sesa514652 28:aab0aa846cf6 736 *.. When Button A is pressed this section of code is ran to collect data points of the object.
sesa514652 28:aab0aa846cf6 737 *..Scanning takes marks the LCD with locationof points which data has been collected for.
sesa514652 28:aab0aa846cf6 738 */
sesa514652 21:2e37f80e8b5b 739 case 1:
sesa514652 28:aab0aa846cf6 740 g_ButtonAPress =1;
sesa514652 33:3717bc4e2fa8 741 /*
sesa514652 33:3717bc4e2fa8 742 *..Section used for power saving, if the user has not continued after 5 scans
sesa514652 33:3717bc4e2fa8 743 */
sesa514652 33:3717bc4e2fa8 744 if(LoopCountScan1==5){
sesa514652 33:3717bc4e2fa8 745 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 746 LoopCountScan1=0;
sesa514652 33:3717bc4e2fa8 747 break;}
sesa514652 33:3717bc4e2fa8 748 else;
sesa514652 31:91a3c61d33e6 749 inputScan1();
sesa514652 33:3717bc4e2fa8 750 break;
sesa514652 32:9c206f993cf5 751 /*
sesa514652 30:9d39318ef584 752 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 753 inputScan2();
sesa514652 31:91a3c61d33e6 754 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 755 inputScan3();
sesa514652 28:aab0aa846cf6 756
sesa514652 30:9d39318ef584 757 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 758 inputScan4();
sesa514652 28:aab0aa846cf6 759
sesa514652 30:9d39318ef584 760 wait_ms(5);
sesa514652 31:91a3c61d33e6 761 inputScan5();
sesa514652 30:9d39318ef584 762
sesa514652 30:9d39318ef584 763
sesa514652 30:9d39318ef584 764
sesa514652 28:aab0aa846cf6 765 g_ButtonAPress=0;
sesa514652 32:9c206f993cf5 766 */
sesa514652 33:3717bc4e2fa8 767
sesa514652 22:82b01fdfc61f 768 ////////////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 769 case 2:
sesa514652 28:aab0aa846cf6 770 g_ButtonAPress= 2;
sesa514652 33:3717bc4e2fa8 771 if(LoopCountScan2==5){
sesa514652 33:3717bc4e2fa8 772 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 773 LoopCountScan2=0;
sesa514652 33:3717bc4e2fa8 774 break;}
sesa514652 33:3717bc4e2fa8 775 else;
sesa514652 32:9c206f993cf5 776 /*int secondScan[10];
sesa514652 22:82b01fdfc61f 777
sesa514652 22:82b01fdfc61f 778 secondScan[5] = sensor.distance();
sesa514652 22:82b01fdfc61f 779 printf("Distance : %d cm", secondScan[5]);
sesa514652 22:82b01fdfc61f 780 lcd.clear();
sesa514652 22:82b01fdfc61f 781 lcd.printString("2nd Scan up down",0,0);
sesa514652 32:9c206f993cf5 782 lcd.drawLine(0,10,80,10,2); */
sesa514652 32:9c206f993cf5 783 inputScan2();
sesa514652 20:4e1f2917a857 784 break;
sesa514652 22:82b01fdfc61f 785 ////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 786 case 3:
sesa514652 28:aab0aa846cf6 787 g_ButtonAPress= 3;
sesa514652 33:3717bc4e2fa8 788 if(LoopCountScan3==5){
sesa514652 33:3717bc4e2fa8 789 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 790 LoopCountScan3=0;
sesa514652 33:3717bc4e2fa8 791 break;}
sesa514652 33:3717bc4e2fa8 792 else;
sesa514652 32:9c206f993cf5 793 /* lcd.clear();
sesa514652 20:4e1f2917a857 794 lcd.printString("Menu 3",0,0);
sesa514652 31:91a3c61d33e6 795 int us = sensor.distance();
sesa514652 21:2e37f80e8b5b 796 printf("Distance : %d cm",us);
sesa514652 20:4e1f2917a857 797 lcd.refresh();
sesa514652 32:9c206f993cf5 798 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 799 inputScan3();
sesa514652 20:4e1f2917a857 800 break;
sesa514652 32:9c206f993cf5 801
sesa514652 32:9c206f993cf5 802 /////////////////////////////////////////////////////////////////////////
sesa514652 32:9c206f993cf5 803
sesa514652 32:9c206f993cf5 804 case 4:
sesa514652 32:9c206f993cf5 805 g_ButtonAPress= 4;
sesa514652 33:3717bc4e2fa8 806 if(LoopCountScan4==5){
sesa514652 33:3717bc4e2fa8 807 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 808 LoopCountScan4=0;
sesa514652 33:3717bc4e2fa8 809 break;}
sesa514652 33:3717bc4e2fa8 810 else;
sesa514652 32:9c206f993cf5 811 /* lcd.clear();
sesa514652 32:9c206f993cf5 812 lcd.printString("Menu 3",0,0);
sesa514652 32:9c206f993cf5 813 int us = sensor.distance();
sesa514652 32:9c206f993cf5 814 printf("Distance : %d cm",us);
sesa514652 32:9c206f993cf5 815 lcd.refresh();
sesa514652 32:9c206f993cf5 816 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 817 inputScan4();
sesa514652 32:9c206f993cf5 818 break;
sesa514652 32:9c206f993cf5 819 ///////////////////////////////////////////////////////////////////
sesa514652 32:9c206f993cf5 820 case 5:
sesa514652 32:9c206f993cf5 821 g_ButtonAPress= 5;
sesa514652 33:3717bc4e2fa8 822 if(LoopCountScan5==5){
sesa514652 33:3717bc4e2fa8 823 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 824 LoopCountScan5=0;
sesa514652 33:3717bc4e2fa8 825 break;}
sesa514652 33:3717bc4e2fa8 826 else;
sesa514652 32:9c206f993cf5 827 /* lcd.clear();
sesa514652 32:9c206f993cf5 828 lcd.printString("Menu 3",0,0);
sesa514652 32:9c206f993cf5 829 int us = sensor.distance();
sesa514652 32:9c206f993cf5 830 printf("Distance : %d cm",us);
sesa514652 32:9c206f993cf5 831 lcd.refresh();
sesa514652 32:9c206f993cf5 832 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 833 inputScan5();
sesa514652 32:9c206f993cf5 834 break;
sesa514652 32:9c206f993cf5 835 /////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 836 }
sesa514652 23:f72175fb49ed 837
sesa514652 20:4e1f2917a857 838 /*
sesa514652 11:1dec05b7d1c1 839 int button_counter;
sesa514652 10:42e70b596099 840 if (g_buttonA_flag){
sesa514652 11:1dec05b7d1c1 841 button_counter = button_counter +1;
sesa514652 11:1dec05b7d1c1 842 //case (test)
sesa514652 10:42e70b596099 843 g_buttonA_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 844
sesa514652 10:42e70b596099 845 // send message over serial port - can observe in CoolTerm etc.
sesa514652 11:1dec05b7d1c1 846 printf("Button A pressed %f\n", button_counter);
sesa514652 10:42e70b596099 847 }
sesa514652 10:42e70b596099 848 if (g_buttonB_flag){
sesa514652 10:42e70b596099 849 g_buttonB_flag = 0; // if it has, clear the flag
sesa514652 8:770d168713cc 850
sesa514652 10:42e70b596099 851 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 852 printf("Button B pressed\n");
sesa514652 10:42e70b596099 853 }
sesa514652 10:42e70b596099 854 if (g_buttonX_flag){
sesa514652 10:42e70b596099 855 g_buttonX_flag = 0; // if it has, clear the flag
sesa514652 12:ceea378d5691 856 // swap direction when button has been pressed
sesa514652 12:ceea378d5691 857 // (could just use ! but want this to be explicit to aid understanding)
sesa514652 12:ceea378d5691 858 if (direction == UP) {
sesa514652 12:ceea378d5691 859 direction = DOWN;
sesa514652 12:ceea378d5691 860 }
sesa514652 12:ceea378d5691 861 else {
sesa514652 12:ceea378d5691 862 direction = UP;
sesa514652 12:ceea378d5691 863 }
sesa514652 10:42e70b596099 864
sesa514652 10:42e70b596099 865 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 866 printf("Button X pressed\n");
sesa514652 10:42e70b596099 867 lcd.clear();
sesa514652 10:42e70b596099 868 lcd.printString("Button Pressed!",0,0);
sesa514652 10:42e70b596099 869 lcd.refresh();
sesa514652 11:1dec05b7d1c1 870 wait(1);
sesa514652 10:42e70b596099 871 }
sesa514652 10:42e70b596099 872 if (g_buttonY_flag){
sesa514652 10:42e70b596099 873 g_buttonY_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 874
sesa514652 10:42e70b596099 875 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 876 printf("Button Y pressed\n");
sesa514652 10:42e70b596099 877 }
sesa514652 5:9b2c976ca318 878 Buzzer.play(200,120);
sesa514652 5:9b2c976ca318 879 wait_ms(5);
sesa514652 5:9b2c976ca318 880 Buzzer.play(200,120);
sesa514652 1:757728321abd 881 long distanced = sensor.distance();
sesa514652 1:757728321abd 882 if (distanced >= 400 || distanced <= 2)
sesa514652 5:9b2c976ca318 883 {
sesa514652 1:757728321abd 884 printf("Out of range");
sesa514652 5:9b2c976ca318 885 //Calling dummy function 05/01/22
sesa514652 4:167ce930c9d5 886 int answer = cube(2);
sesa514652 5:9b2c976ca318 887 printf("%f\n",answer);
sesa514652 1:757728321abd 888 wait(1.0);
sesa514652 5:9b2c976ca318 889 }
sesa514652 5:9b2c976ca318 890 else
sesa514652 5:9b2c976ca318 891 {
sesa514652 5:9b2c976ca318 892 printf("Distance : %d cm",distanced);
sesa514652 5:9b2c976ca318 893 wait(1.0); // 1 sec
sesa514652 1:757728321abd 894 }
sesa514652 5:9b2c976ca318 895 lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK);
sesa514652 5:9b2c976ca318 896 //lcd.refresh must be used to update the lcd Display
sesa514652 5:9b2c976ca318 897 lcd.refresh();
sesa514652 5:9b2c976ca318 898 wait(5.0);
sesa514652 5:9b2c976ca318 899 //these are default settings so not strictly needed
sesa514652 0:1f799c7cce2b 900 lcd.normalMode(); // normal colour mode
sesa514652 5:9b2c976ca318 901 lcd.setBrightness(0.5); // put LED backlight on 50%
sesa514652 0:1f799c7cce2b 902 lcd.clear();
sesa514652 0:1f799c7cce2b 903 lcd.printString("Hello, World!",0,0);
sesa514652 0:1f799c7cce2b 904 Vector2D coord = joystick.get_coord();
sesa514652 0:1f799c7cce2b 905 lcd.refresh();
sesa514652 0:1f799c7cce2b 906 printf("Coord = %f,%f\n",coord.x,coord.y);
sesa514652 0:1f799c7cce2b 907 char buffer[14];
sesa514652 0:1f799c7cce2b 908 Vector2D mapped_coord = joystick.get_mapped_coord();
sesa514652 0:1f799c7cce2b 909 printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y);
sesa514652 0:1f799c7cce2b 910
sesa514652 5:9b2c976ca318 911 int length = sprintf(buffer,"T = %2f",coord.x);
sesa514652 5:9b2c976ca318 912 //it is important the format specifier ensures the length will fit in the buffer
sesa514652 0:1f799c7cce2b 913 if (length <= 14) // if string will fit on display (assuming printing at x=0)
sesa514652 5:9b2c976ca318 914 lcd.printString(buffer,0,1); // display on screen
sesa514652 0:1f799c7cce2b 915 lcd.refresh();
sesa514652 5:9b2c976ca318 916 lcd.clear();
sesa514652 5:9b2c976ca318 917 //times by 50 to try get the point moving across screen
sesa514652 0:1f799c7cce2b 918 float x50 = mapped_coord.x*5;
sesa514652 0:1f799c7cce2b 919 float y50 = mapped_coord.y*8;
sesa514652 5:9b2c976ca318 920 //to see what the values are
sesa514652 5:9b2c976ca318 921 printf(" *50 = %f,%f\n",x50,y50);
sesa514652 5:9b2c976ca318 922 //example of how to draw circles
sesa514652 1:757728321abd 923 lcd.printChar('o',WIDTH/2,HEIGHT/2);
sesa514652 5:9b2c976ca318 924 lcd.refresh();
sesa514652 0:1f799c7cce2b 925 float mag = joystick.get_mag();
sesa514652 0:1f799c7cce2b 926 float angle = joystick.get_angle();
sesa514652 0:1f799c7cce2b 927 printf("Mag = %f Angle = %f\n",mag,angle);
sesa514652 0:1f799c7cce2b 928 Direction d = joystick.get_direction();
sesa514652 0:1f799c7cce2b 929 printf("Direction = %i\n",d);
sesa514652 0:1f799c7cce2b 930 if (joystick.button_pressed() ) {
sesa514652 0:1f799c7cce2b 931 printf("Button Pressed\n");
sesa514652 9:cdd7d9a123f9 932 wait(5);
sesa514652 0:1f799c7cce2b 933 }
sesa514652 8:770d168713cc 934
sesa514652 8:770d168713cc 935 }
sesa514652 16:2646c1c4e62e 936 }
sesa514652 20:4e1f2917a857 937 */
sesa514652 23:f72175fb49ed 938 }
sesa514652 32:9c206f993cf5 939 }
sesa514652 18:bb36d96142dd 940 int buttonCountA(){
sesa514652 28:aab0aa846cf6 941 g_ButtonAPress++;
sesa514652 32:9c206f993cf5 942 if (g_ButtonAPress>5){
sesa514652 28:aab0aa846cf6 943 g_ButtonAPress= 0;
sesa514652 18:bb36d96142dd 944 }
sesa514652 28:aab0aa846cf6 945 return g_ButtonAPress;
sesa514652 18:bb36d96142dd 946 }
sesa514652 18:bb36d96142dd 947 int buttonCountB(){
sesa514652 28:aab0aa846cf6 948 g_ButtonBPress++;
sesa514652 28:aab0aa846cf6 949 if (g_ButtonBPress>3){
sesa514652 28:aab0aa846cf6 950 g_ButtonBPress= 0;
sesa514652 18:bb36d96142dd 951 }
sesa514652 28:aab0aa846cf6 952 return g_ButtonBPress;
sesa514652 18:bb36d96142dd 953 }
sesa514652 33:3717bc4e2fa8 954 int NoContinueExitScan1(){
sesa514652 33:3717bc4e2fa8 955 LoopCountScan1++;
sesa514652 33:3717bc4e2fa8 956 if (LoopCountScan1>5){
sesa514652 33:3717bc4e2fa8 957 LoopCountScan1= 0;
sesa514652 33:3717bc4e2fa8 958 }
sesa514652 33:3717bc4e2fa8 959 return LoopCountScan1;
sesa514652 33:3717bc4e2fa8 960 }
sesa514652 33:3717bc4e2fa8 961 int NoContinueExitScan2(){
sesa514652 33:3717bc4e2fa8 962 LoopCountScan2++;
sesa514652 33:3717bc4e2fa8 963 if (LoopCountScan2>5){
sesa514652 33:3717bc4e2fa8 964 LoopCountScan2= 0;
sesa514652 33:3717bc4e2fa8 965 }
sesa514652 33:3717bc4e2fa8 966 return LoopCountScan2;
sesa514652 33:3717bc4e2fa8 967 }
sesa514652 33:3717bc4e2fa8 968 int NoContinueExitScan3(){
sesa514652 33:3717bc4e2fa8 969 LoopCountScan3++;
sesa514652 33:3717bc4e2fa8 970 if (LoopCountScan3>5){
sesa514652 33:3717bc4e2fa8 971 LoopCountScan3= 0;
sesa514652 33:3717bc4e2fa8 972 }
sesa514652 33:3717bc4e2fa8 973 return LoopCountScan3;
sesa514652 33:3717bc4e2fa8 974 }
sesa514652 33:3717bc4e2fa8 975 int NoContinueExitScan4(){
sesa514652 33:3717bc4e2fa8 976 LoopCountScan4++;
sesa514652 33:3717bc4e2fa8 977 if (LoopCountScan4>5){
sesa514652 33:3717bc4e2fa8 978 LoopCountScan4= 0;
sesa514652 33:3717bc4e2fa8 979 }
sesa514652 33:3717bc4e2fa8 980 return LoopCountScan4;
sesa514652 33:3717bc4e2fa8 981 }
sesa514652 33:3717bc4e2fa8 982 int NoContinueExitScan5(){
sesa514652 33:3717bc4e2fa8 983 LoopCountScan5++;
sesa514652 33:3717bc4e2fa8 984 if (LoopCountScan5>5){
sesa514652 33:3717bc4e2fa8 985 LoopCountScan5= 0;
sesa514652 33:3717bc4e2fa8 986 }
sesa514652 33:3717bc4e2fa8 987 return LoopCountScan5;
sesa514652 33:3717bc4e2fa8 988 }
sesa514652 33:3717bc4e2fa8 989
sesa514652 15:234321e80678 990
sesa514652 12:ceea378d5691 991 //Button A event-triggered interrupt
sesa514652 10:42e70b596099 992 void buttonA_isr()
sesa514652 10:42e70b596099 993 {
sesa514652 12:ceea378d5691 994
sesa514652 18:bb36d96142dd 995 long distanced = sensor.distance();
sesa514652 18:bb36d96142dd 996 buttonCountA();
sesa514652 18:bb36d96142dd 997
sesa514652 16:2646c1c4e62e 998
sesa514652 12:ceea378d5691 999
sesa514652 12:ceea378d5691 1000 g_buttonA_flag = 1; // set flag in ISR
sesa514652 12:ceea378d5691 1001
sesa514652 28:aab0aa846cf6 1002 printf("press count = %i\n",g_ButtonAPress);
sesa514652 12:ceea378d5691 1003
sesa514652 12:ceea378d5691 1004 // lcd.clear();
sesa514652 15:234321e80678 1005 //lcd.printString("Button A Pressed",0,0);
sesa514652 12:ceea378d5691 1006
sesa514652 15:234321e80678 1007 // lcd.refresh(); // set flag in ISR
sesa514652 12:ceea378d5691 1008 }
sesa514652 12:ceea378d5691 1009
sesa514652 11:1dec05b7d1c1 1010
sesa514652 10:42e70b596099 1011 //Button B event-triggered interrupt
sesa514652 10:42e70b596099 1012 void buttonB_isr()
sesa514652 10:42e70b596099 1013 {
sesa514652 18:bb36d96142dd 1014 buttonCountB();
sesa514652 10:42e70b596099 1015 g_buttonB_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1016 lcd.clear();
sesa514652 11:1dec05b7d1c1 1017 lcd.printString("Button B Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1018 lcd.refresh(); // set flag in ISR
sesa514652 28:aab0aa846cf6 1019 printf("press count = %i\n",g_ButtonBPress);
sesa514652 10:42e70b596099 1020 }
sesa514652 10:42e70b596099 1021 //Button X event-triggered interrupt
sesa514652 10:42e70b596099 1022 void buttonX_isr()
sesa514652 10:42e70b596099 1023 {
sesa514652 10:42e70b596099 1024 g_buttonX_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1025 lcd.clear();
sesa514652 11:1dec05b7d1c1 1026 lcd.printString("Button X Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1027 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 1028 }
sesa514652 10:42e70b596099 1029 //Button Y event-triggered interrupt
sesa514652 10:42e70b596099 1030 void buttonY_isr()
sesa514652 10:42e70b596099 1031 {
sesa514652 10:42e70b596099 1032 g_buttonY_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1033 lcd.clear();
sesa514652 11:1dec05b7d1c1 1034 lcd.printString("Button Y Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1035 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 1036 }
sesa514652 11:1dec05b7d1c1 1037 //Button Start event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1038 void buttonStart_isr()
sesa514652 11:1dec05b7d1c1 1039 {
sesa514652 11:1dec05b7d1c1 1040 g_buttonStart_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1041 lcd.clear();
sesa514652 11:1dec05b7d1c1 1042 lcd.printString("Button Start Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1043 lcd.refresh(); // set flag in ISR
sesa514652 29:1aef0ecf9840 1044
sesa514652 11:1dec05b7d1c1 1045 }
sesa514652 11:1dec05b7d1c1 1046 //Button Back event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1047 void buttonBack_isr()
sesa514652 11:1dec05b7d1c1 1048 {
sesa514652 11:1dec05b7d1c1 1049 g_buttonBack_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1050 lcd.clear();
sesa514652 11:1dec05b7d1c1 1051 lcd.printString("Button Back Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1052 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 1053 }
sesa514652 11:1dec05b7d1c1 1054 //Button Left event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1055 void buttonLeft_isr()
sesa514652 11:1dec05b7d1c1 1056 {
sesa514652 11:1dec05b7d1c1 1057 g_buttonLeft_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1058 lcd.clear();
sesa514652 11:1dec05b7d1c1 1059 lcd.printString("Button Left Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1060 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 1061 }
sesa514652 11:1dec05b7d1c1 1062 //Button Right event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1063 void buttonRight_isr()
sesa514652 11:1dec05b7d1c1 1064 {
sesa514652 11:1dec05b7d1c1 1065 g_buttonRight_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1066 lcd.clear();
sesa514652 31:91a3c61d33e6 1067 lcd.printString("Button Right Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1068 lcd.refresh(); // set flag in ISR
sesa514652 31:91a3c61d33e6 1069 }
sesa514652 31:91a3c61d33e6 1070 void inputScan1()
sesa514652 31:91a3c61d33e6 1071 {
sesa514652 31:91a3c61d33e6 1072 lcd.clear();
sesa514652 31:91a3c61d33e6 1073 lcd.printString("First Scan",0,0);
sesa514652 31:91a3c61d33e6 1074 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1075 NoContinueExitScan1();
sesa514652 31:91a3c61d33e6 1076
sesa514652 31:91a3c61d33e6 1077 Buzzer.play(300,120); lcd.printString("X",0,1); lcd.refresh(); Scan1[0] = sensor.distance();
sesa514652 31:91a3c61d33e6 1078 wait_ms(5);
sesa514652 31:91a3c61d33e6 1079 Buzzer.play(200,120); lcd.printString("X",0,2);lcd.refresh(); Scan1[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1080 wait_ms(5);
sesa514652 31:91a3c61d33e6 1081 Buzzer.play(200,120); lcd.printString("X",0,3);lcd.refresh(); Scan1[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1082 wait_ms(5);
sesa514652 31:91a3c61d33e6 1083 Buzzer.play(200,120); lcd.printString("X",0,4);lcd.refresh(); Scan1[3] = sensor.distance();;
sesa514652 31:91a3c61d33e6 1084 wait_ms(5);
sesa514652 31:91a3c61d33e6 1085 Buzzer.play(200,120); lcd.printString("X",0,5);lcd.refresh(); Scan1[4] = sensor.distance();;
sesa514652 31:91a3c61d33e6 1086 wait_ms(5);
sesa514652 31:91a3c61d33e6 1087 lcd.printString("Scan 1 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1088 }
sesa514652 31:91a3c61d33e6 1089
sesa514652 31:91a3c61d33e6 1090 void inputScan2()
sesa514652 31:91a3c61d33e6 1091 {
sesa514652 31:91a3c61d33e6 1092 lcd.clear();
sesa514652 31:91a3c61d33e6 1093 lcd.printString("Second Scan",0,0);
sesa514652 31:91a3c61d33e6 1094 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1095 NoContinueExitScan2();
sesa514652 31:91a3c61d33e6 1096 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 1097 Buzzer.play(300,120); lcd.printString("X",15,1); lcd.refresh(); Scan2[0] = sensor.distance();
sesa514652 31:91a3c61d33e6 1098 wait_ms(5);
sesa514652 31:91a3c61d33e6 1099 Buzzer.play(200,120); lcd.printString("X",15,2);lcd.refresh(); Scan2[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1100 wait_ms(5);
sesa514652 31:91a3c61d33e6 1101 Buzzer.play(200,120); lcd.printString("X",15,3);lcd.refresh(); Scan2[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1102 wait_ms(5);
sesa514652 31:91a3c61d33e6 1103 Buzzer.play(200,120); lcd.printString("X",15,4);lcd.refresh(); Scan2[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1104 wait_ms(5);
sesa514652 31:91a3c61d33e6 1105 Buzzer.play(200,120); lcd.printString("X",15,5);lcd.refresh(); Scan2[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1106 lcd.printString("Scan 2 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1107
sesa514652 31:91a3c61d33e6 1108 }
sesa514652 31:91a3c61d33e6 1109 void inputScan3()
sesa514652 31:91a3c61d33e6 1110 {
sesa514652 31:91a3c61d33e6 1111 lcd.clear();
sesa514652 31:91a3c61d33e6 1112 lcd.printString("Third Scan",0,0);
sesa514652 31:91a3c61d33e6 1113 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1114 NoContinueExitScan3();
sesa514652 31:91a3c61d33e6 1115 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 1116 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 1117 Buzzer.play(300,120); lcd.printString("X",30,1); lcd.refresh(); Scan3[0] = sensor.distance();
sesa514652 31:91a3c61d33e6 1118 wait_ms(5);
sesa514652 31:91a3c61d33e6 1119 Buzzer.play(200,120); lcd.printString("X",30,2);lcd.refresh(); Scan3[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1120 wait_ms(5);
sesa514652 31:91a3c61d33e6 1121 Buzzer.play(200,120); lcd.printString("X",30,3);lcd.refresh(); Scan3[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1122 wait_ms(5);
sesa514652 31:91a3c61d33e6 1123 Buzzer.play(200,120); lcd.printString("X",30,4);lcd.refresh(); Scan3[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1124 wait_ms(5);
sesa514652 31:91a3c61d33e6 1125 Buzzer.play(200,120); lcd.printString("X",30,5);lcd.refresh(); Scan3[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1126 lcd.printString("Scan 3 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1127 }
sesa514652 31:91a3c61d33e6 1128 void inputScan4()
sesa514652 31:91a3c61d33e6 1129 {
sesa514652 33:3717bc4e2fa8 1130 lcd.clear();
sesa514652 33:3717bc4e2fa8 1131 lcd.printString("Fourth Scan",0,0);
sesa514652 33:3717bc4e2fa8 1132 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1133 NoContinueExitScan4();
sesa514652 31:91a3c61d33e6 1134 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 1135 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 1136 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 1137 Buzzer.play(300,120); lcd.printString("X",45,1); lcd.refresh(); Scan4[0] = sensor.distance();
sesa514652 31:91a3c61d33e6 1138 wait_ms(5);
sesa514652 31:91a3c61d33e6 1139 Buzzer.play(200,120); lcd.printString("X",45,2);lcd.refresh(); Scan4[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1140 wait_ms(5);
sesa514652 31:91a3c61d33e6 1141 Buzzer.play(200,120); lcd.printString("X",45,3);lcd.refresh(); Scan4[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1142 wait_ms(5);
sesa514652 31:91a3c61d33e6 1143 Buzzer.play(200,120); lcd.printString("X",45,4);lcd.refresh(); Scan4[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1144 wait_ms(5);
sesa514652 31:91a3c61d33e6 1145 Buzzer.play(200,120); lcd.printString("X",45,5);lcd.refresh(); Scan4[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1146 lcd.printString("Scan 4 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1147 }
sesa514652 31:91a3c61d33e6 1148 void inputScan5()
sesa514652 31:91a3c61d33e6 1149 {
sesa514652 31:91a3c61d33e6 1150 lcd.clear();
sesa514652 31:91a3c61d33e6 1151 lcd.printString("Fifth Scan",0,0);
sesa514652 31:91a3c61d33e6 1152 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1153 NoContinueExitScan5();
sesa514652 31:91a3c61d33e6 1154 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 1155 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 1156 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 1157 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 1158 Buzzer.play(300,120); lcd.printString("X",60,1); lcd.refresh(); Scan5[0] = sensor.distance();
sesa514652 31:91a3c61d33e6 1159 wait_ms(5);
sesa514652 31:91a3c61d33e6 1160 Buzzer.play(200,120); lcd.printString("X",60,2);lcd.refresh(); Scan5[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1161 wait_ms(5);
sesa514652 31:91a3c61d33e6 1162 Buzzer.play(200,120); lcd.printString("X",60,3);lcd.refresh(); Scan5[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1163 wait_ms(5);
sesa514652 31:91a3c61d33e6 1164 Buzzer.play(200,120); lcd.printString("X",60,4);lcd.refresh(); Scan5[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1165 wait_ms(5);
sesa514652 31:91a3c61d33e6 1166 Buzzer.play(200,120); lcd.printString("X",60,5);lcd.refresh(); Scan5[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1167 lcd.printString("Scan 5 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1168 }