
Perform an LED toggle by interrupt over an existing sequence. PRints out to LCD upon occurence of interrupt.
Revision 0:d2238a225cb8, committed 2020-07-31
- Comitter:
- saltire78
- Date:
- Fri Jul 31 12:45:22 2020 +0000
- Commit message:
- online posting
Changed in this revision
diff -r 000000000000 -r d2238a225cb8 C12832.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/C12832.lib Fri Jul 31 12:45:22 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/askksa12543/code/C12832/#990d5eec2ef6
diff -r 000000000000 -r d2238a225cb8 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Jul 31 12:45:22 2020 +0000 @@ -0,0 +1,41 @@ +#include"mbed.h" // mbed header +#include "C12832.h" // lcd header + +InterruptIn joystickcenter(p14); // initialise interrupt pin on pcb +InterruptIn button(p9); // initialise external interrupt pin +DigitalOut led(LED1); // initialise interrupt led +DigitalOut flash(LED4); // initialise main program led +C12832 lcd(p5, p7, p6, p8, p11); // initialise lcd +Timer debounce; // create debouce timer variable +int state; // create interrupt activation variable +int i=0; // create interrupt activation iterable variable + +void flip(){ + debounce.start(); // start the timer + led=!led; // toggles the led when the joystick button is pressed. + state= 1; // changes global variable when interrupt activated + if (debounce.read_ms() >= 500){ // determine the timer limits - greater than or equal incase the exact count was missed by timer + debounce.reset(); // reset the timer for the next use + } + +} + +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){ //continuous run + if (state == 1){ // if interrupt activated + i++; // iterate the variable i + lcd.locate(0,0); // home the lcd + lcd.printf("Interrupt Activated x %d", i); // add lcd text + state = 0; // reset the state variable from the interrupt + } + else // normal operation + { + flash=!flash; // turns LED4 on ifoff, off if on + wait(0.25); // the instruction to wait for a quarter-second + } + } +}
diff -r 000000000000 -r d2238a225cb8 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Jul 31 12:45:22 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file