Manco 2 gg e mi perdo queste discussioni interessanti ![]()
Togli tutte quelle digitalWrite dalla ISR così essa verrà eseguita molto più velocemente.
Poi sarebbe da capire cos'è che fa il resto del circuito, perché se non hai molte necessità potresti eliminare tutti gli altri interrupt e lasciare solo quello del timer in uso.
PS.
tornando un attimo all'inizio del thread, non è che se la CPU sta eseguendo una ISR i segnali degli interrupt in arrivo vengono accodati. Non c'è un buffer. Esistono (come qualcuno ha detto) dei bit che registrano questi interrupt. Alla fine della ISR, viene controllato che non ci sia da eseguire un'altra ISR di un interrupt arrivato nel frattempo. Il problema dei bit è che se arrivano 2 segnali dello STESSO interrupt, il micro registra solo che c'è stato un segnale, non quanti segnali sono arrivati. Per cui 3 INT0 sono registrati sempre con lo stesso bit, per cui la CPU sa solo che c'è da eseguire la relativa ISR. Non che la deve eseguire 3 volte.