![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Coursework
Diff: main.cpp
- Revision:
- 33:3717bc4e2fa8
- Parent:
- 32:9c206f993cf5
- Child:
- 34:dfe7f5799582
--- a/main.cpp Fri Jan 28 21:49:45 2022 +0000 +++ b/main.cpp Sat Jan 29 15:05:25 2022 +0000 @@ -21,6 +21,11 @@ */ volatile int g_ButtonAPress; volatile int g_ButtonBPress; +volatile int LoopCountScan1; +volatile int LoopCountScan2; +volatile int LoopCountScan3; +volatile int LoopCountScan4; +volatile int LoopCountScan5; volatile int g_buttonA_flag = 0; volatile int g_buttonB_flag = 0; volatile int g_buttonX_flag = 0; @@ -38,6 +43,7 @@ volatile int Scan3[5]; volatile int Scan4[5]; volatile int Scan5[5]; +volatile int wall[5]; /** *... Section of code to assign names to IO pins on the K64f */ @@ -85,9 +91,14 @@ void inputScan3(); void inputScan4(); void inputScan5(); +int NoContinueExit(); int buttonCountA(); int buttonCountB(); + + + + EventQueue queue; /**< Required to get around issues with printing onto LCD and the Printf */ @@ -216,7 +227,11 @@ cout << Scan1[8];"/n"; cout << Scan1[9];"/n"; */ - +printf("Debug : LoopCount1 : %i\n",LoopCountScan1); +printf("Debug : LoopCount2 : %i\n",LoopCountScan2); +printf("Debug : LoopCount3 : %i\n",LoopCountScan3); +printf("Debug : LoopCount4 : %i\n",LoopCountScan4); +printf("Debug : LoopCount5 : %i\n",LoopCountScan5); printf("press count = %i\n",g_ButtonAPress); printf("Scan1 1 : %d cm\n", Scan1[0]); printf("Scan1 2 : %d cm\n", Scan1[1]); @@ -321,7 +336,22 @@ lcd.printString("New Scan",0,3); lcd.printString("Press B",0,4); lcd.printString("Kory 18689004",0,5); + LoopCountScan1 =0; + LoopCountScan2 =0; + LoopCountScan3 =0; + LoopCountScan4 =0; + LoopCountScan5 =0; +for(int i=0; i<5; i++){ + + printf("hello Scan: %i The value of : %i \n",i, Scan1[i]); + if (Scan1[i]>95){ + printf("no wall");} + else if (Scan1[i]<85){ + printf("OBJECT ABOUT");} + else if (Scan1[i]>85<95){ + printf("No Object");} + } /** IF Statement to decide on shape to draw *.. This section of code compares the each array element with the one proceding it and makes a logical decision if higher lower or equal. @@ -708,8 +738,16 @@ */ case 1: g_ButtonAPress =1; - + /* + *..Section used for power saving, if the user has not continued after 5 scans + */ + if(LoopCountScan1==5){ + g_ButtonAPress=0; + LoopCountScan1=0; + break;} + else; inputScan1(); + break; /* wait_ms(5); // required to stop Black screen issue} inputScan2(); @@ -726,10 +764,15 @@ g_ButtonAPress=0; */ - break; + //////////////////////////////////////////////////////////////////////////// case 2: g_ButtonAPress= 2; + if(LoopCountScan2==5){ + g_ButtonAPress=0; + LoopCountScan2=0; + break;} + else; /*int secondScan[10]; secondScan[5] = sensor.distance(); @@ -742,6 +785,11 @@ //////////////////////////////////////////////////////////////////// case 3: g_ButtonAPress= 3; + if(LoopCountScan3==5){ + g_ButtonAPress=0; + LoopCountScan3=0; + break;} + else; /* lcd.clear(); lcd.printString("Menu 3",0,0); int us = sensor.distance(); @@ -755,6 +803,11 @@ case 4: g_ButtonAPress= 4; + if(LoopCountScan4==5){ + g_ButtonAPress=0; + LoopCountScan4=0; + break;} + else; /* lcd.clear(); lcd.printString("Menu 3",0,0); int us = sensor.distance(); @@ -766,6 +819,11 @@ /////////////////////////////////////////////////////////////////// case 5: g_ButtonAPress= 5; + if(LoopCountScan5==5){ + g_ButtonAPress=0; + LoopCountScan5=0; + break;} + else; /* lcd.clear(); lcd.printString("Menu 3",0,0); int us = sensor.distance(); @@ -893,6 +951,42 @@ } return g_ButtonBPress; } + int NoContinueExitScan1(){ + LoopCountScan1++; + if (LoopCountScan1>5){ + LoopCountScan1= 0; + } + return LoopCountScan1; + } + int NoContinueExitScan2(){ + LoopCountScan2++; + if (LoopCountScan2>5){ + LoopCountScan2= 0; + } + return LoopCountScan2; + } + int NoContinueExitScan3(){ + LoopCountScan3++; + if (LoopCountScan3>5){ + LoopCountScan3= 0; + } + return LoopCountScan3; + } + int NoContinueExitScan4(){ + LoopCountScan4++; + if (LoopCountScan4>5){ + LoopCountScan4= 0; + } + return LoopCountScan4; + } + int NoContinueExitScan5(){ + LoopCountScan5++; + if (LoopCountScan5>5){ + LoopCountScan5= 0; + } + return LoopCountScan5; + } + //Button A event-triggered interrupt void buttonA_isr() @@ -921,7 +1015,6 @@ g_buttonB_flag = 1; // set flag in ISR lcd.clear(); lcd.printString("Button B Pressed",0,0); - lcd.refresh(); // set flag in ISR printf("press count = %i\n",g_ButtonBPress); } @@ -979,6 +1072,7 @@ lcd.clear(); lcd.printString("First Scan",0,0); lcd.refresh(); + NoContinueExitScan1(); Buzzer.play(300,120); lcd.printString("X",0,1); lcd.refresh(); Scan1[0] = sensor.distance(); wait_ms(5); @@ -998,6 +1092,7 @@ lcd.clear(); lcd.printString("Second Scan",0,0); lcd.refresh(); + NoContinueExitScan2(); 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(); Buzzer.play(300,120); lcd.printString("X",15,1); lcd.refresh(); Scan2[0] = sensor.distance(); wait_ms(5); @@ -1016,7 +1111,7 @@ lcd.clear(); lcd.printString("Third Scan",0,0); lcd.refresh(); - + NoContinueExitScan3(); 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(); 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(); Buzzer.play(300,120); lcd.printString("X",30,1); lcd.refresh(); Scan3[0] = sensor.distance(); @@ -1032,9 +1127,10 @@ } void inputScan4() { - lcd.clear(); - lcd.printString("Fourth Scan",0,0); - lcd.refresh(); + lcd.clear(); + lcd.printString("Fourth Scan",0,0); + lcd.refresh(); + NoContinueExitScan4(); 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(); 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(); 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(); @@ -1054,6 +1150,7 @@ lcd.clear(); lcd.printString("Fifth Scan",0,0); lcd.refresh(); + NoContinueExitScan5(); 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(); 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(); 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();