ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Diff: main.cpp
- Revision:
- 20:8c3644bf5d28
- Parent:
- 19:f76e4ffddbe1
- Child:
- 21:a279bb16a37b
--- a/main.cpp Sat Apr 04 23:51:19 2020 +0000 +++ b/main.cpp Sun Apr 05 05:36:12 2020 +0000 @@ -1,14 +1,21 @@ #include "mbed.h" +#include <iostream> #include "audio_out.h" -#include "motor_ctl.h" - -DigitalOut myled(LED1); +#include "PinDetect.h" +#include "uLCD_4DGL.h" +DigitalOut myled1(LED1); +DigitalOut myled2(LED2); +DigitalOut myled3(LED3); +DigitalOut myled4(LED4); +// 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 + // State Machine control global variables bool X; //reset bool P; //play @@ -16,7 +23,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(){ @@ -64,6 +71,47 @@ */ } + + +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 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 state_machine_mgr(){ sm_state curr_state = sRESET; while(1) { @@ -107,7 +155,6 @@ } int main() { - //state_machine_mgr(); - //motor_ctl(); - record_and_play(); + hardware_init(); + state_machine_mgr(); }