Utente:Galessandroni/Utilizzo degli interrupt con Arduino
Un interrupt è un segnale inviato alla macchina, il quale indica la necessità di comunicare o fare particolari azioni da parte di una periferica. Questo segnale consente l'interruzione di ogni altro processo. Gli interrupt, stanno alla base della cosiddetta programmazione a eventi.
Mentre un programma, di norma, segue un percorso prefissato, nei programmi scritti utilizzando la tecnica a eventi il flusso del programma è largamente determinato dal verificarsi di eventi esterni. Gli interrupt sono funzionali alla macchina per capire se si è verificato o meno un evento.
Introduzione
[modifica]Nella programmazione ordinaria, Arduino esegue i suoi comandi principali all'interno di un ciclo (detto appunto loop
) che può ripetersi senza fine, o - che è lo stesso - fino allo spegnimento della macchina o alla pressione del tasto di reset
. Gli interrupt stravolgono questo paradigma, introducendo eventi che - se generati - vengono eseguiti indipendentemente da cosa sta svolgendo il programma.
Queste operazioni, si rivelano strategiche quando si devono controllare macchine di cui si vuole interrompere il normale funzionamento per svariate ragioni:
- motivi legati alla sicurezza delle persone e delle cose;
- eventi non ordinari, come il ritrarre le tende se c'è vento, anche se si stavano facendo altre azioni;
- gestire un semaforo pedonale a chiamata, senza attendere il termine di un conteggio o complicare inutilmente il codice.
Gli esempi, naturalmente, potrebbero continuare.
Nella pratica
[modifica]Nella programmazione pratica, le cose da sapere - limitatamente ad Arduino