docs: restructure framework, extract app execution module, group event collection & align GPIOs
This commit is contained in:
@@ -73,12 +73,12 @@ u32 Get_Bracelet_Factory_ID(void) {
|
||||
```
|
||||
|
||||
### 2.4 电池采样与充电状态读取实现
|
||||
在系统模块中,通过硬件 ADC 通道 9 (P2.1) 和数字 I/O (P2.2) 采集电池状态:
|
||||
在系统模块中,通过硬件 ADC 通道 8 (P0.0) 和数字 I/O (P2.7) 采集电池状态:
|
||||
|
||||
1. **ADC 初始化 (ADC_Init)**:
|
||||
```c
|
||||
void ADC_Init(void) {
|
||||
P2M1 |= 0x02; P2M0 &= ~0x02; // P2.1 (Pin 22 / BAT_ADC) 配置为高阻输入 (模拟输入模式)
|
||||
P0M1 |= 0x01; P0M0 &= ~0x01; // P0.0 (Pin 29 / BAT_ADC) 配置为高阻输入 (模拟输入模式)
|
||||
ADCCFG = 0x2F; // RESFMT = 1 (右对齐)
|
||||
ADC_CONTR |= 0x80; // 打开 ADC 电源 (ADC_POWER = 1)
|
||||
}
|
||||
@@ -87,7 +87,7 @@ void ADC_Init(void) {
|
||||
2. **读取采样数据与电量百分比计算**:
|
||||
```c
|
||||
u16 Get_ADC_Result(u8 channel) {
|
||||
ADC_CONTR = 0x80 | channel; // 开启电源并选择通道 (channel = 9 对应 P2.1)
|
||||
ADC_CONTR = 0x80 | channel; // 开启电源并选择通道 (channel = 8 对应 P0.0)
|
||||
_nop_(); _nop_();
|
||||
ADC_CONTR |= 0x40; // 启动 ADC 转换 (ADC_START = 1)
|
||||
while (!(ADC_CONTR & 0x20)); // 等待转换完成 (ADC_FLAG)
|
||||
@@ -96,7 +96,7 @@ u16 Get_ADC_Result(u8 channel) {
|
||||
}
|
||||
|
||||
u8 Read_Battery_Percent(void) {
|
||||
u16 adc_val = Get_ADC_Result(9); // 读取通道 9 (P2.1)
|
||||
u16 adc_val = Get_ADC_Result(8); // 读取通道 8 (P0.0)
|
||||
|
||||
// 线性百分比转换:3.3V (ADC=1279) 对应 0%, 4.2V (ADC=1628) 对应 100%
|
||||
if (adc_val <= 1279) {
|
||||
@@ -111,10 +111,10 @@ u8 Read_Battery_Percent(void) {
|
||||
|
||||
3. **充电状态读取**:
|
||||
```c
|
||||
// P2.2 (Pin 23 / DET) 在 System_Init 时需配置为高阻输入以进行充电状态检测
|
||||
// P2.7 (Pin 28 / DET) 在 System_Init 时需配置为高阻输入以进行充电状态检测
|
||||
bit Is_Charging(void) {
|
||||
return (P2 & (1 << 2)) ? 1 : 0; // 读取 P2.2 引脚高电平状态,1 表示 USB 接入
|
||||
return (P2 & (1 << 7)) ? 1 : 0; // 读取 P2.7 引脚高电平状态,1 表示 USB 接入
|
||||
}
|
||||
```
|
||||
|
||||
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->
|
||||
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V3 -->
|
||||
|
||||
Reference in New Issue
Block a user