Coursework

Committer:
sesa514652
Date:
Tue Feb 01 22:50:27 2022 +0000
Revision:
36:3e975536e8d7
Parent:
35:36c7605dda06
Child:
37:323ec7d23454
Compare array working,  to find a suitbale home for it to be called upon request located in y isr jut now

Who changed what in which revision?

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