#ifndef _RTC_H_ #define _RTC_H_ //#define _nop_() udelay(1); #define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();} extern unsigned char bySta; // 假设 BM8563 的 I2C 地址 #define BM8563_ADDR 0xA2 // 假设 BM8563 寄存器地址 #define BM8563_CSR2 0x01 #define BM8563_SEC 0x02 #define BM8563_MIN 0x03 #define BM8563_HOUR 0x04 #define BM8563_DAY 0x05 #define BM8563_WEEK 0x06 #define BM8563_MONTH 0x07 #define BM8563_YEAR 0x08 #define BM8563_ALARM_MIN 0x09 #define BM8563_ALARM_HOUR 0x0A #define BM8563_ALARM_DAY 0x0B #define BM8563_ALARM_WEEK 0x0C #define BM8563_CONTROL 0x0E // 定时器控制寄存器 #define BM8563_STATUS 0x01 #define BM8563_TIMER_VALUE 0x0F // 定时器计数寄存器 void BM8563_InitTime(); void BM8563_Set4HourCountdown(); unsigned char BM8563_ReadReg(unsigned char reg); void BM8563_WriteReg(unsigned char reg, unsigned char rdata); void BM8563_Set4HourAlarm(); void iic_start(void); void iic_stop(void); void iic_ack(bit ackbit); void iic_sendbyte(unsigned char byt); void wrbyte_24c02(unsigned int add,unsigned char dat); bit iic_waitack(void); unsigned char i2c_recbyte(void); unsigned char rdbyte_24c02(unsigned int add); unsigned char wrEE_CRC_Bak(unsigned char add,unsigned char *eeData,unsigned char len,unsigned char addbak); unsigned char rdEE_CRC_Bak(unsigned char add,unsigned char *eeData,unsigned char len,unsigned char addbak); #endif