杰理AC692X 按键相关说明

标准SDK按键基本说明(sdk_cfg.h)

按键音宏定义。
杰理AC692X 按键相关说明_第1张图片
按键双击功能宏定义,可以在key.h配置双击间隔时间。
在这里插入图片描述
按键类型选择(key.h)。
杰理AC692X 按键相关说明_第2张图片

杰理AC692X 按键相关说明_第3张图片
按键GPIO口配置,需要软关机就使用PR口,一般使用普通GPIO口。
可以配置按键生效时间(10ms)。

/*按键门槛值*/
#define KEY_BASE_CNT  4
#define KEY_LONG_CNT  75
#define KEY_HOLD_CNT  15
#define KEY_SHORT_CNT 7

/*按键状态*/
#define KEY_SHORT_UP    0x0
#define KEY_LONG        0x1
#define KEY_HOLD        0x2
#define KEY_LONG_UP     0x3

#define KEY_DOUBLE_CLICK_CNT    35 //35*10ms

#define NO_KEY          0xff

按键触发方式:

  1. 短按抬起:单击,可用于上/下曲,模式切换类功能
  2. 长按:按住不放(按键生效一次),可用于软关机类功能
  3. 连按:按住不放(按键生效多次),可用于音量+/-
  4. 长按抬起:按住不放(抬起按键生效),根据需要使用

按键功能实现说明

因为每个模式单独生效,所以每个模式的按键功能需要单独配置(例task_bt_key.c)。
杰理AC692X 按键相关说明_第4张图片

#define KEY_REG_AD_MAX			(10)
#define KEY_REG_IO_MAX			(10)
#define KEY_REG_IR_MAX			(21)
#define KEY_REG_TOUCH_MAX		(10)
#define KEY_REG_UART_MAX		(10)

const u16 task_bt_ad_table[4][KEY_REG_AD_MAX] = {
    /*短按*/	    {ADKEY_BT_SHORT},
    /*长按*/		{ADKEY_BT_LONG},
    /*连按*/		{ADKEY_BT_HOLD},
    /*长按抬起*/	{ADKEY_BT_LONG_UP},
};

按键消息处理(task_bt.c)

功能模块的消息处理:

void task_bt_deal(void *hdl)

main线程的消息处理:

tbool task_common_msg_deal(void *hdl, u32 msg)

你可能感兴趣的:(JL杰理相关)