嵌入式系统智能键盘的软件设计
时间:02-20
来源:互联网
点击:
,KEY_Counter仍以一定的频率加1。当KEY_Counter=c_keyover_time时,KEY_Counter=0,形成一次长击。
⑥当再次出现KEY_Counter=c_wobble_time时,即可再执行一次按键功能,此为连击。
⑦如果按键一直闭合,就重复执行⑤~⑦三个步骤,直到按键释放。
单击/连击示意图如图3所示。
本文以AVR单片机为例给出设计软件。例程中4个按键分别连接到PD口的低4位(若按钮更多,甚至是矩阵键盘也很好仿写)。WINAVR20071221例程如下(假定连接按键的I/O口已经成功地初始化):
工程应用中随着主函数死循环中程序量的不同,需要调整3个参数。不过,该程序利用系统的嘀嗒定时中断定时读取,只需调整好一组参数。
上面的例程中要深入理解static的作用,即静态变量会被分配一个内存固定、每次操作的值不会丢失、却又被函数私有处理的类似全局变量的变量。
结语
本文针对实时应用的嵌入式系统中智能键盘软件设计的软件去抖动问题、等待按键抬起问题和连击处理问题,给出基于查询结构的软件解决方案。该方案不但能够满足系统的实时性要求,而且软件直接调用,大大降低了系统开发的难度。
- 嵌入式软件设计中查找缺陷的几个技巧(03-06)
- 基于DSP的导弹仿真器嵌入式组件设计(04-30)
- 为嵌入式软件建立统一软件系统框架的方法详介(05-23)
- 在VIM中实现对嵌入式软件的调试(08-06)
- 基于开源软件的嵌入式网络打印服务器(11-05)
- GCC-维基百科(04-13)