|
假設(shè)一個(gè)單片機(jī)定時(shí)器定時(shí)20微秒溢出一次,可是它的中斷服務(wù)函數(shù)需要50微秒才能完成。這時(shí)候在中斷函數(shù)內(nèi)又產(chǎn)生了了一次定時(shí)器溢出,即中斷請(qǐng)求。那么當(dāng)前一次中斷做完了,跳回主函數(shù)之后,是馬上進(jìn)入下一次中斷函數(shù)呢?還是說同級(jí)的中斷請(qǐng)求因?yàn)樵趫?zhí)行中斷函數(shù)時(shí)申請(qǐng)的,不能發(fā)生,被忽視了?
百度說有個(gè)中斷標(biāo)志,是說TF1嗎,如果在中斷服務(wù)函數(shù)結(jié)束后,標(biāo)志還在,就會(huì)馬上進(jìn)入下一次中斷函數(shù)?(假設(shè)在恰巧中斷服務(wù)函數(shù)的正中間申請(qǐng),不在開頭發(fā)生)
但是據(jù)我了解TF1是硬件清0,而且是中斷產(chǎn)生后TF1等于1,在進(jìn)入了中斷服務(wù)函數(shù)之后,馬上就TF1置0,也就是說在中斷服務(wù)函數(shù)的開頭執(zhí)行硬件清0。所以如果同級(jí)的第二次中斷請(qǐng)求(或者說標(biāo)志)在此處觸發(fā),被清0了,就不會(huì)在退出中斷服務(wù)函數(shù)時(shí),還存在中斷標(biāo)志了嗎? 也就是說同級(jí)中斷被無視了一次申請(qǐng)?能這樣理解嗎 |
|