|
中斷zhidao分高低兩個優(yōu)先級,高優(yōu)先級的中斷能打斷低優(yōu)先級的中斷。
但同級中斷是不能打斷同級中斷的!無論該中斷函數(shù)有多長,在執(zhí)行到一半這個中斷又發(fā)生了,還是要等到該中斷函數(shù)執(zhí)行完畢,并再執(zhí)行了一條主程序指令后才會再次進入該中斷。
不過,若樓主版恰好在這個低優(yōu)先級中斷服務(wù)程序中修改了該中斷為高優(yōu)先級,那么如果該中斷函數(shù)比較長,執(zhí)行到一半又觸發(fā)了這個中斷,則該中斷函數(shù)就會被重新從頭開始執(zhí)行(中斷嵌套)。這是因為除串口中斷以外的其他中斷,在 CPU 響應(yīng)該中斷,程序轉(zhuǎn)入權(quán)該中斷函數(shù)前就已經(jīng)將該中斷的中斷標志清零了。
另外,51的串口中斷比較特別,因為需要軟件清除串口中斷標志,所以只要在未清串口中斷標志前,是不會發(fā)生上述這樣的中斷嵌套的。 |
|