Interrupt falling e rising stesso pin

Ciao a tutti vorrei fare un circuito che legge dei sensori che mi servono per mantenere un oggetto in posizione diciamo una specie di encoder a 2 canali pensavo di usare un nano e collegare i 2 canali sui pin 2 e 3 per sfruttare gli interrupt la mia domanda prima di mettere in moto il tutto è posso usare nello sketch gli interrupt falling e rising Di entrambe i pin in modo da poter eseguire 4 differenti operazioni in funzione di quale fronte arriva?
Ho dato un occhiata in rete ma ho trovato ben poco, Avevo anche pensato di creare due variabili booleane e usando l’evento change invertirne il valore ma preferirei essere sicuro della direzione del fronte.

Usi la modalità CHANGE (che è fatta apposta per rilevare le due variazioni) e, nel momento in cui entri nella ISR, come prima cosa leggi il pin ... se è HIGH è un RISING, se LOW è un FALLING :wink:

Se ti serve una cosa velocissima (parliamo nell'ambito delle decine di nsec), invece di usare la digitalRead(), usi la lettura del pin con accesso diretto alla porta tramite la PINx.

Guglielmo

Ciao vedo che hai capito al volo il perché volevo usare i due eventi e cioè la velocità di lettura...
Non ho mai sentito parlare dell’accesso diretto, non è che mi potresti fare un esempio?

Più che altro ti consiglio una lettura (in Italiano) ... QUI :wink:

Guglielmo

P.S.: però ripeto ... diventa obbligatorio quando si lavora con tempo di decine di nsec ... e non credo sia il tuo caso ... ::slight_smile: