打印

频繁进出中断有什么后果

[复制链接]
4239|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
entepino|  楼主 | 2011-8-13 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我程序运行时间大概30ms左右,每100ms进一次低中断进行AD采集(采集大概需要50us左右),可能每隔几秒进一次高中断接受和发送一些CAN数据;在这种情况下,程序运行正常(我大概测试了50-60次没有发现问题);后期由于AD采集的需要,把进入低中断时间改成了3ms,即3ms进一次低中断,进低中断非常的频繁,高中断还是每隔几秒进一次,发现程序运行就出现非常奇怪的错误,一般很容易把需要发送的CAN数据多发送几次;请问频繁进中断,会有什么后果?补充:单片机PIC18F只有两个中断。

相关帖子

沙发
entepino|  楼主 | 2011-8-13 22:15 | 只看该作者
我自己想了一下,频繁进出中断,就是频繁压栈弹栈,应该没什么问题,只要程序没什么逻辑错误,进出中断的时间可以做到很小,即50us都应该是可以的,这种看法,对吗?
  请高手进来说说,谢谢!

使用特权

评论回复
板凳
NE5532| | 2011-8-14 10:06 | 只看该作者
没有任何问题,中断频率只取决于单片机的处理能力限制。单片机本来就是设计成这样用的,你的windows全部是基于中断的。

出问题是自己程序结构没设计好或者编程有低级错误。按你说的中断频率,PIC18跑起来只当游戏。另外补充,PIC18不是只有2个中断,是只有2个中断入口。

使用特权

评论回复
地板
sysdriver| | 2011-8-14 12:50 | 只看该作者
3ms不算短了,现在单片机都us级以上的,也就是3000条指令以上。除非有些算法对时序特别在意的除外。因为如果中断处理占用时间多的话,对时序要求严格的就不能满足了。

使用特权

评论回复
5
原野之狼| | 2011-8-14 12:53 | 只看该作者
3ms很慢了 你的ISR需要耗费多长时间呢

使用特权

评论回复
6
FLOSS| | 2011-8-14 12:54 | 只看该作者
没问题 你看看你自己的程序逻辑是不是有问题 把中断关掉监控下是否问题还存在

使用特权

评论回复
7
yewuyi| | 2011-8-14 20:52 | 只看该作者
如果现在3MS中断会造成这个问题,那么你原来的30MS中断的程序一定也存在隐患,则是需要一定的触发条件或者出现有一定的概率,你一时发现不了而已.

只要你的任务能调度运行的过来,中断的快慢并不是什么问题.

使用特权

评论回复
8
entepino|  楼主 | 2011-8-14 21:39 | 只看该作者
恩,好的,谢谢大家指点,跟我的想法一致。

使用特权

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

本版积分规则

211

主题

649

帖子

2

粉丝