首页 > 代码库 > 键值转换--复杂按键事件识别程序(链接层)
键值转换--复杂按键事件识别程序(链接层)
复杂按键事件识别程序(链接层)
复杂按键包括多个按键的单按事件、长按事件、连按事件、组合按键事件等
本程序为链接层程序,处理和识别按键驱动层扫描到的按键信息g_u8KeyValue。(g_u8KeyValue的每一位表示一个按键)
单按事件在按下键松开时判定,其它按键情况在达到规定的时间后触发相应按键事件。
宏定义:
//宏定义各按键按下时的bit值 #define KEY_EVENT_NULL_CLICK 0x00 #define KEY_EVENT_CLOCK_CLICK 0x01 #define KEY_EVENT_DOWN_CLICK 0x02 #define KEY_EVENT_MODE_CLICK 0x04 #define KEY_EVENT_LOCK_CLICK 0x08 #define KEY_EVENT_ONOFF_CLICK 0x10 #define KEY_EVENT_SETTING_CLICK 0x20 #define KEY_EVENT_UP_CLICK 0x40 #define KEY_EVENT_TIMING_CLICK 0x80 #define KEY_EVENT_LONG_KEY_CLICK 0xff //长按标志 //组合键 #define KEY_EVENT_SETTING_UP_CLICK 0x60 #define KEY_EVENT_SETTING_ONOFF_CLICK 0x30 #define Key_EVENT_MODE_UP_DOWN_CLICK 0x46 #define KEY_PRESS_TIME 80 //单按按键事件按下的时间 #define KEY_SINGLE_TIME 1000 u8 g_u8KeyValue;
/******************************************************************************* #Function : Link_KeyTrans #Description : 按键转换 g_u8KeyValue 为 按键扫描出来的键值 即标志该时刻对应按键是否按下 #Parameter : NULL #Return : NULL #AuthorAndData : huangzhigang 20140716 *******************************************************************************/ void Link_KeyTrans(void) { static uint8_t KeyBackUp = KEY_EVENT_NULL_CLICK; //键值备份 static TIMER_T KeyDelayTime; App_TimeBase(MS_BASE, &KeyDelayTime); if(g_u8KeyValue =http://www.mamicode.com/= KEY_EVENT_SETTING_UP_CLICK) //设置+上 组合键3s>
键值转换--复杂按键事件识别程序(链接层)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。