Sketch controllo encoder con interrupt - ho bisogno di chiarimenti

PERO', stiamo lavorando su Arduino, ed il core di Arduino attiva gli interrupt globali SEMPRE perché da essi dipendono componenti fondamentali per il suo funzionamento. Come la seriale. O come delay(). Quindi è un problema che si pone il giusto, se ragioniamo di Arduino. Se invece parliamo di un altro ambiente, allora le cose possono cambiare.

mmmm...si e no, più che si, in ogni caso non ti dimenticare di questa cosa, potrebbe esserti di aiuto.

Anche per arduino ci sono RTOS e lo switch context con gli interrupt di abilitati non si fa.
Il C è statico, tuttavia non è detto che non si possa creare codice che si comporta dinamicamente e qui conviene
salvare SREG o usare la macro. Pensa ad un array di puntatori a funzione, ogni funzione può modificare i puntatori, ne viene fuori che in base alla evoluzione dinamica del codice si chiamerà una funzione anziché un'altra e chi mi dice che la funzione che mi ha chiamato ha disabilitato gli interrupt a fatto qualcosa e poi mi ha chiamato e io che sono la funzione chiamata ho porzioni di codice che devo eseguire atomicamente e non posso disabilitare e riabilitare gli interrupt devo salvare lo stato, altrimenti alla funzione che mi ha chiamato gli restituisco il controllo con gli interrupt abilitati. ps: ho preso le sembianze di una funzione, terrificante.

Forse messa in questi termini ti fa più simpatia salvare lo stato:
Onde evitare che il programma costato mal di testa si comporti correttamente ora si ora no, ti metti al sicuro e salvi sempre lo stato, cioè la prendi come buona e saggia abitudine, in questo modo quando ti ritroverai potenzialmente nelle condizioni di introdurre side effect, la ATOMIC.... ti salva.

Ciao.