ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Revision 13:3ae48dd67009, committed 2020-04-11
- Comitter:
- nnguyen99
- Date:
- Sat Apr 11 19:47:56 2020 +0000
- Parent:
- 12:0528ef6978ec
- Child:
- 14:7e81f2cd4b4b
- Commit message:
- Functioning state machine implemented
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- 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;
}
