Bonjour
Petite librairie facile d'utilisation, pour ceux qui ont du remettre à l'heure leur DS1307 ou leur DS3231 le week end dernier
La gestion des heures d'été / hiver est intégrée à la librairie, et calée sur l'heure de France Métropolitaine.
Les changements d'heure sont automatiques.
De surcroît, la librairie facilite la mise à jour par protocole NTP ou par protocole DCF77.
Voir aussi les exemples fournis
Header
class simpleRTC
{
public :
//Principales méthodes d'accès au circuit externe
//Retournent true si accès ok, false sinon
bool actualiser();
//Actualisation des variables privées par lecture du circuit externe.
//Idéalement : à exécuter une fois par seconde
bool regler(uint8_t annee, uint8_t mois, uint8_t jour, uint8_t heure, uint8_t minute, uint8_t seconde);
//Mise à jour à partir de valeurs date heure locales
//Méthodes constantes pour consultation de l'horloge
uint8_t annee() const {return this->_annee;}
uint8_t mois() const {return this->_mois;}
uint8_t jour() const {return this->_jour;}
uint8_t jourSemaine() const {return this->_joursem;} //0 dimanche, 1 lundi, 2 mardi, ...
uint8_t heure() const {return this->_heure;}
uint8_t minute() const {return this->_minute;}
uint8_t seconde() const {return this->_seconde;}
bool heureEte() const {return this->_ete;} //Permet de savoir si on est en heures d'été ou d'hiver
//Méthodes secondaires
//Retournent true si accès ok, false sinon
bool reglerUTC(uint8_t annee, uint8_t mois, uint8_t jour, uint8_t heure, uint8_t minute, uint8_t seconde);
//Mise à jour à partir de valeurs date heure UTC
bool reglerNTP(uint32_t temps_unix);
//Mise à jour dans le cadre d'une synchro NTP (secondes écoulées depuis le 01/01/1970 00:00:00 UTC)
bool reglerDCF77(uint8_t annee, uint8_t mois, uint8_t jour, uint8_t heure, uint8_t minute, bool ete);
//Mise à jour dans le cadre d'une synchro DCF77 (signal radio heure locale + indic heure d'été)
uint8_t anneeUTC() const {return this->_anneeUTC;}
uint8_t moisUTC() const {return this->_moisUTC;}
uint8_t jourUTC() const {return this->_jourUTC;}
uint8_t heureUTC() const {return this->_heureUTC;}
private :
void _memoriser(uint8_t annee, uint8_t mois, uint8_t jour, uint8_t heure);
uint8_t _annee, _mois, _jour, _joursem, _heure, _minute, _seconde;
uint8_t _anneeUTC, _moisUTC, _jourUTC, _heureUTC;
bool _ete;
};
simpleRTC.zip (12.6 KB)