按键到底要怎样做才算实用而简单啊

[复制链接]
7448|41
 楼主| zjszjtk 发表于 2011-3-2 13:54 | 显示全部楼层
马潮的那本书啊
china_fog 发表于 2011-3-2 13:56 | 显示全部楼层
我上次一个单片机里面就是要状态机做的
johnwjl 发表于 2011-3-2 14:19 | 显示全部楼层
状态机,去抖也在状态中,不死等,
按键扫描及按键功能处理独立程序处理。
 楼主| zjszjtk 发表于 2011-3-2 22:06 | 显示全部楼层
非用状态机吗
 楼主| zjszjtk 发表于 2011-3-2 22:08 | 显示全部楼层
嘿,高手还是没有出来点化,楞找找不出来啊。
 楼主| zjszjtk 发表于 2011-3-2 22:10 | 显示全部楼层
johnwjl  能给我说说这状态机这部分知识哪儿能找到啊,或者帮我写几行按键检测的代码演示学习学习好吗
highgear 发表于 2011-3-2 22:40 | 显示全部楼层
去搜索以前 刘钱被/冷漠 与highgear pk 的帖子, 里面有用各种语言做的用 状态机处理按键 的程序。
 楼主| zjszjtk 发表于 2011-3-3 09:41 | 显示全部楼层
highgear:
刘钱被/冷漠 与highgear pk 的帖子, 里面有用各种语言做的用 状态机处理按键 的程序。
s收不到啊
明天及以后 发表于 2011-3-3 16:34 | 显示全部楼层
如果不想用程序,是不是加个阻容吸收就好了?
xsw2000 发表于 2011-3-3 17:16 | 显示全部楼层
现在的按键式的产品很多都改良成了  -----电容式触摸的呢,

可以去了解一下,http://www.soujet.com
菜鸟学模电 发表于 2011-3-8 10:41 | 显示全部楼层
定时器定时10——20ms

定时时间到 进入状态1  查看是否有按键按下 有则等待下一次定时中断进入状态2,没有直接退出,状态不变
           定时时间到进入状态2  再次确认按键是否按下  (1,2之间的定时用来去抖动用)有则确认那个按键按下,并准备进入状态3,没有直接退出,返回状态1
                定时时间到进入状态3  检测按键是否松开,松开返回状态1,检测下一个按键,没有则状态不变
abin0415 发表于 2011-3-8 13:09 | 显示全部楼层
消抖和松手检测。
if(set==0)
{
       delay(5);//延时5毫秒
     if(set==0)
        {
         
}
    //以上是消抖
//以下是松手检测
while(!set)
{
       delay(5);
}
}
yxbo159 发表于 2011-3-8 15:39 | 显示全部楼层
抽空把按键检测了就好,感觉
 楼主| zjszjtk 发表于 2011-3-11 16:12 | 显示全部楼层
吧显示来做按键的延时,这样做到底牢靠吗。我试试有时候也有失误。还有,按键松开要不要延时?
 楼主| zjszjtk 发表于 2011-3-11 16:13 | 显示全部楼层
有经验的前辈能不能出来说说,就当同情一下菜鸟吧。
 楼主| zjszjtk 发表于 2011-3-11 16:14 | 显示全部楼层
if(mode==0)display();      
    if(mode==0)
   {
     while(!mode)display();
      display();
     i++;
     if(i>=4)i=0;
   }


这样写合理吗,
 楼主| zjszjtk 发表于 2011-3-13 15:49 | 显示全部楼层
匠人给说说吧
chenzichao1314 发表于 2011-5-5 09:50 | 显示全部楼层
哦  那本书有介绍
SeaSun 发表于 2011-5-7 17:36 | 显示全部楼层
看情况的吧
项目中断资源丰富,就用中断.
主循环超过40ms以上也最好用中断去扫描.
小虫蠕蠕 发表于 2011-5-7 21:17 | 显示全部楼层
偶也想知道啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部