Coursework

Committer:
sesa514652
Date:
Fri Jan 28 14:47:06 2022 +0000
Revision:
30:9d39318ef584
Parent:
29:1aef0ecf9840
Child:
31:91a3c61d33e6
changing wait time to try to get more accurate scans ;

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