![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Diff: main.cpp
- Revision:
- 5:d34d14d33a89
- Parent:
- 4:1790aa9234a3
- Child:
- 7:f5f265b139fe
- Child:
- 8:a618687c7b19
diff -r 1790aa9234a3 -r d34d14d33a89 main.cpp --- a/main.cpp Tue Mar 31 20:03:55 2020 +0000 +++ b/main.cpp Sat Apr 04 23:49:24 2020 +0000 @@ -1,13 +1,22 @@ #include "mbed.h" +#include <iostream> #include "audio_out.h" - +#include "PinDetect.h" +#include "uLCD_4DGL.h" DigitalOut myled(LED1); +// LCD init +uLCD_4DGL guLCD(p28, p27, p29); // serial tx, serial rx, reset pin; +// Push buttons init +PinDetect pb1(p16); +PinDetect pb2(p17); +PinDetect pb3(p18); +PinDetect pb4(p19); // States -#define RESET 1 -#define STOP 2 -#define RECORD 3 -#define PLAY 4 -#define ERASE 5 +#define sRESET 1 +#define sSTOP 2 +#define sRECORD 3 +#define sPLAY 4 +#define sERASE 5 // State Machine control global variables bool X; //reset bool P; //play @@ -15,7 +24,7 @@ bool R; //record bool E; //erase -enum sm_state {sRESET,sSTOP,sRECORD,sPLAY,sERASE}; +enum sm_state {sRESET, sSTOP, sRECORD, sPLAY, sERASE}; void reset(){ @@ -63,6 +72,46 @@ */ } +void hardware_init(){ + // Push buttons init + pb1.mode(PullUp); + pb2.mode(PullUp); + pb3.mode(PullUp); + pb4.mode(PullUp); + pb1.attach_deasserted(&pb1_hit_callback); + pb2.attach_deasserted(&pb2_hit_callback); + pb3.attach_deasserted(&pb3_hit_callback); + pb4.attach_deasserted(&pb4_hit_callback); + pb1.setSampleFrequency(); + pb2.setSampleFrequency(); + pb3.setSampleFrequency(); + pb4.setSampleFrequency(); +} + +void pb1_hit_callback (void) +{ + myled1 = !myled1; + guLCD.printf("REEST"); +} + +void pb2_hit_callback (void) +{ + myled2 = !myled2; + guLCD.printf("STOP"); +} + +void pb3_hit_callback (void) +{ + myled3 = !myled3; + guLCD.printf("RECORD"); +} + +void pb4_hit_callback (void) +{ + myled4 = !myled4; + guLCD.printf("PLAY"); +} + void state_machine_mgr(){ sm_state curr_state = sRESET; while(1) { @@ -106,5 +155,6 @@ } int main() { + hardware_init(); state_machine_mgr(); }