ECE3872 HW/SW Project Code

Dependencies:   mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1

Revision:
12:0528ef6978ec
Parent:
11:299f2c8a4092
Child:
13:3ae48dd67009
Child:
24:930fc58e927a
--- a/main.cpp	Sat Apr 11 03:18:24 2020 +0000
+++ b/main.cpp	Sat Apr 11 19:34:47 2020 +0000
@@ -70,8 +70,8 @@
 
 
 void state_machine_mgr(){
-    pc.printf("SM\n");
     char curr_state =  1;
+    char key_input;
     X = 1;
     S = 0;
     R = 0;
@@ -79,75 +79,80 @@
     E = 0;
     while(1) {
         if (pc.readable()) {                // if they have pressed a key
-            curr_state = pc.getc();
-            if('1') X=!X;   //toggle reset
-            if('2') S=!S;   //toggle stop
-            if('3') R=!R;   //toogle record
-            if('4') P=!P;   //toggle play
-            if('5') E=!E;   //toggle erase
+            key_input = pc.getc();
+            if(key_input == '1') X=1;   //toggle reset
+            if(key_input == '2') S=1;   //toggle stop
+            if(key_input == '3') R=1;   //toogle record
+            if(key_input == '4') P=1;   //toggle play
+            if(key_input == '5') E=1;   //toggle erase
         }
-        
+        pc.printf("X: %d\n",X);
+        pc.printf("S: %d\n",S);
+        pc.printf("R: %d\n",R);
+        pc.printf("P: %d\n",P);
+        pc.printf("E: %d\n",E);
+        pc.printf("Current State %d\n",curr_state);
         // Implementing state machine logical transitions based on what states can exit to other states
         if(X){
             if(E){
                 curr_state = 5;
-                X = !X;
+                X = 0;
             }else if(S){
                 curr_state = 2;
-                X = !X;
+                X = 0;
             }
         }else if(S){
             if(X){
                 curr_state = 1;
-                S = !S;
+                S = 0;
             }else if(R){
                 curr_state = 3;
-                S = !S;
+                S = 0;
             }else if(P){
                 curr_state = 4;
-                S = !S;
+                S = 0;
             }
         }else if(R){
             if(X){
                 curr_state = 1;
-                R = !R;
+                R = 0;
             }else if(S){
                 curr_state = 2;
-                R = !R;
+                R = 0;
             }
         }else if(P){
             if(X){
                 curr_state = 1;
-                P = !P;
+                P = 0;
             }else if(S){
                 curr_state = 2;
-                P = !P;
+                P = 0;
             }
         }else if(E){
             if(X){
                 curr_state = 1;
-                E = !E;
+                E = 0;
             }
         }
         switch(curr_state){
             case 1:
-                pc.printf("RESET\n");
+//                pc.printf("RESET\n");
                 reset();
                 break;
             case 2:
-                pc.printf("STOP\n");
+//                pc.printf("STOP\n");
                 stop();
                 break;
             case 3:
-                pc.printf("RECORD\n");
+//                pc.printf("RECORD\n");
                 record();
                 break;
             case 4:
-                pc.printf("PLAY\n");
+//                pc.printf("PLAY\n");
                 play();
                 break;
             case 5:
-                pc.printf("ERASE\n");
+//                pc.printf("ERASE\n");
                 erase();
                 break;
         }
@@ -155,6 +160,5 @@
 }
 
 int main() {
-    pc.printf("MAIN\n");
     state_machine_mgr();
 }