ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Diff: main.cpp
- Revision:
- 10:f10105ec435f
- Parent:
- 9:770effc3af2d
- Child:
- 11:299f2c8a4092
--- a/main.cpp Thu Apr 09 16:24:28 2020 +0000 +++ b/main.cpp Thu Apr 09 17:01:39 2020 +0000 @@ -4,9 +4,8 @@ #include "PinDetect.h" #include "uLCD_4DGL.h" DigitalOut myled(LED1); -Serial pc(USBTX,USBRX); -// LCD init -// Push buttons init +Serial mac(USBTX,USBRX); + // States #define sRESET 1 #define sSTOP 2 @@ -20,7 +19,6 @@ bool R; //record bool E; //erase -enum sm_state {sRESET, sSTOP, sRECORD, sPLAY, sERASE}; void reset(){ @@ -72,22 +70,20 @@ void state_machine_mgr(){ - sm_state curr_state = sRESET; + mac.printf("SM\n"); + int curr_state = 1; while(1) { - curr_state = pc.getc(); switch(curr_state){ - case sRESET: - S = 0; - R = 0; - P = 0; - E = 0; + case 1: + S,R,P,E = 0; + mac.printf("RESET\n"); + reset(); if(S) curr_state = sSTOP; break; - case sSTOP: - X = 0; - R = 0; - P = 0; - E = 0; + case 2: + X,R,P,E = 0; + mac.printf("STOP\n"); + stop(); if(X){ curr_state = sRESET; }else if(S&R){ @@ -96,11 +92,10 @@ curr_state = sPLAY; } break; - case sRECORD: - S = 0; - X = 0; - P = 0; - E = 0; + case 3: + S,X,P,E = 0; + mac.printf("RECORD\n"); + record(); if(X){ curr_state = sRESET; }else if(R&S){ @@ -109,11 +104,10 @@ curr_state = sPLAY; } break; - case sPLAY: - S = 0; - R = 0; - X = 0; - E = 0; + case 4: + S,R,X,E = 0; + mac.printf("PLAY\n"); + play(); if(X){ curr_state = sRESET; }else if(P&S){ @@ -122,15 +116,19 @@ curr_state = sPLAY; } break; - case sERASE: + case 5: + mac.printf("ERASE\n"); + erase(); + S,R,X,P = 0; if(X){ curr_state = sRESET; } } + curr_state = mac.getc(); } } int main() { - hardware_init(); + mac.printf("MAIN\n"); state_machine_mgr(); }