Interrupt to switch ON/OFF LED depending on Button Status
Dependencies: mbed
LED-Button-Interrupt.cpp
- Committer:
- pinofal
- Date:
- 2018-05-07
- Revision:
- 2:932543952437
File content as of revision 2:932543952437:
#include "mbed.h" // inizializza oggetti InterruptIn myButton(USER_BUTTON); DigitalOut myLed(LED1); // dichiara variabile. Inizialmente delay lunghissimo double dDelay = 2000; // 2 sec /*************************************************************/ /* Routine di gestione Interrupt associata al button pressed */ /*************************************************************/ void pressedIRQ() { // assegna valore alla variabile dDelay che sarà poi usata nel Main per generare un ritardo dDelay = 100; // 100 ms } /**************************************************************/ /* Routine di gestione Interrupt associata al button released */ /**************************************************************/ void releasedIRQ() { // assegna valore alla variabile dDelay che sarà poi usata nel Main per generare un ritardo dDelay = 500; // 500 ms } /********/ /* MAIN */ /********/ int main() { // Associa routine di Interrup all'evento Button premuto myButton.fall(&pressedIRQ); // Ogni volta che premo Button viene richiamata la routine pressedIRQ // Associa routine di Interrup all'evento Button rilasciato myButton.rise(&releasedIRQ); // POLLING: accende/spegne il LED con un ritardo diverso a seconda che sia premuto/rilasciato il pulsante while (true) { // accende/spegne il LED myLed = !myLed; // Il delay dipende dalla posizione Pressed/Released del pulsante wait_ms(dDelay); // posso aumentare la precisione del ritardo impostandolo in usec //wait_us(dDelay); } }