Files
stc32g128k/Drivers/pcf8563.h

67 lines
2.4 KiB
C
Raw Normal View History

#ifndef __PCF8563_H__
#define __PCF8563_H__
#include "../App/config.h"
/* ====== PCF8563 器件地址与寄存器定义 ====== */
#define PCF8563_ADDR_READ 0xA3 // PCF8563 读地址 (0xA2 | 0x01)
#define PCF8563_ADDR_WRITE 0xA2 // PCF8563 写地址 (0xA2)
#define REG_CTRL_STATUS1 0x00 // 控制/状态寄存器 1
#define REG_CTRL_STATUS2 0x01 // 控制/状态寄存器 2
#define REG_VL_SECONDS 0x02 // 秒寄存器 (bit7 为 VL 保证标志)
#define REG_MINUTES 0x03 // 分钟寄存器
#define REG_HOURS 0x04 // 小时寄存器
#define REG_DAYS 0x05 // 日寄存器
#define REG_WEEKDAYS 0x06 // 星期寄存器
#define REG_MONTHS 0x07 // 月份寄存器 (bit7 为 C 世纪位)
#define REG_YEARS 0x08 // 年份寄存器
/**
* @brief PCF8563 RTC
* @details I2C
* @return bit 1: , 0:
*/
bit PCF8563_Init(void);
/**
* @brief PCF8563 (/////)
* @param hour (0~23)
* @param min (0~59)
* @param sec (0~59)
* @param day (1~31)
* @param month (1~12)
* @param year (0~99 2000~2099)
* @return bit 1: , 0:
*/
bit PCF8563_ReadDateTime(u8 *hour, u8 *min, u8 *sec, u8 *day, u8 *month, u8 *year);
/**
* @brief PCF8563
* @param hour (0~23)
* @param min (0~59)
* @param sec (0~59)
* @param day (1~31)
* @param month (1~12)
* @param year (0~99 2000~2099)
* @param weekday (0~6)
* @return bit 1: , 0:
*/
bit PCF8563_WriteDateTime(u8 hour, u8 min, u8 sec, u8 day, u8 month, u8 year, u8 weekday);
/**
* @brief I2C 线
* @details I2C 线
*/
void PCF8563_ScanDiagnostic(void);
/**
* @brief RTC ACK
*/
bit PCF8563_TryReadDiagnostic(void);
// 动态引脚对调标志 (由 pcf8563.c 维护0: 默认, 1: 互换)
extern volatile u8 i2c_swapped;
#endif // __PCF8563_H__