ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Diff: main.cpp
- 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(); }