millis () vs création d'une variable "longue"

Je pense que mon problème ne comprend pas parfaitement le fonctionnement de la fonction millis() .

Je me demande quelle est la différence entre simplement créer une variable telle que

long fake_millis  ++ ;  

vs en utilisant millis() ?

1
millis() retourne un unsigned long, pas un long. Ce n'est jamais négatif.
ajouté l'auteur Yoni Baciu, source
Outre le problème unsigned , comment feriez-vous fake_millis ++; exactement une fois par milliseconde? Pensez-y: ce n'est pas si simple, surtout si le programme est occupé à d'autres tâches. La meilleure solution serait de le faire à partir d’une interruption de minuterie. Une fois que vous avez fait cela, vous avez essentiellement réimplémenté millis() .
ajouté l'auteur Sprogz, source

1 Réponses

millis() returns the ACTUAL time milliseconds since the start of the program. Wheter you put a delay, you do multiple tasks, millis() will still return the right time.

L’autre méthode que vous avez mentionnée ne fonctionnera pas si, par exemple, vous ajoutez un retard au programme. Ensuite, pour les tâches plus complexes qui pourraient prendre plus de temps, votre compteur "personnalisé" sera très imprécis.

Bref, utilisez simplement millis() . Il est facile à utiliser et fonctionne très bien.

P.S. Utilisez un long non signé au lieu d'un long .

2
ajouté
apprécier la réponse. Je me demande cependant pour cette formule de base où il me faut juste un "deuxième" compteur, pastebin.com/raw/ hxcVukR7 pourrais-je remplacer Millis() par ma méthode?
ajouté l'auteur user28834, source
@danieljay, pour cet exemple simple, peut-être, mais pour des programmes plus complexes, restez avec millis()
ajouté l'auteur Dat Ha, source