ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Diff: main.cpp
- Revision:
- 13:3ae48dd67009
- Parent:
- 12:0528ef6978ec
- Child:
- 14:7e81f2cd4b4b
--- a/main.cpp Sat Apr 11 19:34:47 2020 +0000 +++ b/main.cpp Sat Apr 11 19:47:56 2020 +0000 @@ -92,67 +92,60 @@ 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 = 0; - }else if(S){ - curr_state = 2; - X = 0; - } - }else if(S){ - if(X){ - curr_state = 1; - S = 0; - }else if(R){ - curr_state = 3; - S = 0; - }else if(P){ - curr_state = 4; - S = 0; - } - }else if(R){ - if(X){ - curr_state = 1; - R = 0; - }else if(S){ - curr_state = 2; - R = 0; - } - }else if(P){ - if(X){ - curr_state = 1; - P = 0; - }else if(S){ - curr_state = 2; - P = 0; - } - }else if(E){ - if(X){ - curr_state = 1; - E = 0; - } - } switch(curr_state){ case 1: // pc.printf("RESET\n"); + if(E){ + curr_state = 5; + X = 0; + }else if(S){ + curr_state = 2; + X = 0; + } reset(); break; case 2: // pc.printf("STOP\n"); + if(X){ + curr_state = 1; + S = 0; + }else if(R){ + curr_state = 3; + S = 0; + }else if(P){ + curr_state = 4; + S = 0; + } stop(); break; case 3: // pc.printf("RECORD\n"); + if(X){ + curr_state = 1; + R = 0; + }else if(S){ + curr_state = 2; + R = 0; + } record(); break; case 4: // pc.printf("PLAY\n"); + if(X){ + curr_state = 1; + P = 0; + }else if(S){ + curr_state = 2; + P = 0; + } play(); break; case 5: // pc.printf("ERASE\n"); + if(X){ + curr_state = 1; + E = 0; + } erase(); break; }