上面就是一个简单的去抖动程序时钟的频率和去除抖动的时间自己根据产品实际确定程序的思路简而言之,如果输入电平改变,就开始计数器计数,只有到达一定时间才认为是真正的变化,这时候输出才随之变化;否则就认为是抖动,输出保持不变
松手我那个程序里也有啊,既有从高到低,也有从低到高的检测
亲,您的代码可以再简单点吗?给个思路就行啊!这代码看的有点头疼,太多变量这好像也只是个消抖的程序吧?我主要想了解一下怎么达到松手检测的目的也就是按下一次按键,只执行一次按键功能的目的
了解,就是连续检测192次都是低电平则是按下消除抖动一开始还没反应过来,
咱能说说思路吗?您这一堆代码一上来,让我很是头疼啊
原地等待10MS的话,会耽误你的程序运行如果你程序本身不在乎,那就为所谓但是,单片机都是死循环程序你完全可以利用程序本身一次循环的时间,来模糊计算延时
例如,程序本身循环一次要1MS,那么计数10次,就是10MS,就行了
编写消抖程序,我的思路是这样子的:使用定时器0延时10ms
程序在初始化之后,执行的就是判断p1.0引脚电平状态的指令,如果p1,0是低电平,那么就启动定时器0,开始计时,那么此时主程序应该干什么呢?
是原地等待还是继续检测p1.0的状态呢?
--P1.0,可以不检测了,因为已经启动了定时器
--可以检测其它接口
--如:串口,AD转换接口,温度检测,烟雾报警接口,红外输入接口...
--也可以输出,动态数码管显示...
定时时间到之后,在中断服务程序中检测p1.0的状态,如果是低电平,则说明按键按下了,就执行相应的子程序,执行完子程序之后呢?程序是否返回了中断服务程序的位置,继续执行呢?
--回到发生中断的地方
如果是高电平的话,就退出中断服务程序,那么退出之后怎么办?
--回到发生中断的地方
--没有了定时,应该继续执行检测p1.0状态
老师一般这样教.假设没有按键按下时是低电平,有按键按下是高电平.当程序读取到IO口为高电平时,延时一段时间,再一次读取IO口电平,如果还是高电平,则认为是有效按键,进入按键处理程序.
此时一般还有一个处理,即如果按键不松开,则不会再次处理.
你对自己设计的框架都不是非常清晰啊
开始计时,那么主程序应该干嘛这不是你自己要设计的内容嘛,我们怎么会知道你主程序里面要干嘛呢?
我建议你把设计的功能说清楚,要实现什么说明白一些,这样大家就好给你思路了
或者你把你的程序弄上来,大家帮你看看你的程序有什么样的缺陷
按照正常中断来说,退出中断后肯定是会继续往下执行任务的,这个不用怀疑,除非你的系统跑飞了,或者存在别的BUG
还没有评论,快来抢沙发吧!
最新发现
相关资讯
腾达设置网页打不开,腾达路由器,由于今天修改了设置,弄得无法打开网页,求高手解决....
你可以先单独接自己路由器设置一下,lan口设置里,把水星的lan口p修改成其他段的,比如192.168.10.1.wan口设置里选择动态ip,保存重启后,再把房东网线插在路由器的wan口上
2024-05-06 21:43:54
虚拟机域ad,vmware虚拟机WindowsServer模板部署后怎么自动加入ad域
二,对于域中的普通用户来说可能不是一件好事了,原来是工作组每个人都是本地计算机的管理员,想装qq装qq,想装迅雷装迅雷,人人都是土皇帝在域模式后普通的域用户对于客户机的权限少的可怜,可以说管理员让干什么才
2024-05-06 21:41:09
电脑总是断网重启路由器,为什么我的电脑宽带经常自己断掉要重新连接
j:优化网络个人推荐使用一些小工具比如超级兔子,优化大师或360等k:电脑应安装至少一款有效正版的杀毒软件l:网卡问题:网卡带宽适当,工作稳定只要你做好上述几个方面的工作,你的故障就会消除了
2024-05-06 21:40:41
文本编写彩色字小代码,怎么打出彩色的文字啊!
下划线文字代码:/lt
2024-05-06 21:40:01
电视天线怎么改无线路由器,我家装了光纤IP电视怎样加个路由器怎样做
光纤网络通过光纤modem进行信号转换,因此使用普通无线路由器即可,无特殊要求光纤接无线路由器的配置方法:1.将无线路由器连入光纤猫用网线将路由器的WAN口与光纤猫的LAN口相连,当路由器WAN口灯闪烁表示连接成功2.电脑无
2024-05-06 21:39:00
新闻热榜
热门游戏
精彩专题