IT Tralee Life Long Learning 2020 Instrumentation, Monitoring and Control Module Laboratory Session

Dependencies:   mbed C12832

Revision:
0:d13a1b0d344f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LAB_2.3.1.cpp	Mon Jul 27 20:23:56 2020 +0000
@@ -0,0 +1,40 @@
+#include "mbed.h"
+#include "C12832.h"
+
+InterruptIn joystickcenter(p14);
+InterruptIn button(p9);
+DigitalOut led(LED1);
+DigitalOut flash(LED4);
+C12832 lcd(p5, p7, p6, p8, p11);
+int x;
+Timer debounce;
+float t=3000.0;
+
+void flip() {
+    led = !led;                     // toggles the led when the joystick button is pressed.
+    debounce.start();               // starts the timer the first time that the flip function is triggered.
+        if (debounce.read_ms()>=t){ // compares the timer value to t
+        x=1;                        // variable x set to 1 if the timer condition is met
+        debounce.reset();           // reset the timer if the condition is met.
+    }
+}
+
+int main() {
+    
+    joystickcenter.rise(&flip);     // attach the function address to the rising edge
+    button.mode(PullUp);            // With this, no external pullup resistor needed
+    button.rise(&flip);             // attach the function address to the rising edge
+        
+        while(1) {                  // wait around, interrupts will interrupt this!
+        flash = !flash;             // turns LED4 on if off, off if on
+        wait(0.25);                 // the instruction to wait for a quarter-second
+            
+            if(x==1){               // Check if the variable has been set and if so displays a message on the LCD
+            lcd.locate(0,10);
+            lcd.printf("Varialble SET!");
+            wait(0.5); 
+            lcd.cls();              //Clears out the LCD
+            x=0;                    //Set the variable back to 0
+        }
+    } 
+}
\ No newline at end of file