430执行高级中断服务程序时,能否响应低级中断?

fuhognquan   2005-3-2 19:23 楼主

回复评论 (7)

查了一下,好象是不能,这样就有个问题。
如果430进入低功耗模式,一个高级中断发生,而中断服务程序又很长,那么这段时间,比他低级的中断就无法得到响应,而这个低级中断又很重要,这就产生麻烦了。
点赞  2005-3-2 19:30
中断服务程序最好不要太长,否则会有问题
点赞  2005-3-2 21:20

4楼 xzl 

在高级中断服务程序中分时查询低级中断的中断标志后,再处理对应低级中断的处理可能会好一些
点赞  2005-3-3 03:50
有道理,好。
点赞  2005-3-3 08:07

这是一个中断嵌套的问题

我也是最近遇到这样的问题,TA产生时间中断,但我还需要P1口的外部中断采集信息,而且P1口的中断信息更重要,但中断优先级P1低于TA,
我查了以前的帖子,别人的处理方法:
1:在TA中断中对P1中断标志位进行判断,然后先执行P1中断程序
2:在TA中断中第一行就打开总中断,_EINT();这样就实现了中断嵌套。

我在实际中用的是方法2,效果还不错,你可以试试!
点赞  2005-3-3 17:28
可以用实时操作系统进行多任务处理。
例如uccos-II
点赞  2005-3-3 18:33

nfreebird

引用:

在高级中断服务程序中分时查询低级中断的中断标志后,再处理对应低级中断的处理可能会好一些
处理低级中断标志时,最好将高级中断允许位关掉。否则将会再次引起高级中断。
点赞  2005-3-4 09:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复