feat: 校准电池电压与ADC2充电检测,重构RGB为Bitbang翻转驱动,并修复RTC晶振起振问题
This commit is contained in:
59
Drivers/pcf8563.h
Normal file
59
Drivers/pcf8563.h
Normal file
@@ -0,0 +1,59 @@
|
||||
#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)
|
||||
* @return bit 1: 读取成功, 0: 通讯失败
|
||||
*/
|
||||
bit PCF8563_ReadTime(u8 *hour, u8 *min, u8 *sec);
|
||||
|
||||
/**
|
||||
* @brief 将指定的时间 (时、分、秒) 写入 PCF8563 芯片
|
||||
* @param hour 小时 (0~23)
|
||||
* @param min 分钟 (0~59)
|
||||
* @param sec 秒钟 (0~59)
|
||||
* @return bit 1: 写入成功, 0: 通讯失败
|
||||
*/
|
||||
bit PCF8563_WriteTime(u8 hour, u8 min, u8 sec);
|
||||
|
||||
/**
|
||||
* @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__
|
||||
Reference in New Issue
Block a user