##// END OF EJS Templates
update de firmware timegine. RTC terminado
update de firmware timegine. RTC terminado

File last commit:

r196:197
r196:197
Show More
rtc1308.h
64 lines | 2.2 KiB | text/x-c | CLexer
/*
* rtc1308.h
*
* Created on: Nov 4, 2014
* Author: Alan Aguilar Sologuren
*/
#ifndef RTC1308_H_
#define RTC1308_H_
#include <Arduino.h>
#include <pins_arduino.h>
#include <Wire.h>
#include <Time.h>
#include <te_structs.h>
extern void ISR_gnss_pps(void);
#define DS1308_CTRL_ID 0x68
#define DS1308_RAM_BASE 0x08 /*!< Direccion base de la memoria RAM */
#define DS1308_RAM_MAX 0x37 /*!< Direccion del final de la RAM */
#define DS1308_RAM_REGS (DS1308_RAM_MAX - DS1308_RAM_BASE + 1)
#define DS1308_SEC_ADD 0x00 /*!< Direccion de registro de configuracion de segundos */
#define DS1308_MIN_ADD 0x01 /*!< Direccion de registro de configuracion de minutos */
#define DS1308_HOU_ADD 0x02 /*!< Direccion de registro de configuracion de horas */
#define DS1308_DOW_ADD 0x03 /*!< Direccion de registro de configuracion de dia de la semana */
#define DS1308_DAT_ADD 0x04 /*!< Direccion de registro de configuracion de dia del mes */
#define DS1308_MON_ADD 0x05 /*!< Direccion de registro de configuracion de mes */
#define DS1308_YEA_ADD 0x06 /*!< Direccion de registro de configuracion de ahno */
#define DS1308_CTL_ADD 0x07 /*!< Direccion de registro de control */
#define OUT 7 /*!< Bit 7 en DS1308_CTL_ADD */
#define ECLK 6 /*!< Bit 6 en DS1308_CTL_ADD */
#define OSF 5 /*!< Bit 5 en DS1308_CTL_ADD */
#define SQWE 4 /*!< Bit 4 en DS1308_CTL_ADD */
#define LOS 3 /*!< Bit 3 en DS1308_CTL_ADD */
#define BBCLK 2 /*!< Bit 2 en DS1308_CTL_ADD */
#define RS1 1 /*!< Bit 1 en DS1308_CTL_ADD */
#define RS0 0 /*!< Bit 0 en DS1308_CTL_ADD */
//pin ports
#define CLKIN 38 /*!< internal PPS output PD7 AVR <> 38 ARDUINO MEGA */
#define PPS 0 /*|< GNSS receptor PPS signal interrupt int0, port 2 (Arduino i/o), pe4 (avr i/o) */
uint8_t te_rtc_write_reg(uint8_t regaddr, uint8_t *ptrvalues, uint8_t nregs);
uint8_t te_rtc_read_reg(uint8_t regaddr, uint8_t *ptrvalues, uint8_t nregs);
bool te_rtc_initialization(void);
bool te_rtc_configure(rtc_config_struct &rtc);
bool te_rtc_activate_pps(bool actv);
bool te_rtc_set_date_time(gnss_precise_time &gt);
bool te_rtc_read_date_time(gnss_precise_time &gt);
// TODO a utils
inline uint8_t dec2bcd(uint8_t val);
inline uint8_t bcd2dec(uint8_t val);
#endif /* RTC1308_H_ */