Bonjour,
Je cherche à savoir si le reset du Watchdog du microcontrolleur de l'Arduino peut reset le millis().
Je connais une alternative pour éviter d'utiliser le millis() mais c'est une question qui m'est passé par la tête
Bonjour,
Je cherche à savoir si le reset du Watchdog du microcontrolleur de l'Arduino peut reset le millis().
Je connais une alternative pour éviter d'utiliser le millis() mais c'est une question qui m'est passé par la tête
Bonsoir,
Quel intérêt de vouloir reset millis() ?
Bonsoir,
millisStart = millis();
while ((millis() - millisStart) <= 25);
Imaginons j'atteins la fin du registre du millis() et j'ai la variable millisStart qui est égale au max càd le 2^32, je suis bloqué dans la boucle n'est-ce pas ?
Du coup, je me posais la question pour reset le millis() afin d'éviter ce léger inconvénient.
(C'est aussi parce que je suis étudiant et en posant la question à mon prof il ne pouvait pas me répondre )
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.
Merci de prendre en compte les recommandations listées dans « Les bonnes pratiques du Forum Francophone”
Non pas si vous utilisez des unsigned long
millis() va passer à zéro et tout se passera bien car la soustraction se fait en nombre entier positif et un petit moins un grand ne sera pas négatif mais bien la différence
Mais dans mon cas, si le millisStart est égale à 2^32 -2 et que millis() retombe à zéro, le programme va rester dans la boucle non ?
Oups, je suis encore nouveau sur ce genre de forum haha
Non appelons ValMax cette valeur max de millis (0xFFFFFFFF)
En nombre entier signé si vous faites
0 - ValMax ça va faire 1
1 - ValMax ça va faire 2
Etc
En gros la soustraction donne toujours la plus courte distance entre les 2 valeurs
C’est lié aux propriétés du calcul en entier positif et au modulo.
Ok, je comprends mieux.
Merci pour l'explication.
Bonne continuation
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.