1、运行中空电关机改看显示百分比,到 5% 立刻停电机、关绿灯,红灯闪 5 下后再深睡,避免电压先掉、APP 还没到 5% 就关机
2、充电/放电电量缓冲加快,放电突变拦截先关掉,电量曲线满电点收到 4.12V 3、上电串口打印软硬件版本和编译时间
This commit is contained in:
@@ -2,10 +2,11 @@
|
||||
* @file app_power.h
|
||||
* @brief USB / 充电检测、电量采样与低电策略、深睡请求生命周期
|
||||
* @author cyWu <1917507415@qq.com>
|
||||
* @date 2026.08.25
|
||||
* @version V1.0.0
|
||||
* @date 2026.08.27
|
||||
* @version V1.2.0
|
||||
* @history
|
||||
* - V1.0.0, 2026.08.25, cyWu, 首次发布,实现 USB/充电检测、电量采样与深睡请求
|
||||
* - V1.2.0, 2026.08.27, cyWu, 显示电量到 5% 立即走空电关机(停电机、红灯闪 5 下再掉电)
|
||||
*
|
||||
* @note 本模块只管“电从哪来、还剩多少、要不要关机”,不认识电机/灯/按键。
|
||||
* 需要在 USB 插拔 / 深睡时联动其它模块的地方,一律走 app_power_set_hooks
|
||||
@@ -24,7 +25,7 @@ typedef enum {
|
||||
APP_POWER_EVT_USB_OUT
|
||||
} AppPowerEvt_t;
|
||||
|
||||
/** 深睡请求的钩子:on_request 用于立即停机(马达/灯),on_finalize 用于真正掉电 */
|
||||
/** 深睡请求的钩子:on_request 立刻停电机并按关机类型处理灯;on_finalize 真正掉电 */
|
||||
typedef void (*AppPowerHook_t)(void);
|
||||
|
||||
/**
|
||||
@@ -35,8 +36,8 @@ void app_power_init(void);
|
||||
|
||||
/**
|
||||
* @brief 注册深睡请求的两段式回调
|
||||
* @param on_request 刚请求深睡时调用(停电机、灯全灭)
|
||||
* @param on_finalize 50ms 后调用(真正进深睡,不会返回)
|
||||
* @param on_request 刚请求深睡时调用(停电机;灯效由调用方按关机类型决定)
|
||||
* @param on_finalize 延时到点后调用(真正进深睡,不会返回)
|
||||
* @return 无
|
||||
*/
|
||||
void app_power_set_hooks(AppPowerHook_t on_request, AppPowerHook_t on_finalize);
|
||||
@@ -67,15 +68,29 @@ uint8_t app_power_charge_led(void);
|
||||
uint8_t app_power_low_bat(void);
|
||||
|
||||
/**
|
||||
* @brief 请求深睡:立即触发 on_request 钩子,50ms 后触发 on_finalize
|
||||
* @brief 请求深睡(按键 3s 等):立即触发 on_request 钩子,50ms 后触发 on_finalize
|
||||
* @return 无
|
||||
*/
|
||||
void app_power_request_poweroff(void);
|
||||
|
||||
/**
|
||||
* @brief 空电关机:立刻停电机,等红灯闪完 5 下后再真正掉电
|
||||
* @note 调用方在 on_request 里根据 app_power_empty_off_pending() 挂空电灯效,
|
||||
* 不要立刻灭灯。延时为 BOARD_LED_EMPTY_OFF_WAIT_MS。
|
||||
* @return 无
|
||||
*/
|
||||
void app_power_request_empty_poweroff(void);
|
||||
|
||||
/**
|
||||
* @brief 查询深睡请求是否已发起(发起后其它模块应停止响应新操作)
|
||||
* @return 1=已发起,0=未发起
|
||||
*/
|
||||
uint8_t app_power_poweroff_pending(void);
|
||||
|
||||
/**
|
||||
* @brief 当前这次关机是否为空电路径(红灯闪 5 下再掉电)
|
||||
* @return 1=空电关机,0=普通关机
|
||||
*/
|
||||
uint8_t app_power_empty_off_pending(void);
|
||||
|
||||
#endif /* __APP_POWER_H__ */
|
||||
|
||||
Reference in New Issue
Block a user