Articles

Affichage des articles associés au libellé ClockTime

Projet Réveil-Matin (partie X) - Amélioration de la classe ClockTime

Image
Dans l'article consacré à la classe ClockTime , il avait été mis en évidence la limite de fonctionnement de la fonction millis() , utilisée pour mesurer le temps écoulé, du fait que la valeur exprimée en millisecondes de celle-ci est codée sur un entier long non signé (sur 32 bits). De ce fait elle ne fonctionne que 49 j 17 h 8mn et 47,295 s (temps correspondant à la valeur 0xFFFFFFFF  millisecondes). Si on veut mesurer le temps écoulé sur un intervalle de temps plus important, il faut procéder par une astuce consistant à programmer une fonction renvoyant une valeur entière non signée sur un nombre de bits lus important. Encore faudrait-il disposer d'un type de données permettant de manipuler des entiers sur 64 bits. Car, d'un façon inexpliquée, le type uint64_t ou long long ou double long ne fonctionne pas sur toutes les versions d'Arduino. Sans doute est-ce dû à la limite des registres du processeur utilisé. Dans les applications scientifiques, en astronomie...

Projet Réveil-Matin (partie VI) - Générateur de tics (classe ClockTime)

Image
Dans l'article précédent, une classe Time avait été présentée. Cette classe permet de manipuler le concept d'heure dans les programmes C++. Mais la classe Clock nécessite également d'un générateur de tics qui permette d'afficher l'heure courante, qui change toutes les secondes, sur un dispositif d'affichage. De plus, la valeur de ce générateur de tics doit pouvoir être comparée avec des objets Time pour déclencher certaines actions particulières, comme par exemple, le signal d'alarme lorsque l'heure courante est égale à l'heure de déclenchement. Ce qui implique que la classe du générateur de tics, appelons-la ClockTime , doit dériver la classe Time pour que cette comparaison soit possible, grâce à la surcharge de l'opérateur == surchargé dans cette dernière. L'objet de cet article est de présenter cette nouvelle classe ClockTime , telle qu'elle sera utilisée dans le projet Horloge. Comme pour la classe Time , un fichier ClockTim...