Files
RC/RTC.h
2025-10-21 20:34:06 +08:00

64 lines
1.4 KiB
C

#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