Coursework

Committer:
sesa514652
Date:
Tue Jan 25 20:45:48 2022 +0000
Revision:
27:d48bf4e8f1a0
Parent:
26:8826ed43fad2
Child:
28:aab0aa846cf6
BAck to main menu after scan.  to get logic working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sesa514652 0:1f799c7cce2b 1 #include "mbed.h"
sesa514652 0:1f799c7cce2b 2 #include "Joystick.h"
sesa514652 0:1f799c7cce2b 3 #include "N5110.h"
sesa514652 0:1f799c7cce2b 4 #include "hcsr04.h"
sesa514652 3:6ecb75a2675c 5 #include "Piezo.h"
sesa514652 8:770d168713cc 6 #include "string"
sesa514652 20:4e1f2917a857 7 #include "array"
sesa514652 22:82b01fdfc61f 8 #include <iostream>
sesa514652 12:ceea378d5691 9 // FSM Menu
sesa514652 12:ceea378d5691 10 // defines directions as 0/1. Note UPPERCASE
sesa514652 12:ceea378d5691 11 #define UP 0
sesa514652 12:ceea378d5691 12 #define DOWN 1
sesa514652 12:ceea378d5691 13 // set inital state
sesa514652 12:ceea378d5691 14 volatile int state = 0;
sesa514652 12:ceea378d5691 15 // set initial direction
sesa514652 12:ceea378d5691 16 int direction = UP;
sesa514652 12:ceea378d5691 17 // array of states in the FSM, each element is the output of the counter
sesa514652 12:ceea378d5691 18 // set the output in binary to make it easier, 0 is LED on, 1 is LED off
sesa514652 12:ceea378d5691 19 string fsm[4] = {"buttonA_isr","buttonB_isr","buttonAsss_isr","buttonA_isr"};
sesa514652 18:bb36d96142dd 20 volatile int PressA;
sesa514652 18:bb36d96142dd 21 volatile int PressB;
sesa514652 10:42e70b596099 22
sesa514652 5:9b2c976ca318 23 // y x button
sesa514652 0:1f799c7cce2b 24 Joystick joystick(PTB10,PTB11,PTC16);
sesa514652 0:1f799c7cce2b 25 HCSR04 sensor(D14, D15);
sesa514652 3:6ecb75a2675c 26 Piezo Buzzer(PTC10);
sesa514652 8:770d168713cc 27 //Bringing in buttons
sesa514652 8:770d168713cc 28 InterruptIn buttonA(PTB9);
sesa514652 8:770d168713cc 29 InterruptIn buttonB(PTD0);
sesa514652 8:770d168713cc 30 InterruptIn buttonX(PTC17);
sesa514652 8:770d168713cc 31 InterruptIn buttonY(PTC12);
sesa514652 11:1dec05b7d1c1 32 InterruptIn buttonStart(PTC5);
sesa514652 11:1dec05b7d1c1 33 InterruptIn buttonBack(PTB19);
sesa514652 11:1dec05b7d1c1 34 InterruptIn buttonLeft(PTB18);
sesa514652 11:1dec05b7d1c1 35 InterruptIn buttonRight(PTB3);
sesa514652 0:1f799c7cce2b 36
sesa514652 11:1dec05b7d1c1 37 // create an event queue
sesa514652 11:1dec05b7d1c1 38 EventQueue queue; // events are needed to get arround the printf issue
sesa514652 5:9b2c976ca318 39 //rows,cols
sesa514652 0:1f799c7cce2b 40 int sprite[8][5] = {
sesa514652 0:1f799c7cce2b 41 { 0,0,1,0,0 },
sesa514652 0:1f799c7cce2b 42 { 0,1,1,1,0 },
sesa514652 0:1f799c7cce2b 43 { 0,0,1,0,0 },
sesa514652 0:1f799c7cce2b 44 { 0,1,1,1,0 },
sesa514652 0:1f799c7cce2b 45 { 1,1,1,1,1 },
sesa514652 0:1f799c7cce2b 46 { 1,1,1,1,1 },
sesa514652 0:1f799c7cce2b 47 { 1,1,0,1,1 },
sesa514652 0:1f799c7cce2b 48 { 1,1,0,1,1 },
sesa514652 5:9b2c976ca318 49 };
sesa514652 11:1dec05b7d1c1 50 void init_K64F(); // Start K64fBoard
sesa514652 11:1dec05b7d1c1 51
sesa514652 11:1dec05b7d1c1 52 void buttonA_isr(); // Button A interrupt service routine
sesa514652 11:1dec05b7d1c1 53 void buttonB_isr(); // Button B interrupt service routine
sesa514652 11:1dec05b7d1c1 54 void buttonX_isr(); // Button X interrupt service routine
sesa514652 11:1dec05b7d1c1 55 void buttonY_isr(); // Button Y interrupt service routine
sesa514652 11:1dec05b7d1c1 56 void buttonStart_isr(); // Button Start interrupt service routine
sesa514652 11:1dec05b7d1c1 57 void buttonBack_isr(); // Button Back interrupt service routine
sesa514652 11:1dec05b7d1c1 58 void buttonLeft_isr(); // Button Left interrupt service routine
sesa514652 11:1dec05b7d1c1 59 void buttonRight_isr(); // Button Right interrupt service routine
sesa514652 11:1dec05b7d1c1 60 volatile int g_buttonA_flag = 0; // Global Flag
sesa514652 11:1dec05b7d1c1 61 volatile int g_buttonB_flag = 0; // Global Flag
sesa514652 11:1dec05b7d1c1 62 volatile int g_buttonX_flag = 0; // Global Flag
sesa514652 11:1dec05b7d1c1 63 volatile int g_buttonY_flag = 0; // Global Flag
sesa514652 11:1dec05b7d1c1 64 volatile int g_buttonStart_flag = 0; // Global Flag
sesa514652 11:1dec05b7d1c1 65 volatile int g_buttonBack_flag = 0; // Global Flag
sesa514652 11:1dec05b7d1c1 66 volatile int g_buttonLeft_flag = 0; // Global Flag
sesa514652 11:1dec05b7d1c1 67 volatile int g_buttonRight_flag = 0; // Global Flag
sesa514652 18:bb36d96142dd 68 int buttonCountA();
sesa514652 18:bb36d96142dd 69 int buttonCountB();
sesa514652 11:1dec05b7d1c1 70 //volatile int g_buttonA_counter = 0; // Global counter
sesa514652 8:770d168713cc 71 //Test function after research C++ lanuage 05/01/22
sesa514652 4:167ce930c9d5 72 int cube(int num){
sesa514652 11:1dec05b7d1c1 73 return num*num;
sesa514652 5:9b2c976ca318 74 };
sesa514652 10:42e70b596099 75 // Menu Items
sesa514652 10:42e70b596099 76 int page1;
sesa514652 10:42e70b596099 77 int page2;
sesa514652 10:42e70b596099 78 int page3;
sesa514652 10:42e70b596099 79 string Listitem1 = "Game"; // guess distance
sesa514652 10:42e70b596099 80 string Listitem2 = "Measure"; // measure distance of object
sesa514652 10:42e70b596099 81 string Listitem3 = "Detect"; // alarm when object is dectected
sesa514652 5:9b2c976ca318 82 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
sesa514652 9:cdd7d9a123f9 83 /* Test of the interup an operating the buzzer this kills the board
sesa514652 9:cdd7d9a123f9 84 void buzzme(){
sesa514652 9:cdd7d9a123f9 85 Buzzer.play(200,120);
sesa514652 9:cdd7d9a123f9 86 wait_ms(5);
sesa514652 9:cdd7d9a123f9 87 Buzzer.play(200,120);;
sesa514652 9:cdd7d9a123f9 88 }
sesa514652 9:cdd7d9a123f9 89 */
sesa514652 11:1dec05b7d1c1 90 void printme(){
sesa514652 9:cdd7d9a123f9 91
sesa514652 11:1dec05b7d1c1 92 volatile double x ;
sesa514652 11:1dec05b7d1c1 93 x = 1;
sesa514652 10:42e70b596099 94 printf("%f\n",x);
sesa514652 11:1dec05b7d1c1 95 // return 0;
sesa514652 9:cdd7d9a123f9 96 }
sesa514652 10:42e70b596099 97
sesa514652 26:8826ed43fad2 98 int Scan1[5];
sesa514652 26:8826ed43fad2 99 int Scan2[5];
sesa514652 24:a88c4941a25e 100 int Scan1Input(){;
sesa514652 25:9798017b837d 101 Scan1[0] = sensor.distance();
sesa514652 25:9798017b837d 102 Scan1[1] = sensor.distance();;
sesa514652 25:9798017b837d 103 Scan1[2] = sensor.distance();;
sesa514652 26:8826ed43fad2 104 Scan1[3] = sensor.distance();;
sesa514652 26:8826ed43fad2 105 Scan1[4] = sensor.distance();;
sesa514652 26:8826ed43fad2 106
sesa514652 26:8826ed43fad2 107 return Scan1[0,1,2,3,4];}
sesa514652 10:42e70b596099 108
sesa514652 10:42e70b596099 109 //void returnme(){
sesa514652 10:42e70b596099 110 //int num;
sesa514652 10:42e70b596099 111 // return num*num;
sesa514652 10:42e70b596099 112 // };
sesa514652 0:1f799c7cce2b 113 int main() {
sesa514652 18:bb36d96142dd 114 //initialise Joystick
sesa514652 5:9b2c976ca318 115 joystick.init();
sesa514652 5:9b2c976ca318 116
sesa514652 11:1dec05b7d1c1 117 // create a thread that'll run the event queue's dispatch function
sesa514652 11:1dec05b7d1c1 118 Thread eventThread;
sesa514652 11:1dec05b7d1c1 119 eventThread.start(callback(&queue, &EventQueue::dispatch_forever));
sesa514652 11:1dec05b7d1c1 120
sesa514652 11:1dec05b7d1c1 121 buttonA.rise(queue.event(&buttonA_isr)); // This is used to call the function putting it in queue allowing the screen toupdat no muxt error
sesa514652 11:1dec05b7d1c1 122 buttonB.rise(queue.event(&buttonB_isr));
sesa514652 11:1dec05b7d1c1 123 buttonX.rise(queue.event(&buttonX_isr));
sesa514652 11:1dec05b7d1c1 124 buttonY.rise(queue.event(&buttonY_isr));
sesa514652 11:1dec05b7d1c1 125 buttonStart.rise(queue.event(&buttonStart_isr)); // This is used to call the function putting it in queue allowing the screen toupdat no muxt error
sesa514652 11:1dec05b7d1c1 126 buttonBack.rise(queue.event(&buttonBack_isr));
sesa514652 11:1dec05b7d1c1 127 buttonLeft.rise(queue.event(&buttonLeft_isr));
sesa514652 11:1dec05b7d1c1 128 buttonRight.rise(queue.event(&buttonRight_isr));
sesa514652 5:9b2c976ca318 129 //first need to initialise display
sesa514652 5:9b2c976ca318 130 lcd.init();
sesa514652 8:770d168713cc 131
sesa514652 12:ceea378d5691 132 // Button A is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 8:770d168713cc 133 buttonA.mode(PullDown);
sesa514652 10:42e70b596099 134 // Button B is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 10:42e70b596099 135 buttonB.mode(PullDown);
sesa514652 10:42e70b596099 136 // Button X is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 10:42e70b596099 137 buttonX.mode(PullDown);
sesa514652 10:42e70b596099 138 // Button Y is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 10:42e70b596099 139 buttonY.mode(PullDown);
sesa514652 11:1dec05b7d1c1 140 // Button Start is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 11:1dec05b7d1c1 141 buttonStart.mode(PullDown);
sesa514652 11:1dec05b7d1c1 142 // Button Back is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 11:1dec05b7d1c1 143 buttonBack.mode(PullDown);
sesa514652 11:1dec05b7d1c1 144 // Button Left is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 11:1dec05b7d1c1 145 buttonLeft.mode(PullDown);
sesa514652 11:1dec05b7d1c1 146 // Button Right is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sesa514652 11:1dec05b7d1c1 147 buttonRight.mode(PullDown);
sesa514652 8:770d168713cc 148
sesa514652 18:bb36d96142dd 149
sesa514652 8:770d168713cc 150
sesa514652 8:770d168713cc 151
sesa514652 5:9b2c976ca318 152
sesa514652 5:9b2c976ca318 153 //change set contrast in range 0.0 to 1.0
sesa514652 5:9b2c976ca318 154 //0.5 appears to be a good starting point
sesa514652 5:9b2c976ca318 155 lcd.setContrast(0.5);
sesa514652 5:9b2c976ca318 156
sesa514652 5:9b2c976ca318 157 //Buzzer.period(10.0f);
sesa514652 5:9b2c976ca318 158 //Buzzer.pulsewidth(1);
sesa514652 6:f7f30e0e3bed 159 //Test Struct after research 05/01/22
sesa514652 6:f7f30e0e3bed 160 struct ObjectDefine{
sesa514652 7:ce70a873aa70 161 int qwer;
sesa514652 6:f7f30e0e3bed 162 float Distance;
sesa514652 7:ce70a873aa70 163 char te;
sesa514652 7:ce70a873aa70 164 double dubs;
sesa514652 7:ce70a873aa70 165 string namestruct;
sesa514652 8:770d168713cc 166 // string ;
sesa514652 6:f7f30e0e3bed 167 };
sesa514652 7:ce70a873aa70 168 // Test Class 06/01/22
sesa514652 10:42e70b596099 169 class myClass{
sesa514652 7:ce70a873aa70 170 public:
sesa514652 7:ce70a873aa70 171 string nameclass ;
sesa514652 7:ce70a873aa70 172 double dubss;
sesa514652 7:ce70a873aa70 173 int inty;
sesa514652 7:ce70a873aa70 174 };
sesa514652 7:ce70a873aa70 175 myClass Class1;
sesa514652 7:ce70a873aa70 176 Class1.nameclass ="firstclass";
sesa514652 10:42e70b596099 177 ObjectDefine Object1;
sesa514652 10:42e70b596099 178 Object1.qwer = 12;
sesa514652 6:f7f30e0e3bed 179 Object1.Distance = 34;
sesa514652 7:ce70a873aa70 180 Object1.te = 'A';
sesa514652 7:ce70a873aa70 181 Object1.dubs = 23;
sesa514652 10:42e70b596099 182 Object1.namestruct = "name";
sesa514652 18:bb36d96142dd 183
sesa514652 0:1f799c7cce2b 184 while(1) {
sesa514652 22:82b01fdfc61f 185 // section to try to get POC of number comparitor without using the US for repeatablity// to get if statements correct possibly change to switch
sesa514652 27:d48bf4e8f1a0 186 int Scan1[5];
sesa514652 27:d48bf4e8f1a0 187 int Scan2[5];
sesa514652 27:d48bf4e8f1a0 188 int Scan3[5];
sesa514652 27:d48bf4e8f1a0 189 int Scan4[5];
sesa514652 27:d48bf4e8f1a0 190 int Scan5[5];
sesa514652 27:d48bf4e8f1a0 191 int num2;
sesa514652 27:d48bf4e8f1a0 192 int num3;
sesa514652 27:d48bf4e8f1a0 193 int num4;
sesa514652 27:d48bf4e8f1a0 194 char Decide[5];
sesa514652 27:d48bf4e8f1a0 195
sesa514652 25:9798017b837d 196 // IF Statement to decide on shape to draw
sesa514652 25:9798017b837d 197 if (Scan1[0] > Scan1[1]){
sesa514652 27:d48bf4e8f1a0 198 printf("+");
sesa514652 27:d48bf4e8f1a0 199 Decide[0]= 'x';
sesa514652 27:d48bf4e8f1a0 200 printf( "chosen 1 %c\n",Decide[0]);
sesa514652 25:9798017b837d 201 }else if (Scan1[0] = Scan1[1]){
sesa514652 27:d48bf4e8f1a0 202 printf("=");
sesa514652 27:d48bf4e8f1a0 203 Decide[0]='=';
sesa514652 27:d48bf4e8f1a0 204 printf( "chosen2 %c\n",Decide[0]);}
sesa514652 25:9798017b837d 205 else if (Scan1[0] < Scan1[1]){
sesa514652 27:d48bf4e8f1a0 206 printf("-");
sesa514652 27:d48bf4e8f1a0 207 Decide[0]='-';}
sesa514652 27:d48bf4e8f1a0 208 printf( "chosen3 %c\n",Decide[0]);
sesa514652 25:9798017b837d 209 if (Scan1[1] > Scan1[2]){
sesa514652 25:9798017b837d 210 printf("12Higher\n");
sesa514652 25:9798017b837d 211 }else if (Scan1[1] = Scan1[2]){
sesa514652 25:9798017b837d 212 printf("12Equal\n");}
sesa514652 25:9798017b837d 213 else if (Scan1[1] < Scan1[2]){
sesa514652 25:9798017b837d 214 // cout <<'Lower';}
sesa514652 25:9798017b837d 215 printf("12Lower \n");}
sesa514652 25:9798017b837d 216 if (Scan1[2] > Scan1[3]){
sesa514652 25:9798017b837d 217 printf("23Higher\n");
sesa514652 25:9798017b837d 218 }else if (Scan1[2] = Scan1[3]){
sesa514652 25:9798017b837d 219 printf("23Equal\n");}
sesa514652 25:9798017b837d 220 else if (Scan1[2] < Scan1[3]){
sesa514652 25:9798017b837d 221 // cout <<'Lower';}
sesa514652 25:9798017b837d 222 printf("23Lower \n");}
sesa514652 25:9798017b837d 223 if (Scan1[3] > Scan1[4]){
sesa514652 25:9798017b837d 224 printf("34Higher\n");
sesa514652 25:9798017b837d 225 }else if (Scan1[3] = Scan1[4]){
sesa514652 25:9798017b837d 226 printf("34Equal\n");}
sesa514652 25:9798017b837d 227 else if (Scan1[3] < Scan1[4]){
sesa514652 25:9798017b837d 228 // cout <<'Lower';}
sesa514652 25:9798017b837d 229 printf("34Lower \n");}
sesa514652 25:9798017b837d 230
sesa514652 25:9798017b837d 231 if (Scan1[4] > Scan1[5]){
sesa514652 25:9798017b837d 232 printf("45Higher\n");
sesa514652 25:9798017b837d 233 }else if (Scan1[4] = Scan1[5]){
sesa514652 25:9798017b837d 234 printf("Equal\n");}
sesa514652 25:9798017b837d 235 else if (Scan1[4] < Scan1[5]){
sesa514652 25:9798017b837d 236 // cout <<'Lower';}
sesa514652 25:9798017b837d 237 printf("Lower \n");}
sesa514652 27:d48bf4e8f1a0 238
sesa514652 26:8826ed43fad2 239
sesa514652 27:d48bf4e8f1a0 240 // cout << "Test value collection";
sesa514652 27:d48bf4e8f1a0 241 //Scan1Input();
sesa514652 27:d48bf4e8f1a0 242 /*
sesa514652 27:d48bf4e8f1a0 243 cout << Scan1[0];cout <<"/n";
sesa514652 27:d48bf4e8f1a0 244 cout << Scan1[1];"/n";
sesa514652 27:d48bf4e8f1a0 245 cout << Scan1[2];"/n";
sesa514652 27:d48bf4e8f1a0 246 cout << Scan1[3];"/n";
sesa514652 27:d48bf4e8f1a0 247 cout << Scan1[4];"/n";
sesa514652 27:d48bf4e8f1a0 248 cout << Scan1[5];"/n";
sesa514652 27:d48bf4e8f1a0 249 cout << Scan1[6];"/n";
sesa514652 27:d48bf4e8f1a0 250 cout << Scan1[7];"/n";
sesa514652 27:d48bf4e8f1a0 251 cout << Scan1[8];"/n";
sesa514652 27:d48bf4e8f1a0 252 cout << Scan1[9];"/n";
sesa514652 27:d48bf4e8f1a0 253 */
sesa514652 24:a88c4941a25e 254
sesa514652 27:d48bf4e8f1a0 255 printf("press count = %i\n",PressA);
sesa514652 24:a88c4941a25e 256
sesa514652 26:8826ed43fad2 257 printf("Scan1 1 : %d cm\n", Scan1[0]);
sesa514652 26:8826ed43fad2 258 printf("Scan1 2 : %d cm\n", Scan1[1]);
sesa514652 26:8826ed43fad2 259 printf("Scan1 3 : %d cm\n", Scan1[2]);
sesa514652 26:8826ed43fad2 260 printf("Scan1 4 : %d cm\n", Scan1[3]);
sesa514652 26:8826ed43fad2 261 printf("Scan1 5 : %d cm\n", Scan1[4]);
sesa514652 26:8826ed43fad2 262 printf("Scan2 1 : %d cm\n", Scan2[0]);
sesa514652 26:8826ed43fad2 263 printf("Scan2 2 : %d cm\n", Scan2[1]);
sesa514652 26:8826ed43fad2 264 printf("Scan2 3 : %d cm\n", Scan2[2]);
sesa514652 26:8826ed43fad2 265 printf("Scan2 4 : %d cm\n", Scan2[3]);
sesa514652 26:8826ed43fad2 266 printf("Scan2 5 : %d cm\n", Scan2[4]);
sesa514652 26:8826ed43fad2 267 printf("Scan3 1 : %d cm\n", Scan3[0]);
sesa514652 26:8826ed43fad2 268 printf("Scan3 2 : %d cm\n", Scan3[1]);
sesa514652 26:8826ed43fad2 269 printf("Scan3 3 : %d cm\n", Scan3[2]);
sesa514652 26:8826ed43fad2 270 printf("Scan3 4 : %d cm\n", Scan3[3]);
sesa514652 26:8826ed43fad2 271 printf("Scan3 5 : %d cm\n", Scan3[4]);
sesa514652 26:8826ed43fad2 272 printf("Scan4 1 : %d cm\n", Scan4[0]);
sesa514652 26:8826ed43fad2 273 printf("Scan4 2 : %d cm\n", Scan4[1]);
sesa514652 26:8826ed43fad2 274 printf("Scan4 3 : %d cm\n", Scan4[2]);
sesa514652 26:8826ed43fad2 275 printf("Scan4 4 : %d cm\n", Scan4[3]);
sesa514652 26:8826ed43fad2 276 printf("Scan4 5 : %d cm\n", Scan4[4]);
sesa514652 26:8826ed43fad2 277 printf("Scan5 1 : %d cm\n", Scan5[0]);
sesa514652 26:8826ed43fad2 278 printf("Scan5 2 : %d cm\n", Scan5[1]);
sesa514652 26:8826ed43fad2 279 printf("Scan5 3 : %d cm\n", Scan5[2]);
sesa514652 26:8826ed43fad2 280 printf("Scan5 4 : %d cm\n", Scan5[3]);
sesa514652 26:8826ed43fad2 281 printf("Scan5 5 : %d cm\n", Scan5[4]);
sesa514652 26:8826ed43fad2 282
sesa514652 25:9798017b837d 283
sesa514652 25:9798017b837d 284 printf("I always Get printed \n");
sesa514652 24:a88c4941a25e 285
sesa514652 24:a88c4941a25e 286 // cout << Scan1[2];
sesa514652 24:a88c4941a25e 287 // cout << Scan1[6];
sesa514652 25:9798017b837d 288
sesa514652 25:9798017b837d 289 printf("I Should Be printed always \n");
sesa514652 25:9798017b837d 290 /*
sesa514652 24:a88c4941a25e 291 if (Scan1[1] > Scan1[2]){
sesa514652 24:a88c4941a25e 292 cout <<'+';
sesa514652 24:a88c4941a25e 293 }else if (Scan1[1]=Scan1[2]){
sesa514652 24:a88c4941a25e 294 cout <<'=';}
sesa514652 24:a88c4941a25e 295 else {
sesa514652 24:a88c4941a25e 296 cout <<'-';}
sesa514652 24:a88c4941a25e 297 if (Scan1[2] > Scan1[3]){
sesa514652 24:a88c4941a25e 298 cout <<'+';
sesa514652 24:a88c4941a25e 299 }else if (Scan1[2]=Scan1[3]){
sesa514652 24:a88c4941a25e 300 cout <<'=';}
sesa514652 23:f72175fb49ed 301 else {
sesa514652 23:f72175fb49ed 302 cout <<'-';}
sesa514652 24:a88c4941a25e 303
sesa514652 24:a88c4941a25e 304 if (Scan1[3] > Scan1[4]){
sesa514652 24:a88c4941a25e 305 cout <<'+';
sesa514652 24:a88c4941a25e 306 }else if (Scan1[3]=Scan1[4]){
sesa514652 24:a88c4941a25e 307 cout <<'=';}
sesa514652 24:a88c4941a25e 308 else {
sesa514652 24:a88c4941a25e 309 cout <<'-';}
sesa514652 24:a88c4941a25e 310 if (Scan1[4] > Scan1[5]){
sesa514652 24:a88c4941a25e 311 cout <<'+';
sesa514652 24:a88c4941a25e 312 }else if (Scan1[4]=Scan1[5]){
sesa514652 24:a88c4941a25e 313 cout <<'=';}
sesa514652 24:a88c4941a25e 314 else {
sesa514652 24:a88c4941a25e 315 cout <<'-';}
sesa514652 24:a88c4941a25e 316 if (Scan1[5] > Scan1[6]){
sesa514652 24:a88c4941a25e 317 cout <<'+';
sesa514652 24:a88c4941a25e 318 }else if (Scan1[5]=Scan1[6]){
sesa514652 24:a88c4941a25e 319 cout <<'=';}
sesa514652 24:a88c4941a25e 320 else {
sesa514652 24:a88c4941a25e 321 cout <<'-';}
sesa514652 24:a88c4941a25e 322 if (Scan1[6] > Scan1[7]){
sesa514652 24:a88c4941a25e 323 cout <<'+';
sesa514652 24:a88c4941a25e 324 }else if (Scan1[6]=Scan1[7]){
sesa514652 24:a88c4941a25e 325 cout <<'=';}
sesa514652 24:a88c4941a25e 326 else {
sesa514652 24:a88c4941a25e 327 cout <<'-';}
sesa514652 24:a88c4941a25e 328 if (Scan1[7] > Scan1[8]){
sesa514652 24:a88c4941a25e 329 cout <<'+';
sesa514652 24:a88c4941a25e 330 }else if (Scan1[7]=Scan1[8]){
sesa514652 24:a88c4941a25e 331 cout <<'=';}
sesa514652 24:a88c4941a25e 332 else {
sesa514652 24:a88c4941a25e 333 cout <<'-';}
sesa514652 24:a88c4941a25e 334
sesa514652 24:a88c4941a25e 335 if (Scan1[8] > Scan1[9]){
sesa514652 24:a88c4941a25e 336 cout <<'+';
sesa514652 24:a88c4941a25e 337 }else if (Scan1[8]=Scan1[9]){
sesa514652 24:a88c4941a25e 338 cout <<'=';}
sesa514652 24:a88c4941a25e 339 else {
sesa514652 24:a88c4941a25e 340 cout <<'-';}
sesa514652 24:a88c4941a25e 341 if (Scan1[9] > Scan1[10]){
sesa514652 24:a88c4941a25e 342 cout <<'+';
sesa514652 24:a88c4941a25e 343 }else if (Scan1[9]=Scan1[10]){
sesa514652 24:a88c4941a25e 344 cout <<'=';}
sesa514652 24:a88c4941a25e 345 else {
sesa514652 24:a88c4941a25e 346 cout <<'-';}
sesa514652 24:a88c4941a25e 347 */
sesa514652 21:2e37f80e8b5b 348
sesa514652 26:8826ed43fad2 349 /////////////////////////////////////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 350 switch(PressA){
sesa514652 21:2e37f80e8b5b 351 default:
sesa514652 21:2e37f80e8b5b 352 lcd.clear();
sesa514652 21:2e37f80e8b5b 353 lcd.printString("Main Menu",0,0);
sesa514652 21:2e37f80e8b5b 354 lcd.drawLine(0,10,80,10,2);
sesa514652 21:2e37f80e8b5b 355
sesa514652 21:2e37f80e8b5b 356 lcd.printString("A to begin new Scan",0,2);
sesa514652 27:d48bf4e8f1a0 357 lcd.printString("Scan Starts move pad",0,3);
sesa514652 27:d48bf4e8f1a0 358 lcd.printString("B to display Shape",0,4);
sesa514652 27:d48bf4e8f1a0 359 lcd.printString("Kory 18689004",0,5);
sesa514652 27:d48bf4e8f1a0 360
sesa514652 21:2e37f80e8b5b 361 lcd.refresh();
sesa514652 21:2e37f80e8b5b 362 wait_ms(50);
sesa514652 21:2e37f80e8b5b 363
sesa514652 21:2e37f80e8b5b 364 break;
sesa514652 22:82b01fdfc61f 365 //////////////////////////////////////////////////////////////////////////////////////////////////
sesa514652 21:2e37f80e8b5b 366 case 1:
sesa514652 21:2e37f80e8b5b 367 PressA =1;
sesa514652 26:8826ed43fad2 368 lcd.clear();
sesa514652 27:d48bf4e8f1a0 369 lcd.printString("First Scan",0,0);
sesa514652 21:2e37f80e8b5b 370 lcd.refresh();
sesa514652 26:8826ed43fad2 371 Buzzer.play(300,120); lcd.printString("X",0,1); lcd.refresh(); Scan1[0] = sensor.distance();
sesa514652 26:8826ed43fad2 372 wait(2);
sesa514652 26:8826ed43fad2 373 Buzzer.play(200,120); lcd.printString("X",0,2);lcd.refresh(); Scan1[1] = sensor.distance();
sesa514652 26:8826ed43fad2 374 wait(2);
sesa514652 26:8826ed43fad2 375 Buzzer.play(200,120); lcd.printString("X",0,3);lcd.refresh(); Scan1[2] = sensor.distance();
sesa514652 26:8826ed43fad2 376 wait(2);
sesa514652 26:8826ed43fad2 377 Buzzer.play(200,120); lcd.printString("X",0,4);lcd.refresh(); Scan1[3] = sensor.distance();;
sesa514652 26:8826ed43fad2 378 wait(2);
sesa514652 26:8826ed43fad2 379 Buzzer.play(200,120); lcd.printString("X",0,5);lcd.refresh(); Scan1[4] = sensor.distance();;
sesa514652 26:8826ed43fad2 380 wait(2);
sesa514652 26:8826ed43fad2 381 lcd.printString("Scan 1 Complete",0,0); lcd.refresh();
sesa514652 26:8826ed43fad2 382 wait(2); // required to stop Black screen issue}
sesa514652 26:8826ed43fad2 383 lcd.clear();lcd.refresh();
sesa514652 26:8826ed43fad2 384 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 385 lcd.printString("Second Scan",0,0);
sesa514652 26:8826ed43fad2 386 Buzzer.play(300,120); lcd.printString("X",15,1); lcd.refresh(); Scan2[0] = sensor.distance();
sesa514652 26:8826ed43fad2 387 wait(2);
sesa514652 26:8826ed43fad2 388 Buzzer.play(200,120); lcd.printString("X",15,2);lcd.refresh(); Scan2[1] = sensor.distance();
sesa514652 26:8826ed43fad2 389 wait(2);
sesa514652 26:8826ed43fad2 390 Buzzer.play(200,120); lcd.printString("X",15,3);lcd.refresh(); Scan2[2] = sensor.distance();
sesa514652 26:8826ed43fad2 391 wait(2);
sesa514652 26:8826ed43fad2 392 Buzzer.play(200,120); lcd.printString("X",15,4);lcd.refresh(); Scan2[3] = sensor.distance();
sesa514652 26:8826ed43fad2 393 wait(2);
sesa514652 26:8826ed43fad2 394 Buzzer.play(200,120); lcd.printString("X",15,5);lcd.refresh(); Scan2[4] = sensor.distance();
sesa514652 26:8826ed43fad2 395 lcd.printString("Scan 2 Done",0,0); lcd.refresh();
sesa514652 26:8826ed43fad2 396 lcd.clear();lcd.refresh();
sesa514652 26:8826ed43fad2 397 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 398 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 27:d48bf4e8f1a0 399 lcd.printString("Third Scan",0,0);
sesa514652 26:8826ed43fad2 400 Buzzer.play(300,120); lcd.printString("X",30,1); lcd.refresh(); Scan3[0] = sensor.distance();
sesa514652 26:8826ed43fad2 401 wait(2);
sesa514652 26:8826ed43fad2 402 Buzzer.play(200,120); lcd.printString("X",30,2);lcd.refresh(); Scan3[1] = sensor.distance();
sesa514652 26:8826ed43fad2 403 wait(2);
sesa514652 26:8826ed43fad2 404 Buzzer.play(200,120); lcd.printString("X",30,3);lcd.refresh(); Scan3[2] = sensor.distance();
sesa514652 26:8826ed43fad2 405 wait(2);
sesa514652 26:8826ed43fad2 406 Buzzer.play(200,120); lcd.printString("X",30,4);lcd.refresh(); Scan3[3] = sensor.distance();;
sesa514652 26:8826ed43fad2 407 wait(2);
sesa514652 26:8826ed43fad2 408 Buzzer.play(200,120); lcd.printString("X",30,5);lcd.refresh(); Scan3[4] = sensor.distance();;
sesa514652 27:d48bf4e8f1a0 409 lcd.printString("Scan 3 Done",0,0); lcd.refresh();
sesa514652 26:8826ed43fad2 410 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 411 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 27:d48bf4e8f1a0 412 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 27:d48bf4e8f1a0 413 wait(2);
sesa514652 27:d48bf4e8f1a0 414 lcd.printString("Fourth Scan",0,0);
sesa514652 26:8826ed43fad2 415 Buzzer.play(300,120); lcd.printString("X",45,1); lcd.refresh(); Scan4[0] = sensor.distance();
sesa514652 26:8826ed43fad2 416 wait(2);
sesa514652 26:8826ed43fad2 417 Buzzer.play(200,120); lcd.printString("X",45,2);lcd.refresh(); Scan4[1] = sensor.distance();
sesa514652 26:8826ed43fad2 418 wait(2);
sesa514652 26:8826ed43fad2 419 Buzzer.play(200,120); lcd.printString("X",45,3);lcd.refresh(); Scan4[2] = sensor.distance();
sesa514652 26:8826ed43fad2 420 wait(2);
sesa514652 26:8826ed43fad2 421 Buzzer.play(200,120); lcd.printString("X",45,4);lcd.refresh(); Scan4[3] = sensor.distance();;
sesa514652 26:8826ed43fad2 422 wait(2);
sesa514652 26:8826ed43fad2 423 Buzzer.play(200,120); lcd.printString("X",45,5);lcd.refresh(); Scan4[4] = sensor.distance();;
sesa514652 26:8826ed43fad2 424 lcd.printString("Scan 4 Done",0,0); lcd.refresh();
sesa514652 26:8826ed43fad2 425 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 426 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 26:8826ed43fad2 427 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 26:8826ed43fad2 428 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 26:8826ed43fad2 429 wait(2);
sesa514652 26:8826ed43fad2 430 lcd.printString("Fifth Scan",0,0);
sesa514652 26:8826ed43fad2 431 Buzzer.play(300,120); lcd.printString("X",60,1); lcd.refresh(); Scan3[0] = sensor.distance();
sesa514652 26:8826ed43fad2 432 wait(2);
sesa514652 26:8826ed43fad2 433 Buzzer.play(200,120); lcd.printString("X",60,2);lcd.refresh(); Scan3[1] = sensor.distance();
sesa514652 26:8826ed43fad2 434 wait(2);
sesa514652 26:8826ed43fad2 435 Buzzer.play(200,120); lcd.printString("X",60,3);lcd.refresh(); Scan3[2] = sensor.distance();
sesa514652 26:8826ed43fad2 436 wait(2);
sesa514652 26:8826ed43fad2 437 Buzzer.play(200,120); lcd.printString("X",60,4);lcd.refresh(); Scan3[3] = sensor.distance();;
sesa514652 26:8826ed43fad2 438 wait(2);
sesa514652 26:8826ed43fad2 439 Buzzer.play(200,120); lcd.printString("X",60,5);lcd.refresh(); Scan3[4] = sensor.distance();;
sesa514652 27:d48bf4e8f1a0 440
sesa514652 27:d48bf4e8f1a0 441 PressA=0;
sesa514652 27:d48bf4e8f1a0 442
sesa514652 26:8826ed43fad2 443
sesa514652 20:4e1f2917a857 444 break;
sesa514652 22:82b01fdfc61f 445 ////////////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 446 case 2:
sesa514652 20:4e1f2917a857 447 PressA= 2;
sesa514652 22:82b01fdfc61f 448 long secondScan[10];
sesa514652 22:82b01fdfc61f 449
sesa514652 22:82b01fdfc61f 450 secondScan[5] = sensor.distance();
sesa514652 22:82b01fdfc61f 451 printf("Distance : %d cm", secondScan[5]);
sesa514652 22:82b01fdfc61f 452 lcd.clear();
sesa514652 22:82b01fdfc61f 453 lcd.printString("2nd Scan up down",0,0);
sesa514652 22:82b01fdfc61f 454 lcd.drawLine(0,10,80,10,2);
sesa514652 20:4e1f2917a857 455 break;
sesa514652 22:82b01fdfc61f 456 ////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 457 case 3:
sesa514652 20:4e1f2917a857 458 PressA= 3;
sesa514652 20:4e1f2917a857 459 lcd.clear();
sesa514652 20:4e1f2917a857 460 lcd.printString("Menu 3",0,0);
sesa514652 21:2e37f80e8b5b 461 long us = sensor.distance();
sesa514652 21:2e37f80e8b5b 462 printf("Distance : %d cm",us);
sesa514652 20:4e1f2917a857 463 lcd.refresh();
sesa514652 20:4e1f2917a857 464 wait_ms(50); //required to stop Black screen issue
sesa514652 20:4e1f2917a857 465 break;
sesa514652 20:4e1f2917a857 466 }
sesa514652 20:4e1f2917a857 467
sesa514652 20:4e1f2917a857 468 }
sesa514652 23:f72175fb49ed 469
sesa514652 20:4e1f2917a857 470 /*
sesa514652 11:1dec05b7d1c1 471 int button_counter;
sesa514652 10:42e70b596099 472 if (g_buttonA_flag){
sesa514652 11:1dec05b7d1c1 473 button_counter = button_counter +1;
sesa514652 11:1dec05b7d1c1 474 //case (test)
sesa514652 10:42e70b596099 475 g_buttonA_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 476
sesa514652 10:42e70b596099 477 // send message over serial port - can observe in CoolTerm etc.
sesa514652 11:1dec05b7d1c1 478 printf("Button A pressed %f\n", button_counter);
sesa514652 10:42e70b596099 479 }
sesa514652 10:42e70b596099 480 if (g_buttonB_flag){
sesa514652 10:42e70b596099 481 g_buttonB_flag = 0; // if it has, clear the flag
sesa514652 8:770d168713cc 482
sesa514652 10:42e70b596099 483 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 484 printf("Button B pressed\n");
sesa514652 10:42e70b596099 485 }
sesa514652 10:42e70b596099 486 if (g_buttonX_flag){
sesa514652 10:42e70b596099 487 g_buttonX_flag = 0; // if it has, clear the flag
sesa514652 12:ceea378d5691 488 // swap direction when button has been pressed
sesa514652 12:ceea378d5691 489 // (could just use ! but want this to be explicit to aid understanding)
sesa514652 12:ceea378d5691 490 if (direction == UP) {
sesa514652 12:ceea378d5691 491 direction = DOWN;
sesa514652 12:ceea378d5691 492 }
sesa514652 12:ceea378d5691 493 else {
sesa514652 12:ceea378d5691 494 direction = UP;
sesa514652 12:ceea378d5691 495 }
sesa514652 10:42e70b596099 496
sesa514652 10:42e70b596099 497 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 498 printf("Button X pressed\n");
sesa514652 10:42e70b596099 499 lcd.clear();
sesa514652 10:42e70b596099 500 lcd.printString("Button Pressed!",0,0);
sesa514652 10:42e70b596099 501 lcd.refresh();
sesa514652 11:1dec05b7d1c1 502 wait(1);
sesa514652 10:42e70b596099 503 }
sesa514652 10:42e70b596099 504 if (g_buttonY_flag){
sesa514652 10:42e70b596099 505 g_buttonY_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 506
sesa514652 10:42e70b596099 507 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 508 printf("Button Y pressed\n");
sesa514652 10:42e70b596099 509 }
sesa514652 5:9b2c976ca318 510 Buzzer.play(200,120);
sesa514652 5:9b2c976ca318 511 wait_ms(5);
sesa514652 5:9b2c976ca318 512 Buzzer.play(200,120);
sesa514652 1:757728321abd 513 long distanced = sensor.distance();
sesa514652 1:757728321abd 514 if (distanced >= 400 || distanced <= 2)
sesa514652 5:9b2c976ca318 515 {
sesa514652 1:757728321abd 516 printf("Out of range");
sesa514652 5:9b2c976ca318 517 //Calling dummy function 05/01/22
sesa514652 4:167ce930c9d5 518 int answer = cube(2);
sesa514652 5:9b2c976ca318 519 printf("%f\n",answer);
sesa514652 1:757728321abd 520 wait(1.0);
sesa514652 5:9b2c976ca318 521 }
sesa514652 5:9b2c976ca318 522 else
sesa514652 5:9b2c976ca318 523 {
sesa514652 5:9b2c976ca318 524 printf("Distance : %d cm",distanced);
sesa514652 5:9b2c976ca318 525 wait(1.0); // 1 sec
sesa514652 1:757728321abd 526 }
sesa514652 5:9b2c976ca318 527 lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK);
sesa514652 5:9b2c976ca318 528 //lcd.refresh must be used to update the lcd Display
sesa514652 5:9b2c976ca318 529 lcd.refresh();
sesa514652 5:9b2c976ca318 530 wait(5.0);
sesa514652 5:9b2c976ca318 531 //these are default settings so not strictly needed
sesa514652 0:1f799c7cce2b 532 lcd.normalMode(); // normal colour mode
sesa514652 5:9b2c976ca318 533 lcd.setBrightness(0.5); // put LED backlight on 50%
sesa514652 0:1f799c7cce2b 534 lcd.clear();
sesa514652 0:1f799c7cce2b 535 lcd.printString("Hello, World!",0,0);
sesa514652 0:1f799c7cce2b 536 Vector2D coord = joystick.get_coord();
sesa514652 0:1f799c7cce2b 537 lcd.refresh();
sesa514652 0:1f799c7cce2b 538 printf("Coord = %f,%f\n",coord.x,coord.y);
sesa514652 0:1f799c7cce2b 539 char buffer[14];
sesa514652 0:1f799c7cce2b 540 Vector2D mapped_coord = joystick.get_mapped_coord();
sesa514652 0:1f799c7cce2b 541 printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y);
sesa514652 0:1f799c7cce2b 542
sesa514652 5:9b2c976ca318 543 int length = sprintf(buffer,"T = %2f",coord.x);
sesa514652 5:9b2c976ca318 544 //it is important the format specifier ensures the length will fit in the buffer
sesa514652 0:1f799c7cce2b 545 if (length <= 14) // if string will fit on display (assuming printing at x=0)
sesa514652 5:9b2c976ca318 546 lcd.printString(buffer,0,1); // display on screen
sesa514652 0:1f799c7cce2b 547 lcd.refresh();
sesa514652 5:9b2c976ca318 548 lcd.clear();
sesa514652 5:9b2c976ca318 549 //times by 50 to try get the point moving across screen
sesa514652 0:1f799c7cce2b 550 float x50 = mapped_coord.x*5;
sesa514652 0:1f799c7cce2b 551 float y50 = mapped_coord.y*8;
sesa514652 5:9b2c976ca318 552 //to see what the values are
sesa514652 5:9b2c976ca318 553 printf(" *50 = %f,%f\n",x50,y50);
sesa514652 5:9b2c976ca318 554 //example of how to draw circles
sesa514652 1:757728321abd 555 lcd.printChar('o',WIDTH/2,HEIGHT/2);
sesa514652 5:9b2c976ca318 556 lcd.refresh();
sesa514652 0:1f799c7cce2b 557 float mag = joystick.get_mag();
sesa514652 0:1f799c7cce2b 558 float angle = joystick.get_angle();
sesa514652 0:1f799c7cce2b 559 printf("Mag = %f Angle = %f\n",mag,angle);
sesa514652 0:1f799c7cce2b 560 Direction d = joystick.get_direction();
sesa514652 0:1f799c7cce2b 561 printf("Direction = %i\n",d);
sesa514652 0:1f799c7cce2b 562 if (joystick.button_pressed() ) {
sesa514652 0:1f799c7cce2b 563 printf("Button Pressed\n");
sesa514652 9:cdd7d9a123f9 564 wait(5);
sesa514652 0:1f799c7cce2b 565 }
sesa514652 8:770d168713cc 566
sesa514652 8:770d168713cc 567 }
sesa514652 16:2646c1c4e62e 568 }
sesa514652 20:4e1f2917a857 569 */
sesa514652 23:f72175fb49ed 570 }
sesa514652 18:bb36d96142dd 571
sesa514652 18:bb36d96142dd 572 int buttonCountA(){
sesa514652 18:bb36d96142dd 573 PressA++;
sesa514652 18:bb36d96142dd 574 if (PressA>3){
sesa514652 18:bb36d96142dd 575 PressA= 0;
sesa514652 18:bb36d96142dd 576 }
sesa514652 18:bb36d96142dd 577 return PressA;
sesa514652 18:bb36d96142dd 578 }
sesa514652 18:bb36d96142dd 579 int buttonCountB(){
sesa514652 18:bb36d96142dd 580 PressB++;
sesa514652 18:bb36d96142dd 581 if (PressB>3){
sesa514652 18:bb36d96142dd 582 PressB= 0;
sesa514652 18:bb36d96142dd 583 }
sesa514652 18:bb36d96142dd 584 return PressB;
sesa514652 18:bb36d96142dd 585 }
sesa514652 15:234321e80678 586
sesa514652 12:ceea378d5691 587 //Button A event-triggered interrupt
sesa514652 10:42e70b596099 588 void buttonA_isr()
sesa514652 10:42e70b596099 589 {
sesa514652 12:ceea378d5691 590
sesa514652 18:bb36d96142dd 591 long distanced = sensor.distance();
sesa514652 18:bb36d96142dd 592 buttonCountA();
sesa514652 18:bb36d96142dd 593
sesa514652 16:2646c1c4e62e 594
sesa514652 12:ceea378d5691 595
sesa514652 12:ceea378d5691 596 g_buttonA_flag = 1; // set flag in ISR
sesa514652 12:ceea378d5691 597
sesa514652 18:bb36d96142dd 598 printf("press count = %i\n",PressA);
sesa514652 12:ceea378d5691 599
sesa514652 12:ceea378d5691 600 // lcd.clear();
sesa514652 15:234321e80678 601 //lcd.printString("Button A Pressed",0,0);
sesa514652 12:ceea378d5691 602
sesa514652 15:234321e80678 603 // lcd.refresh(); // set flag in ISR
sesa514652 12:ceea378d5691 604 }
sesa514652 12:ceea378d5691 605
sesa514652 11:1dec05b7d1c1 606
sesa514652 10:42e70b596099 607 //Button B event-triggered interrupt
sesa514652 10:42e70b596099 608 void buttonB_isr()
sesa514652 10:42e70b596099 609 {
sesa514652 18:bb36d96142dd 610 buttonCountB();
sesa514652 10:42e70b596099 611 g_buttonB_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 612 lcd.clear();
sesa514652 11:1dec05b7d1c1 613 lcd.printString("Button B Pressed",0,0);
sesa514652 27:d48bf4e8f1a0 614
sesa514652 11:1dec05b7d1c1 615 lcd.refresh(); // set flag in ISR
sesa514652 18:bb36d96142dd 616 printf("press count = %i\n",PressB);
sesa514652 10:42e70b596099 617 }
sesa514652 10:42e70b596099 618 //Button X event-triggered interrupt
sesa514652 10:42e70b596099 619 void buttonX_isr()
sesa514652 10:42e70b596099 620 {
sesa514652 10:42e70b596099 621 g_buttonX_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 622 lcd.clear();
sesa514652 11:1dec05b7d1c1 623 lcd.printString("Button X Pressed",0,0);
sesa514652 11:1dec05b7d1c1 624 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 625 }
sesa514652 10:42e70b596099 626 //Button Y event-triggered interrupt
sesa514652 10:42e70b596099 627 void buttonY_isr()
sesa514652 10:42e70b596099 628 {
sesa514652 10:42e70b596099 629 g_buttonY_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 630 lcd.clear();
sesa514652 11:1dec05b7d1c1 631 lcd.printString("Button Y Pressed",0,0);
sesa514652 11:1dec05b7d1c1 632 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 633 }
sesa514652 11:1dec05b7d1c1 634 //Button Start event-triggered interrupt
sesa514652 11:1dec05b7d1c1 635 void buttonStart_isr()
sesa514652 11:1dec05b7d1c1 636 {
sesa514652 11:1dec05b7d1c1 637 g_buttonStart_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 638 lcd.clear();
sesa514652 11:1dec05b7d1c1 639 lcd.printString("Button Start Pressed",0,0);
sesa514652 11:1dec05b7d1c1 640 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 641 }
sesa514652 11:1dec05b7d1c1 642 //Button Back event-triggered interrupt
sesa514652 11:1dec05b7d1c1 643 void buttonBack_isr()
sesa514652 11:1dec05b7d1c1 644 {
sesa514652 11:1dec05b7d1c1 645 g_buttonBack_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 646 lcd.clear();
sesa514652 11:1dec05b7d1c1 647 lcd.printString("Button Back Pressed",0,0);
sesa514652 11:1dec05b7d1c1 648 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 649 }
sesa514652 11:1dec05b7d1c1 650 //Button Left event-triggered interrupt
sesa514652 11:1dec05b7d1c1 651 void buttonLeft_isr()
sesa514652 11:1dec05b7d1c1 652 {
sesa514652 11:1dec05b7d1c1 653 g_buttonLeft_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 654 lcd.clear();
sesa514652 11:1dec05b7d1c1 655 lcd.printString("Button Left Pressed",0,0);
sesa514652 11:1dec05b7d1c1 656 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 657 }
sesa514652 11:1dec05b7d1c1 658 //Button Right event-triggered interrupt
sesa514652 11:1dec05b7d1c1 659 void buttonRight_isr()
sesa514652 11:1dec05b7d1c1 660 {
sesa514652 11:1dec05b7d1c1 661 g_buttonRight_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 662 lcd.clear();
sesa514652 11:1dec05b7d1c1 663 lcd.printString("Button Right Pressed",0,0);
sesa514652 11:1dec05b7d1c1 664 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 665 }