ECE3872 HW/SW Project Code

Dependencies:   mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1

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();
 }