您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [讨论]BF548的KeyPad 好玩问题
本帖共有360个阅读者
发表帖子 发表投票 回复主题
[讨论]BF548的KeyPad 好玩问题
lvben5d(论坛新手)
lvben5d
头衔:社区公民
帮派:无帮无派
帖数:61
金钱:672
积分:89
注册时间:2014/3/24
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[讨论]BF548的KeyPad 好玩问题
问题1:我发现调用adi_dev_Control(KeyPadDriverHandle, ADI_KPAD_CMD_KPAD_ENABLE, (void*) FALSE):并不能关闭按键的扫描功能,必须用 *pKPAD_CTL &= 0xFFFE; //bit0=0 表示关闭  bit0=1 表示打开
    问题2:在实际项目中,我们的硬件工程师并没有对按键做并联电容硬件消抖,同时选用了工业上的金属按钮,每次按下去,都很可能带有机械抖动,如果不进行软件消抖,1次按下很容易被识别2次的按键动作,为了解决此问题,我在按键扫描中断的回调函数里,关闭了键盘扫描功能,并启动0.2s定时器,当定时器时间耗尽,我再打开键盘扫描函数。实际效果并没有很大提升,不过,我发现了1个新的功能,就是按键按下并保持按住,页面就会按照一定间隔翻页,呵呵,原本 keypad模块每次只能识别1次按键的功能,因为我做了关闭键盘和开启的功能,使得Blackfin 的键盘扫描产生了定时识别出按键的状态。这样的好处是,连续翻页的时候,不用release按键了。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/3/31 10:44:05
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
个人感觉BF54x上的4*4模块不是太好用,会有很多限制,不灵活,比如按键按着不放,只响应一次按键,必须抬起后再次按才有响应。你的定时器等于解决了这个问题,算是给大家分享了经验。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/4/1 1:19:24
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159181 Call, 1 Queries, Processed in 0.015625 second(s),