ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Revision 10:f10105ec435f, committed 2020-04-09
- Comitter:
- nnguyen99
- Date:
- Thu Apr 09 17:01:39 2020 +0000
- Parent:
- 9:770effc3af2d
- Child:
- 11:299f2c8a4092
- Commit message:
- Set up serial terminal
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- 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();
}
