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

comdoc 2009-10-15 04:34:50
单片机型号是AT89LS52

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

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

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

有谁能确切的,准确的答案吗?
...全文
354 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Great_Bug 2009-10-16
  • 打赏
  • 举报
回复
如果没有禁止中断,是可以产生中断的....
但不知道用C实现的ISR是不是自动禁止了全局中断.....
mirrorhd 2009-10-16
  • 打赏
  • 举报
回复
C51中进入中断程序,其自带有将中断屏蔽的汇编,其它中断被禁止,如果想中断嵌套,在中断程序中可以将中断开启
DISINHUI 2009-10-15
  • 打赏
  • 举报
回复
记住:如果系统在进入中断后,一般硬件自动屏蔽掉其他中断,就是全局中断标志位归零。
如果在低级中断代码中使能它,则可以响应高级中断。注意堆栈是否可能溢出。

27,382

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧