打印

关于传统按键检测的改造思路,请高手指教

[复制链接]
7237|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdhlixiang2006|  楼主 | 2010-4-8 11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
算起学单片机也有1年了,关于按键检测的思路一直是:当判断为低后,软件延时40ms之后再检测如
果确实为低则确定本次按键有效,之后进行相关处理,没有松手检测。一直没觉得这种方法有啥问题
,今天无意中看到以前的一个帖子说这种方法白白占用CPU浪费资源,可以用定时器,首先设定一个
固定的时基比方说4ms,时间到后再检测,如果电平不变则相关的变量加1,否则清零。延时完成后,
给一个标志位,主程序检测这个标志位,满足条件后则处理有关程序。可我想问的是:如果不考虑使
用操作系统,用传统的大循环方式又考虑到实时性,这个延时程序的思路是否要变为这样:当判断为
低电平后,启动定时器,这时程序检测定时器给的标志位是否置位,是的话才处理有关程序,当然最
开始肯定没有置位,所以跳过这段程序,去处理别的程序,如果别的程序不是太耗时的话,当再次检
测这个标志位时,如果置位的话,处理键值。如果引入操作系统,需要把按键检测作为一个单独的小
任务,同样当判断为低电平后,可以用相关函数把这个任务挂起,释放CPU,同时紧跟一条接收信号
的指令,这个信号同样是由定时器给的,不知各位高手我的这种思路是否正确,不对的话请指出,我
也是个新手

相关帖子

沙发
mohanwei| | 2010-4-8 12:28 | 只看该作者
百度一下即可……

使用特权

评论回复
板凳
3C农民工| | 2013-11-18 16:32 | 只看该作者
看不懂

使用特权

评论回复
地板
ayb_ice| | 2013-11-18 16:36 | 只看该作者
状态机轻松搞定,不用状态机也轻松搞定(本质还是状态机)

使用特权

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

本版积分规则

个人签名:沐浴着XX的春风,义无反顾游荡在马勒戈壁

21

主题

523

帖子

2

粉丝