一键多功能复用

2019-03-24 15:39发布

请问 一键多功能复用的原理是怎样的啊?大家能给我解释解释吗?在这儿先谢过大家了! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
weirgu
1楼-- · 2019-03-25 18:39
简单例子。
例如我们有一个按键:KEY1。我们要实现在Task1 =0时,KEY1为up的功能,在Task2=1时KEY1为Down功能。
1:建立一个表大概格式如下KEY_EVENT[task]={KEY_UP,KEY_DOWN},
2:通过中断或者轮询去获得当前的按键值,得到KEY1。
3:当得到这个按键后通过表格去查当前的KEY事件 EVENT  =  KEY_EVENT [ task ],这样,就可以区分不同的任务中同一个按键的对应的key event了。
4:在主要循环中 可以 swith 不同的key event来实现不同的功能。

但是实际运用中会比这个复杂很多。但是基本过程就是这样的。
anqi90
2楼-- · 2019-03-25 23:45
把逻辑搞清楚就好办了,一般也就单击,双击,长按三种指令
不用状态机的话用一个定时器也可以

Down→开始计时→Up→计时停止→读数→继续计时→Down→计时停止→Up→判断为双击
----------------------- ↓--------------------------------------------↓
----------------------超时----------------------------------------超时
----------------------- ↓--------------------------------------------↓
----------------- 判断为长按----------------------------- 判断为单击  
这样的话单击的判断会有延时,因为要等待超时判断是否双击

以上是小弟的思路,还请高手拍砖

[ 本帖最后由 anqi90 于 2011-9-24 18:26 编辑 ]

一周热门 更多>

相关问题

    相关文章