打印

新手求助,关于单片机中断的问题,有点想不明白。

[复制链接]
3154|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lycf|  楼主 | 2011-8-11 23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如我用飞利浦P89V51单片机,利用PCA模块捕获脉冲,开中断。pca捕获中断函数里执行的指令是N=N+1的操作,N用来计数脉冲数。现在问题是这样的,假如我输入的脉冲频率很高,高到本次的pca中断函数还没执行完,下两次的pca模块中断请求已经到来,那么这样的话,计数的脉冲数会不会比实际的少?

相关帖子

沙发
highgear| | 2011-8-11 23:15 | 只看该作者
如果我没有记错的话,这种测量可以设置使用内置硬件计数器,不需要中断进行软件计数。

使用特权

评论回复
板凳
小涛xty| | 2011-8-12 08:31 | 只看该作者
沙发

使用特权

评论回复
地板
永远的不知| | 2011-8-12 11:05 | 只看该作者
1# lycf

如果频率高的话,应该使用定时器的计数模式。

使用特权

评论回复
5
DownCloud| | 2011-8-12 13:01 | 只看该作者
频率一般不可能那么高.正解在2楼.

使用特权

评论回复
6
老鱼探戈| | 2011-8-12 22:45 | 只看该作者
LS的回答好牵强

使用特权

评论回复
7
lycf|  楼主 | 2011-11-25 17:35 | 只看该作者
2# highgear
主要是中断程序中不止执行N=N+1操作,里面还有记录两次中断的时间间隔。以及对频率的计算什么的。所以直接设置成内置硬件计数行不通。
另外,我测试了一下,当输入的频率增大到一定的时候,计数的脉冲就会比实际的少。

使用特权

评论回复
8
joyme| | 2011-11-25 17:53 | 只看该作者
耗时间的计算不能放在中断里,你可以把采集的数据先用数组存起来,在主循环里做分析计算。
当然如果频率高过中断频率,这个方法就不可能实现

使用特权

评论回复
9
NE5532| | 2011-11-25 21:35 | 只看该作者
如果中断频率高于中断处理能力,任何单片机的任何中断都会出问题。一般通过转硬件方法或者软件技巧来处理。

使用特权

评论回复
10
ayb_ice| | 2011-11-26 08:09 | 只看该作者
中断也不是万能的,MCU的时钟也是有限制的,超过范围不正常工作那太正常了

使用特权

评论回复
11
yuandm1| | 2011-11-26 08:31 | 只看该作者
超过测量范围了吧

使用特权

评论回复
12
liang7143| | 2011-11-26 14:32 | 只看该作者
不在能力范围之内~~
无需考虑 O(∩_∩)O哈哈~
换吧

使用特权

评论回复
13
JLINGON| | 2011-11-26 16:12 | 只看该作者
如果中断还没结束  下一次中断又来了  这不是就出错了么

使用特权

评论回复
14
gzstway| | 2011-11-26 23:59 | 只看该作者
xiuxi

使用特权

评论回复
15
刘前辈| | 2011-11-27 10:58 | 只看该作者
本帖最后由 刘前辈 于 2011-11-27 11:03 编辑

很简单,按照软件规则——它只要做到“极尽全力”;
1、你计算频率只是计算2个脉冲之间的时间,并不需要计算所有脉冲之间时间。所以你并不担心两次计算之间丢失几个脉冲。
2、你又要求不丢失脉冲数。

2者结合,
1、采用2楼highgear所说,用计数器记录脉冲;——这样保证了脉冲不丢失。
2、用中断ISR计算2个脉冲之间时间;(这时中断是关着的,你并不必担心丢失脉冲,因为那边计数器并行工作帮你记录着呢。)
3、计算完当前脉冲频率,再次开放中断,采集并计算所能采集到的下一个时钟频率;——这叫做极尽全力。这样,频率计算精度也保证了,脉冲也不丢失。
   
      highgear 是OS 大师,OS 软件中的“极尽全力”概念,所长可以借此给大家讲一课了。



、、

使用特权

评论回复
16
aihe| | 2011-11-27 15:39 | 只看该作者
楼主在做频率计吗?
一般有两种方式,被测频率较低的话,用此脉冲做闸锁信号对标准高速脉冲计数。被测信号可以分频后再测。
被测频率较高的话,直接对脉冲信号计数,可以用单片机自己稳定闸锁信号

使用特权

评论回复
17
lycf|  楼主 | 2012-3-3 14:13 | 只看该作者
16# aihe
不好意思,很久没上论坛了。不完全是频率计,需要将频率转换成流量。测量频率不高,不大于3K。正如8楼前辈所说,耗时间的计算不放在中断里就好了。

使用特权

评论回复
18
lycf|  楼主 | 2012-3-3 14:19 | 只看该作者
感谢这么多前辈在百忙之中能抽空时间来回答我的问题,真心的感谢!受益匪浅啊!

使用特权

评论回复
19
coody| | 2012-3-3 15:00 | 只看该作者
丢失中断

使用特权

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

本版积分规则

3

主题

69

帖子

1

粉丝