feat: 添加模式切换模块支持多协议键盘
添加了完整的模式切换功能,通过ADC采样检测模式拨码开关, 实现USB、BLE和2.4G三种工作模式的自动识别和切换。 - 新增mode_event事件用于传递模式状态 - 实现mode_switch_module模块,包含ADC初始化、 模式识别算法和状态管理逻辑 - 配置CMakeLists.txt添加新源文件和头文件目录 - 更新设备树配置启用ADC和IO通道 - 添加Kconfig选项CONFIG_ADC=y - 实现防抖机制和稳定的模式检测逻辑 - 集成到CAF事件系统,支持电源管理状态切换
This commit is contained in:
23
src/events/mode_event.h
Normal file
23
src/events/mode_event.h
Normal file
@@ -0,0 +1,23 @@
|
||||
#ifndef MODE_EVENT_H
|
||||
#define MODE_EVENT_H
|
||||
|
||||
#include <app_event_manager.h>
|
||||
#include <app_event_manager_profiler_tracer.h>
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MODE_TYPE_USB,
|
||||
MODE_TYPE_BLE,
|
||||
MODE_TYPE_2G4,
|
||||
MODE_TYPE_COUNT,
|
||||
} mode_type_t;
|
||||
|
||||
struct mode_event
|
||||
{
|
||||
struct app_event_header header;
|
||||
mode_type_t mode_type;
|
||||
};
|
||||
|
||||
APP_EVENT_TYPE_DECLARE(mode_event);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user