54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
/******************************************************************************
|
|
* @file key_manager.h
|
|
* @brief CBC4 单按键:短按切模式,长按 3s 关机;开机 3s/5s 不走本库
|
|
* @author cyWu <1917507415@qq.com>
|
|
* @date 2026.08.25
|
|
* @version V1.0.0
|
|
* @history
|
|
* - V1.0.0, 2026.08.25, cyWu, 首次发布,实现短按切模式、长按 3s 关机与开机按键锁
|
|
******************************************************************************/
|
|
|
|
#ifndef __KEY_MANAGER_H__
|
|
#define __KEY_MANAGER_H__
|
|
|
|
#include "key.h"
|
|
|
|
/**
|
|
* @brief 业务层短按回调(app_function 实现)
|
|
* @return 无
|
|
*/
|
|
void usr_on_key_short(void);
|
|
|
|
/**
|
|
* @brief 业务层长按 3s 回调(app_function 实现)
|
|
* @return 无
|
|
*/
|
|
void usr_on_key_long(void);
|
|
|
|
/**
|
|
* @brief 装载按键表
|
|
* @return 无
|
|
*/
|
|
void user_key_init(void);
|
|
|
|
/**
|
|
* @brief 开机判定结束后:若键还按着则锁住,松开才认短按/长按
|
|
* @return 无
|
|
*/
|
|
void user_key_lock_if_held(void);
|
|
|
|
/**
|
|
* @brief 按真实毫秒推进状态机(空闲 20ms 节拍会循环 dt 次)
|
|
* @param dt 距上次调用的毫秒数
|
|
* @return 无
|
|
*/
|
|
void user_key_scan(uint16_t dt);
|
|
|
|
/**
|
|
* @brief 派发按键回调
|
|
* @return 无
|
|
*/
|
|
void user_key_handle(void);
|
|
|
|
#endif /* __KEY_MANAGER_H__ */
|