前后两个外部中断不同时发生,怎么得到这两个中断之间的

[复制链接]
3687|8
 楼主| ccjchen 发表于 2009-6-2 14:04 | 显示全部楼层 |阅读模式
相信大家也遇到过这样的问题,比如一个车轮压在前后两个磁钢上,这两个磁钢分别产生中断信号送给CPU,请问这两次中断之间的时间应该怎么计算呢?请高手给指点一下!
5880527 发表于 2009-6-2 14:10 | 显示全部楼层

要看你的时间长度和精度要求了

xhtxzxw 发表于 2009-6-2 16:20 | 显示全部楼层

嘿嘿

第一次中断:启动定时器,开始计时(打开定时中断,结合软件计数,可以计很长时间);
第二次中断:关闭定时器,取计时值.
computer00 发表于 2009-6-2 16:25 | 显示全部楼层

有些定时器有捕获功能,哪就更好了。

 楼主| ccjchen 发表于 2009-6-2 17:38 | 显示全部楼层

??

 我的定时时间大概在2分钟之内,精度达到ms级就可以了
xhtxzxw 说的能计时很长时间是什么意思?能计时1分钟吗?
computer00 说的“有些定时器有捕获功能”是什么意思?比如DSP的定时器吗?
xhtxzxw 发表于 2009-6-2 18:03 | 显示全部楼层

嘿嘿

计时理论上可以任意长度吧?
比如你的定时器每50ms中断一次,定义一个全局的长整型量并且初始化为0,每中断一次让这个长整型量增1,你到时候看看这个长整型量的值(有多少个50ms),再考虑一下定时器THx/TLx有多少(注意它是增量计数,而且一般有初始值),0.1ms的精度是很容易做到的.
ayb_ice 发表于 2009-6-2 20:55 | 显示全部楼层

要定时肯定是定时器了

charrijon 发表于 2009-6-3 20:45 | 显示全部楼层

用2812里面的cap功能好像就可以实现了

另外一种方法,如果硬件有cpld或者fpga之类的话就可以人为做一个程序,很简单的
computer00 发表于 2009-6-3 21:24 | 显示全部楼层

精度只要ms级,那可以开一个1ms的定时器中断,

在中断中查询IO口的方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

446

帖子

1

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