Paso 1: Biblioteca DS1302.h
/*
DS1302.h - soporte de biblioteca de Arduino para el Chip de cronometraje de carga DS1302
Copyright (C) 2010 Henning Karlsen. Todos los derechos reservados
Usted puede encontrar la versión más reciente de la biblioteca
http://www.henningkarlsen.com/Electronics
Esta biblioteca se ha hecho fácil interfaz y utilizar el DS1302 RTC con
el Arduino.
Si haces modificaciones ni mejoras en el código, te lo agradeceria
que compartes el código conmigo para que yo podría incluir en la próxima versión.
Yo puedo ser contactado a través de http://www.henningkarlsen.com/electronics/contact.php
Esta biblioteca es software libre; Usted puede redistribuirlo y/o
modificar bajo los términos de la GNU menor General pública
Licencia publicada por la Free Software Foundation; cualquiera de los dos
versión 2.1 de la licencia o (a su opción) cualquier versión posterior.
Esta biblioteca se distribuye con la esperanza de que sea útil,
pero sin ninguna garantía; ni siquiera la garantía implícita de
COMERCIABILIDAD o aptitud para un propósito PARTICULAR. Ver la GNU
Lesser General Public License para más detalles.
Usted debe han recibido una copia de la GNU menor General pública
Licencia junto con esta biblioteca; Si no, escriba a la Free Software
Foundation, Inc., 51 Franklin St, quinto piso, 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 el lunes 1
#define el martes 2
#define el miércoles 3
#define el jueves 4
#define el viernes 5
#define el sábado 6
#define el domingo 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
la clase tiempo
{
público:
hora de uint8_t;
min de uint8_t;
sec de uint8_t;
fecha de uint8_t;
uint8_t mon;
año de uint16_t;
uint8_t dow;
Marca_de_tiempo;
};
clase DS1302_RAM
{
público:
célula de Byte [31];
DS1302_RAM();
};
clase DS1302
{
público:
DS1302 (uint8_t ce_pin, data_pin de uint8_t, uint8_t sclk_pin);
GetTime() de tiempo;
void setTime (uint8_t hora, uint8_t min, sec de uint8_t);
void setDate (uint8_t, uint8_t Lun, uint16_t año);
void setDOW(uint8_t dow);
char * getTimeStr (formato de uint8_t = FORMAT_LONG);
char * getDateStr (uint8_t slformat = FORMAT_LONG, eformat de uint8_t = FORMAT_LITTLEENDIAN, divisor de char ='. ');
char * getDOWStr (formato de uint8_t = FORMAT_LONG);
char * getMonthStr (formato de uint8_t = FORMAT_LONG);
void frenar (bool valor);
void writeProtect (bool habilitar);
void setTCR (uint8_t valor);
void writeBuffer (DS1302_RAM r);
ReadBuffer() de DS1302_RAM;
void poke (uint8_t addr, uint8_t valor);
OJEADA de uint8_t (uint8_t addr);
privado:
_ce_pin de uint8_t;
_data_pin de uint8_t;
_sclk_pin de uint8_t;
_burstArray de uint8_t [8];
_readByte() de uint8_t;
void _writeByte (uint8_t valor);
_readRegister de uint8_t (uint8_t reg);
void _writeRegister (reg de uint8_t, uint8_t valor);
void _burstRead();
_decode de uint8_t (uint8_t valor);
_decodeH de uint8_t (uint8_t valor);
_decodeY de uint8_t (uint8_t valor);
_encode de uint8_t (uint8_t vaule);
};
#endif