一个按键扫描算法
来源:互联网 发布:堆排序算法 编辑:程序博客网 时间:2024/06/04 19:49
【转载请注明出处:blog.csdn.net/lanmanck】
int i=0,port,trigger,continues=0,cnt=0; int trigger_long=0; uint32_t last_keys=0,this_keys=0;while(1){for(port=0xFF,i=0;i<ARRAY_SIZE(g_keys);i++){ if(GPIO_ReadInputDataBit(g_keys[i].port, g_keys[i].gpio)==1){ port &= ~g_keys[i].val; } } this_keys = port; if(last_keys == this_keys){ port = port ^ 0xFF; trigger = port & (port^continues); continues = port; /* 只要按键没有松开,这个值永远是0x01 */ if(trigger){ //trace_debug(MID_KEY,"press 0x%X\r\n",trigger); trigger_long |= trigger; } if(continues){ if(++cnt == 200){ trace_debug(MID_KEY,"long press 0x%X\r\n",continues); trigger_long = 0; } }else{ cnt = 0; if(trigger_long){ trace_debug(MID_KEY,"press 0x%X\r\n",trigger_long); trigger_long = 0; } } } last_keys = this_keys;}
- 一个按键扫描算法
- 一个按键扫描算法
- 经典的按键扫描算法
- 经典按键扫描算法理解
- 按键扫描
- 按键扫描
- 按键扫描
- 我的一个基于stm32的独立按键扫描方式
- 巧妙的按键扫描程序,核心算法只有三行
- 按键扫描驱动程序
- 按键扫描处理
- 新型按键扫描程序
- 经典按键扫描程序
- 矩阵按键扫描电路
- 矩阵按键扫描
- 扫描按键的解决方法
- 按键扫描处理
- AVR按键扫描程序
- Linux OpenCV移植过程详细介绍
- 手机游戏开发之路:启程
- spring AOP之二
- Ibatis调用Oracle Function
- jQuery笔记
- 一个按键扫描算法
- ubuntu源码级安装bochs
- poj2528之线段树+离散化
- Installing Oracle 10g Release 2 Standard Edition on Red Hat Enterprise Linux 6.0 (x86_64)
- android 使用xml布局自己的对话框
- UVa 11795 - Mega Man's Mission 状态压缩dp
- #define和const的区别
- jQuery笔记
- 二叉堆的实现