- UID
- 852722
|
我现在在开发一个系统,用了三个中断,有外部中断1,定时器中断0,串口中断,我设定中断的优先级是:定时器中断,串口中断,外部中断,而且我的三个中断经常发生,有可能出现中断三级嵌套,也就是说,正在进行外部中断1,串口中断来了,在进行串口中断的同时,这时定时器中断来了。这样系统运行可靠吗?
=============================
我也曾做过一个三级嵌套程序。只不过我是用到两个定时中断和串口中断,正常的中断优先级为:INT0>T0>INT1>T0>串口中断。
51系列只两个中断优先级。设置时应该保证:高优先级中断和低优先级中断中的若干中断仍要满足上头提到的正常情况下的优先级。如:
要实现:INT1>T0>串口中断,则应该设置如下
SETB PX1
CLR PX0
CLR PT0
CLR PT1
CLR PS(串口中断优先级设置)
你的意思应该是要实现:T0>串口中断>INT0
则设置如下:
SETB PT0
SETB PS
CLR PX0
CLR PX1
CLR PT1
运行可靠。
============================
可以完全不用嵌套,一般的中断程序比较短,可以很快执行完.注意在中断程序中不要作长的延时等待. |
|