52单片机中断优先级的问题

mcd511786450   2009-10-15 16:34 楼主
单片机型号是AT89LS52

串口中断优先级最高,即IP寄存器中的串口位置为1,其他位置为0.

请问当计时器0的中断服务函数运行时(中断优先级低于串口),来了一个串口中断请求,这时候高优先级的串口中断是否可以打断正在执行的计时器0的中断服务函数呢?

从程序反应的问题来看,应该是打不断,但是我们一个资深工程师说可以打断,也有工程师说在51中(不同于ARM)一个中断服务函数运行时是无法打断的(即使优先级低)。

有谁能确切的,准确的答案吗?

回复评论 (3)

记住:如果系统在进入中断后,一般硬件自动屏蔽掉其他中断,就是全局中断标志位归零。
如果在低级中断代码中使能它,则可以响应高级中断。注意堆栈是否可能溢出。
点赞  2009-10-15 16:53
C51中进入中断程序,其自带有将中断屏蔽的汇编,其它中断被禁止,如果想中断嵌套,在中断程序中可以将中断开启
点赞  2009-10-16 17:21
如果没有禁止中断,是可以产生中断的....
但不知道用C实现的ISR是不是自动禁止了全局中断.....
点赞  2009-10-16 21:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复