leo72:
Aspetta, specifico una cosa.
Millis è una funzione che restistuisce i millisecondi trascorsi dall'avvio dell'Arduino. Questo conteggio è fatto tramite l'aggiornamento in automatico di una variabile a 32 bit aggiornata ogni 1 ms da un contatore interno del microcontrollore.Quando tu usi l'interrupt, puoi leggere lo stato di quella variabile, ma è ovvio che non venga più incrementata. Quindi codici tipo
if (millis()>xxxxx) {...}
non funzioneranno all'interno di una routine di gestione dell'interrupt ma potrai comunque sempre assegnare la lettura di millis ad una variabile globale per registrare l'istante di attivazione dell'interrupt.
Oppure puoi mettere in sleep il micro e mettere una funzione di gestione dell'interrupt vuota, così da usare l'interrupt solo per risvegliare il micro e poi, nel punto del codice da dove riprende l'esecuzione, mettere i calcoli su millis.
Ah! Penso di aver capito, ora provo a fare qualcosina ![]()
Grazie mille ![]()