贺信 发表于 2009-7-31 15:24

板等

NE5532 发表于 2009-7-31 15:27

别看教科书了

看深入浅出把,已经改成这样去抖动了。

john_light 发表于 2009-8-2 00:08

µCOS-II的作者Jean J. Labrosse出了一本书,有一章就是关于按键的,用状态机实现。

自从读过那本书之后,我在需要检测按键的地方都用该方法。

李冬发 发表于 2009-8-2 07:31

我帖过一个按键程序,hotpower的帖子里的更全。

一个牧师 发表于 2009-8-2 23:07

34楼见过干扰机没?
我们现在接案子都要过干扰机
你要是检测次数少肯定就过不掉
你说那东西肯定是书本上见的,实践过没?
没实践不要在这乱装高手!!!!!
怎么就不能拉低?电磁干扰见过没?
要你这么说,工业上买那么贵的东西都是骗人的了?

google的马甲 发表于 2009-8-3 10:13

楼上的自己水平低,没搞明白按键的抖动和现场的干扰完全两码事情。一个是按键的物理特性,一个是外部干扰。按楼上所说,那么是否你所有的IO输入检测都是按KEY扫描去抖方式操作的?

小嘿 发表于 2009-8-3 11:27

哥用的不是状态机,用的是并电容本人

一个牧师 发表于 2009-8-3 22:38

66楼
不是所有I/O都用这个是肯定的
在做工程时读I/O进行处理判断是正常的
比如做AC电流过零检测在初始化之前就要判断周期
如果周期和所工作环境部符合就认为是误判
要继续等待否则不近主程序进行处理
在程序运行时也不会中断中来检测ac同步信号
一般都是在主程序进行时间按判断要到过零点才进行过零检测
这也是所学的和用的不是一码事
学的时候很多时候是用外部中断做事情
但是真正工程上用的我就真没见过几个是用外部中断来做的
要是你真正做一个交流调制灯你会发现它闪
做个变速马达你会发现他抖


你说的是两码事????
我就不明白怎么能是两码事呢
按键处理只是单纯的消抖不对外部干扰进行去除叫处理吗???
如果单纯的抖动我可以在进行安检处理里面第一次检测到按下就判断有效啊
之后再进行松手检测着就可以了何必再延时多少ms再检测呢??????
请问你这位水平高的给我解释一下吧

glf 发表于 2009-8-16 11:57

是我们周围高手太少了,有些时候都不知道该相信谁,老师看课本我们也就跟了。

kele2008 发表于 2010-3-2 09:41

此方法还不错,适用于按键要求高的地方,唯一的缺点就是代码会稍微长点,浪费了点ROM

aihe 发表于 2010-3-9 20:46

42楼
把这个实验装置放在噪声环境下,不按任何键,通电运行一天
请教一下什么“噪声”,电磁,还是只是外面的声音?你在引脚旁用打火机打几下火试试
你不加任何消抖,按1000次键看看显示多少

liyinchao 发表于 2010-3-10 09:12

我一直使用时标法

发个宏

if(Keyport!=0xff)
{
KeyPress=1;
}

if(KeyTime>20)
{
      KeyProsess();

}
Timer0_ISR()
{
         if(KeyPress)
      KeyTime++;
       else
       KeyTime=0;
}

sword90 发表于 2010-3-10 10:28

标记。以后学清楚了在消化。

oksmn 发表于 2010-3-10 16:22

哈哈,这帖子好久了哦,不过现在看看觉得又学到东西

highgear 发表于 2010-3-10 21:44

回头看看 34楼, 42楼 冷漠 的发言, 让人再一次乐不可支。经典啊经典

laslison 发表于 2010-3-10 21:51

传统的教科书上我记得谢了3中

ershisi 发表于 2010-3-10 23:00

100ms 平时按个键能用得了这个时间吗?会不会可能处于临界状态?

fuxiaodan1688 发表于 2010-3-11 17:43

用nop函数也可以啊

wzl-xx 发表于 2010-5-14 17:52

按键扫描直接用个键盘扫描芯片,一切都解决了,既省时,又高效。

butlet 发表于 2010-5-14 18:38

将按键扫描程序放在毫秒级的循环中,不用去抖也照样可以检测,程序效率也高
页: 1 2 3 [4] 5 6 7
查看完整版本: 按键可有**了,能体现一个人的编程水平