#ifndef __RX8025T_H__ #define __RX8025T_H__ // 时间寄存器定义 #define RTC8025_Second 0 //秒寄存器 #define RTC8025_Minute 1 //分寄存器 #define RTC8025_Hour 2 //时寄存器 #define RTC8025_Week 3 //星期寄存器 #define RTC8025_Day 4 //日寄存器 #define RTC8025_Month 5 //月寄存器 #define RTC8025_Year 6 //年寄存器 #define RTC8025_Test 7 //read&write test // 控制寄存器定义(时钟芯片型号不相同,相应的配置也是不相同的) #define RTC8025T_Extension (0x0D) // #define RX8025T_EXTEN_WADA (0x40) #define RX8025T_EXTEN_USEL (0x20) #define RX8025T_EXTEN_TE (0x10) #define RX8025T_EXTEN_FSEL_32K (0x0c) #define RX8025T_EXTEN_FSEL_1K (0x04) #define RX8025T_EXTEN_FSEL_1 (0x08) #define RX8025T_EXTEN_TSEL_MIN (0x03) #define RX8025T_EXTEN_TSEL_SEC (0x02) #define RX8025T_EXTEN_TSEL_64 (0x01) #define RX8025T_EXTEN_TSEL_4K (0x00) #define RTC8025T_Flag (0x0E) // #define RX8025T_FLAG_UF (0x20) #define RX8025T_FLAG_TF (0x10) #define RX8025T_FLAG_AF (0x08) #define RX8025T_FLAG_VLF (0x02) #define RX8025T_FLAG_VDET (0x01) #define RTC8025T_Control (0x0F) #define RX8025T_CTRL_CSEL_0S5 (0x00) #define RX8025T_CTRL_CSEL_2S0 (0x40) #define RX8025T_CTRL_CSEL_10S (0x80) #define RX8025T_CTRL_CSEL_30S (0xC0) #define RX8025T_CTRL_UIE (0x20) #define RX8025T_CTRL_TIE (0x10) #define RX8025T_CTRL_AIE (0x08) #define RX8025T_CTRL_RST (0x01) /* #define RTC8025_PON (0x10) // RTC电源失效标志位 #define RTC8025_XST (0x20) // RTC内部晶振失效标志位 // 工作模式定义 #define RTC8025_Standard_Read (0x00) //标准读模式 #define RTC8025_Simple_Read (0x04) //简单读模式 */ #pragma pack(4) typedef struct _date_time_ { uint8_t year; uint8_t month; uint8_t day; uint8_t week; uint8_t hour; uint8_t minute; uint8_t second; uint8_t pad1; }STDATETIME; #pragma pack() #pragma pack(4) typedef struct _special_flag_ { uint32_t I2C8025F; }SPECIALFLAG; #pragma pack() extern STDATETIME stDateTime; void Get8025( uint8_t addr, uint8_t *data, uint8_t counter); void Set8025( uint8_t addr, uint8_t *data, uint8_t counter); void Init8025(void); void RtcSetDateTime(STDATETIME *pTime); void RtcSetLocalTime(void); void UpdateDateTime(void); uint8_t TestDevice(void); #endif