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

Dependencies:   mbed C12832

LAB_2.3.1.cpp

Committer:
alejandromontes
Date:
2020-07-27
Revision:
0:d13a1b0d344f

File content as of revision 0:d13a1b0d344f:

#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
        }
    } 
}