27 lines
863 B
C
27 lines
863 B
C
#ifndef __APP_ADC_H__
|
|
#define __APP_ADC_H__
|
|
|
|
|
|
/* 电池采集状态机
|
|
* 开机后首采一次 → 之后每 30s 采一次
|
|
* 充电中:先停充电芯片 → 等稳定 → 采集 → 恢复充电
|
|
* 电压变化才上报 MSG_ID_BATTERY_VALUE */
|
|
#define BAT_SAMPLE_INTERVAL_MS 30000 /* 30s 采集一次 */
|
|
#define BAT_CHARGE_OFF_WAIT_MS 50 /* 停充电后等稳定 */
|
|
|
|
typedef enum {
|
|
BAT_IDLE, /* 空闲:等开机首采 / 30s 定时 */
|
|
BAT_START, /* 开始:检查是否需停充电 */
|
|
BAT_WAIT_CHARGE_OFF, /* 等充电芯片停止稳定 */
|
|
BAT_SAMPLE, /* 读 ADC + 滑动平均 */
|
|
BAT_RESTORE_CHARGE, /* 恢复充电 */
|
|
BAT_DONE, /* 映射 + 上报,回 IDLE */
|
|
} bat_state_t;
|
|
|
|
extern bool pick_hold_up;
|
|
extern bool usb_charging_state;
|
|
extern bool usb_charging_laststate;
|
|
extern uint8_t percentage;
|
|
void app_adc_scan_all(void);
|
|
void app_adc_in1_scan_part(uint8_t channel);
|
|
#endif |