打印

问个在做产品中遇到的细节问题

[复制链接]
2027|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
paulsimons|  楼主 | 2007-4-22 13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1,按键中断延时:一个老生常谈的问题,大家都知道当按键中断来的时候需要一个20-200ms左右的延时再去判断,但如果在中断里面不能做这么长时间的延时该怎么办?
2,按键中断的干扰问题:发现按键中断容易被干扰,现象是没有按键但是显示却跳动,按键是30K上拉的所以我在按键和地之间接了一个4.7uf的电容现象有所好转!但是这样时候增加了不必要的耗电?
3,和结构配合问题,裸板按键很正常没有任何问题,但是一旦装入外壳结构中就发生按键连跳的问题,也就是说按一下按键表现为按了两下,此问题归结为按键抖动,如2的方法,在按键和地之间跨接了4.7uf电容问题解决,这样的问题和解决方式是否正常?
4,还是按键问题,按键触发得太快,也就是说按下按键立马做出响应,这样导致快速按按键会变化很快,给人一种很灵敏的感觉,如何解决谢谢!

我的中断延时不能加长否则整个程序会跑乱,谢谢!!!

相关帖子

沙发
zjysurfer| | 2007-4-22 13:38 | 只看该作者

......

把上拉电阻减小点,用个10K的电阻看哈行不行!
"按一下按键表现为按了两下"也许是按键处理的延时短了,增加按键识别时间

使用特权

评论回复
板凳
djyos| | 2007-4-22 20:59 | 只看该作者

这样

首先,上拉电阻平时不会增加耗电,仅在有键按下时耗电,而且电流极小.
对于防抖,你可以用定时器中断做,每10mS查询一下按键状态,连续8次有效才判定有键按下.
对于灵敏度,当有键按下时,延时300mS(即跳过30次定时器中断)不检测按键即可.

使用特权

评论回复
地板
mugenwon| | 2007-4-23 01:36 | 只看该作者

是你写软件的经验不足。你所说的一切问题都可以用软件解决的。
1,定时中断里面加计数器(例如一个自己定的全局变量)。
2,情况不明。
3,情况不明。
4,按键判断的逻辑要搞好。说来比较复杂。通常我是按下后反复判断按下,但是要弹起来后再进行动作。而且弹起来后同样作弹起时间的判断。这样万无一失。

使用特权

评论回复
5
paulsimons|  楼主 | 2007-4-23 16:37 | 只看该作者

呵呵 感谢上面的回答

这个单片机比较慢 emc的 4M的晶体
我的五个定时器全部都用了其中有100us进一次的两个,200ms进一次的一个,100us-200ms不等时间的定时器一个,按键用的是外部中断1,似乎不可能再利用定时器了,你们的意思是1,可以设定时器每隔一段时间看按键状态,2增加延时包扩前延时与后延时,我都理解了,再没有别的方法了么?
谢谢

使用特权

评论回复
6
yxbo159| | 2007-4-25 14:33 | 只看该作者

按键去抖20MS足够了,有些定时可以共用一个来做。

使用特权

评论回复
7
谈的元| | 2007-4-25 22:13 | 只看该作者

同意 mugenwon说的,弹起也要判断

同意 mugenwon说的,弹起也要判断

使用特权

评论回复
8
zhaoyu2005| | 2007-4-26 08:21 | 只看该作者

emc单片机4M晶振据我所知已经很快了

如果程序不牵涉很多的间接寻址、中断现场保护、算数运算几乎能达到标准51单片机12M晶振的速度,估计是你编的程序有问题,象yxbo159说的那样,有的定时器可以复用的,其实定时器用好了,会有意想不到的效果

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

67

帖子

0

粉丝