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