millis() et noInterrupts()

Bonjour,

Je viens de perdre 2 jours à comprendre un problème dans mon projet pour m'apercevoir que:

unsigned long a;
a = millis();

ne fonctionne plus après

noInterrupts();

Quelqu'un pourrait il me le confirmer, voir me l'expliquer ?

Merci pour votre support.

Jette un œil ici (ligne 65) :

La variable timer0_millis est actualisée par une routine d'interruption.

La question qu'il faut te poser est : pourquoi utiliser noInterrupts ?
Ce n'est pas interdit mais il faut avoir une très bonne raison, et en général on le fait pendant un très court laps de temps (comme dans la fonction millis() d'ailleurs: cli()).