Étape 1: Bibliothèque DS1302.h
/*
DS1302.h - soutien bibliothèque Arduino pour la puce de chronométrage de courant de Charge de DS1302
Copyright (C) 2010 Henning Karlsen. Tous droits réservés
Vous pouvez trouver la dernière version de la bibliothèque à
http://www.henningkarlsen.com/Electronics
Cette bibliothèque a été déposée auprès de l’interface facilement et utiliser le RTC DS1302 avec
l’Arduino.
Si vous apportez des modifications ou des améliorations au code, je vous serais reconnaissant
que vous partagez le code avec moi afin que je pourrais inclure dans la prochaine version.
Je peux être contacté par le biais de http://www.henningkarlsen.com/electronics/contact.php
Cette bibliothèque est un logiciel libre ; vous pouvez le redistribuer et/ou
modifier selon les termes de la GNU Lesser Grand Public
License telle que publiée par la Free Software Foundation ; ou l’autre
version 2.1 de la licence, ou (à votre choix) toute version ultérieure.
Cette bibliothèque est distribuée dans l’espoir qu’il sera utile,
mais sans aucune garantie ; sans même la garantie implicite de
Qualité marchande ou ADEQUATION a un usage particulier. Voir la GNU
Lesser General Public License pour plus de détails.
Vous devriez avoir reçu une copie de la GNU Lesser Grand Public
License along with this library ; Si tel n’est pas le cas, écrivez à la Free Software
Foundation, Inc., 51 Franklin St, 5ème étage, Boston, MA 02110-1301 USA
*/
#ifndef DS1302_h
#define DS1302_h
#if defined(ARDUINO) & & ARDUINO > = 100
#include « Arduino.h »
#else
#include « WProgram.h »
#endif
#define FORMAT_SHORT 1
#define FORMAT_LONG 2
#define FORMAT_LITTLEENDIAN 1
#define FORMAT_BIGENDIAN 2
#define FORMAT_MIDDLEENDIAN 3
#define lundi 1
#define mardi 2
#define mercredi 3
#define jeudi 4
#define vendredi 5
#define samedi 6
#define dimanche 7
#define TCR_D1R2K 165
#define TCR_D1R4K 166
#define TCR_D1R8K 167
#define TCR_D2R2K 169
#define TCR_D2R4K 170
#define TCR_D2R8K 171
#define TCR_OFF 92
Temps de classe
{
public :
uint8_t heure ;
uint8_t min ;
uint8_t s ;
date d’uint8_t ;
uint8_t Lun ;
uint16_t année ;
uint8_t dow ;
Time() ;
};
classe DS1302_RAM
{
public :
cellule octets [31] ;
DS1302_RAM() ;
};
classe DS1302
{
public :
DS1302 (uint8_t ce_pin, uint8_t data_pin, uint8_t sclk_pin) ;
Temps getTime() ;
void setTime (uint8_t heure, min uint8_t, uint8_t sec) ;
void setDate (uint8_t date, uint8_t Lun, uint16_t année) ;
void setDOW(uint8_t dow) ;
char * getTimeStr (uint8_t format = FORMAT_LONG) ;
char * getDateStr (uint8_t slformat = FORMAT_LONG, uint8_t eformat = FORMAT_LITTLEENDIAN, diviseur de char ='. ') ;
char * getDOWStr (uint8_t format = FORMAT_LONG) ;
char * getMonthStr (uint8_t format = FORMAT_LONG) ;
Sub halt (Boolean value) ;
void writeProtect (Boolean enable) ;
void setTCR (valeur uint8_t) ;
void writeBuffer (DS1302_RAM r) ;
DS1302_RAM readBuffer() ;
Sub poke (addr uint8_t, uint8_t value) ;
uint8_t peek (addr uint8_t) ;
privé :
uint8_t _ce_pin ;
uint8_t _data_pin ;
uint8_t _sclk_pin ;
uint8_t _burstArray [8] ;
uint8_t _readByte() ;
void _writeByte (valeur uint8_t) ;
uint8_t _readRegister (uint8_t reg) ;
void _writeRegister (uint8_t reg, uint8_t value) ;
void _burstRead() ;
uint8_t _decode (valeur uint8_t) ;
uint8_t _decodeH (valeur uint8_t) ;
uint8_t _decodeY (valeur uint8_t) ;
_encode uint8_t (uint8_t vaule) ;
};
#endif