K1Guitar/APP/app_adc.h

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