4 Anni 5 Mesi fa #7
da Mauro Laurenti
Effettivamente quello che hai trovato è la soluzione.
Molti non vedono il problema quando fai uso di più pin, visto che sei obbligato a leggere la PORTB per vedere chi ha generato l'interrupt.
La ragione sta nel fatto che l'interrupt on change fa uso di un registro per confrontare il suo valore con PORTB.
Questo registro viene aggiornato solo con la lettura della PORTB.
Per cui se non lo aggiorni trova sempre la differenza...
Quindi viene generato un nuovo interrupt.
Questa problematica è vera anche per altri microcontrollori che hanno interrupt on change sui pin e un interrupt vector unico per eventi multipli (più pins).
Saluti,
Mauro
Ringraziano per il messaggio: stefanelli
Si prega Accedi o Crea un account a partecipare alla conversazione.