查了一下,好象是不能,这样就有个问题。
如果430进入低功耗模式,一个高级中断发生,而中断服务程序又很长,那么这段时间,比他低级的中断就无法得到响应,而这个低级中断又很重要,这就产生麻烦了。
在高级中断服务程序中分时查询低级中断的中断标志后,再处理对应低级中断的处理可能会好一些
这是一个中断嵌套的问题
我也是最近遇到这样的问题,TA产生时间中断,但我还需要P1口的外部中断采集信息,而且P1口的中断信息更重要,但中断优先级P1低于TA,
我查了以前的帖子,别人的处理方法:
1:在TA中断中对P1中断标志位进行判断,然后先执行P1中断程序
2:在TA中断中第一行就打开总中断,_EINT();这样就实现了中断嵌套。
我在实际中用的是方法2,效果还不错,你可以试试!
可以用实时操作系统进行多任务处理。
例如uccos-II
nfreebird
引用:
在高级中断服务程序中分时查询低级中断的中断标志后,再处理对应低级中断的处理可能会好一些
|
|
处理低级中断标志时,最好将高级中断允许位关掉。否则将会再次引起高级中断。