3209|1

23

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【悬赏求助】launchpad捕获按键按下的时间 [复制链接]

2芯积分
最近在学习launchpad,中断方面困难重重。。。我想实现这样一个功能:P1.1设为输入,连接一个按键,然后利用中断判断按键按下的时间,要是短按的话就LED1翻转,长按的话LED2翻转。
这样的话,我知道应该用捕获模式获取时间信息对吧,但是实现过程一直不成功。。。有几个问题,捕获的话设为上下沿都捕获,但是比如说,我现在发生一个上升沿进入中断了,然后短时间内信号变成下降沿,这个时候还能触发中断吗?我记得430好像不能中断嵌套啊。还有就是,因为TAR最大数到65536,那像我要实现按键长按(大概一两秒)的话不就不够用了吗?
在写捕获的代码时也总是不顺利,可是论坛上有关的例程又没有,有的其他型号的捕获例程我修改后在launchpad上也用不了,查的资料越多越觉得困惑了,有哪位大侠能就上面的情况给写个例程吗?感激不尽。。。

最佳答案

查看完整内容

方法1:延时或定时200ms,每两百毫秒检测一次按键端口,如果按下则累加一个计数值,如果松开则判断计数值,如果计数值大于5(5x200ms=1s)则为长按,否则为短按。延时简单,但只能用在系统资源要求不高的时候,所以最好用定时。 方法2:捕获中断+计时溢出中断,在按键按下时发生捕获中断,记录下当前值,松开时再记录下按键值,如果长按的话在计时溢出中断里记下次数,最后的时间就是两次捕获的差值+溢出的次数。

最新回复

方法1:延时或定时200ms,每两百毫秒检测一次按键端口,如果按下则累加一个计数值,如果松开则判断计数值,如果计数值大于5(5x200ms=1s)则为长按,否则为短按。延时简单,但只能用在系统资源要求不高的时候,所以最好用定时。 方法2:捕获中断+计时溢出中断,在按键按下时发生捕获中断,记录下当前值,松开时再记录下按键值,如果长按的话在计时溢出中断里记下次数,最后的时间就是两次捕获的差值+溢出的次数。  详情 回复 发表于 2012-5-1 13:48
 
点赞 关注

回复
举报

2002

帖子

24

TA的资源

五彩晶圆(高级)

沙发
 
方法1:延时或定时200ms,每两百毫秒检测一次按键端口,如果按下则累加一个计数值,如果松开则判断计数值,如果计数值大于5(5x200ms=1s)则为长按,否则为短按。延时简单,但只能用在系统资源要求不高的时候,所以最好用定时。
方法2:捕获中断+计时溢出中断,在按键按下时发生捕获中断,记录下当前值,松开时再记录下按键值,如果长按的话在计时溢出中断里记下次数,最后的时间就是两次捕获的差值+溢出的次数。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表