#include /*! Clib7Seg Classe pour la gestion de l'afficheur 7 segments multiplexé */ class Clib7Seg { public: /*! Clib7Seg() constructeur sans paramètre qui utilise des broches par défaut et une taille d'afficheur fixe */ Clib7Seg(); /*! Clib7Seg(byte numDigitsInit,byte * digitPinsInit, byte numSegmentsInit, byte * segmentPinsInit); constructeur avec des paramètres qui permet de configurer les broches utilisées ainsi que le nombre de digits */ Clib7Seg(byte numDigitsInit,byte * digitPinsInit, byte numSegmentsInit, byte * segmentPinsInit); /*! void setNumber(unsigned int val); demande de mise à jour de la valeur numérique affichée à partir du paramètre entier val. */ void setNumber(unsigned int val); /*! void setDots(unsigned char val); demande de mise à jour de la valeur affichée pour les points. val est une valeur dont le bit 0 pilote le point de digit de gauche, et chacun des bits suivants pilote le point du digit suivant. */ void setDots(unsigned char val); /*! void refresh(); demande de rafaichissement de l'affichage pour effectuer le balayage. Cette méthode doit être appelée suffisament fréquemment pour que le balayage ne soit pas perçu par l'oeil. Elle peut être appelée dans une tache périodique utilisant un timer par scrutation ou dans une routine d'interruption timer matériel val est une valeur dont le bit 0 pilote le point de digit de gauche, et chacun des bits suivants pilote le point du digit suivant. */ void refresh(); /*! setNumberFloatAbs(float floatAbs); IMPLEMENTATION SUR 4 DIGITS SEULEMENT demande de mise à jour de la valeur numérique affichée à partir du paramètre entier floatAbs. C'est la valeur absolue de floatAbs qui est affichée. Le point est positionné automatiquement et en cas de dépassement de la valeur par rapport à la capacité d'affichage, des chiffres E sont affichés. */ void setNumberFloatAbs(float floatAbs); private: //! nombre de digits de l'afficheur byte numDigits; /*! liste des broches utilisées pour les digits pointeur vers un tableau alloué dans le constructeur plutot qu'un tableau, utilise un pointeur pour gérer une taille variable*/ byte *digitPins; //! nombre de segments de l'afficheur (doit être 8) byte numSegments; /*! liste des broches utilisées pour les segments pointeur vers un tableau alloué dans le constructeur plutot qu'un tableau, utilise un pointeur pour gérer une taille variable*/ byte *segmentPins; //! masque de bits pour gérer jusqu'à 8 points byte dots; /*! stockage des chiffre à afficher sur les digits de l'afficheur pointeur vers un tableau alloué dans le constructeur*/ byte *digits; //! méthode de pilotage individuel des digits, appelée par refresh() void setDigitHAL(unsigned char nDigitActif,unsigned char nSegsActif); //! méthode contenant les initialisations communes aux différents constructeurs void init(); };