Coursework

Revision:
33:3717bc4e2fa8
Parent:
32:9c206f993cf5
Child:
34:dfe7f5799582
diff -r 9c206f993cf5 -r 3717bc4e2fa8 main.cpp
--- 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();