一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
12
返回列表 发新帖
楼主: hotdll
收起左侧

[其他综合] 发一个按键中断触发的流程图

[复制链接]
发表于 2016-1-11 16:30 | 显示全部楼层
程序中的延时并不是死循环等待,他检测一下按键状态就去干别的事情了,定时器到时后再来检测一下状态,如果按键还按着计数值加一,计数值的大小代表长按时间的长短,怎么就不能判断3秒还是5秒呢
 楼主| 发表于 2016-1-11 17:14 | 显示全部楼层
本帖最后由 hotdll 于 2016-1-11 17:20 编辑
cptank 发表于 2016-1-11 16:30
程序中的延时并不是死循环等待,他检测一下按键状态就去干别的事情了,定时器到时后再来检测一下状态,如果 ...

讨论的帖子我喜欢回答。

是啊,既然用定时器查询,并用connt计状态了。直接判断connt和按键的状态就可以实现 键位查询,,,又何必用最“开始的三步” 去折腾一圈呢?你画流程图出来就明白了。

PS:我发的是中断触发的方案,有些时候,对连续性要求高,按键使用大部分时间并不频繁。用定时器轮询后者主程序轮询,都会浪费CPU时间,假设你1ms查询一次,1s就要查询1000次。如果一个主程序的循环需要接近1s,你的定时器可能会打断主程序执行1000次。

其实哪种方法都无可厚非,只有最合适,没有一个方法取代其他方法所谓最好的。我还是一楼说的,我只是分享一个外部中断触发的方法。那个方法在无按键的时候,无定时器,无轮询。无外部中断触发,任何时刻都不会打断主程序的运行。

发表于 2016-1-11 19:48 | 显示全部楼层
说实话,我没细看你推荐的程序,我是一个业余的,而且是新手,常常不能彻底理解别人的程序,只是觉得好的东西收藏一下,用得着的时候抄一段
你对这个程序的看法我刚开始也疑惑,担心影响主程序响应重要事件,但实际用下来觉得很好,于是就收藏了,看到你推荐时也顺便推荐一下。
回头好好看看你的程序
发表于 2016-1-11 21:08 | 显示全部楼层
谢谢分享,学习了。几种方法,不同的应用场合有不同的优点。
 楼主| 发表于 2016-1-11 23:20 | 显示全部楼层
cptank 发表于 2016-1-11 19:48
说实话,我没细看你推荐的程序,我是一个业余的,而且是新手,常常不能彻底理解别人的程序,只是觉得好的东西收 ...

如果单片机支持上下边沿触发,并且系统有滴答定时器或者有闲置的定时器,可以用更简单的方式实现。

上边沿和下边沿进入中断的时候设置标志。下边沿启动定时器,上边沿重置定时器。上边沿中断里面读取定时器的值判断是长按键还是短按键,还是抖动。这个方法更简单。

发表于 2016-1-11 23:47 | 显示全部楼层
这个讨论不错,学习一下。
发表于 2016-5-5 09:14 | 显示全部楼层
楼主精神不错的,顶一个
发表于 2016-7-31 17:37 来自手机 | 显示全部楼层
好帖,,,赞一个……
发表于 2016-8-2 08:31 | 显示全部楼层
我i也使用过中断法,感觉这是用查询法不可比拟的效率,有的时候需要按键做出高的响应率这点查询法就比较牵强了!
 楼主| 发表于 2016-8-2 18:19 | 显示全部楼层
yanzaihong 发表于 2016-8-2 08:31
我i也使用过中断法,感觉这是用查询法不可比拟的效率,有的时候需要按键做出高的响应率这点查询法就比较牵 ...

最近用调度法做按键处理,发现,调度法替代传统查询法做按键处理,,,,强的不是一星半点。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-20 05:47 , Processed in 0.051378 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表