PIC 中斷 服務(wù)程序
一個(gè)簡(jiǎn)單的中斷服務(wù)示范函數(shù)如下:
本文引用地址:http://www.ex-cimer.com/article/201611/320363.htmvoid interrupt ISR(void) { //中斷服務(wù)程序
} //中斷結(jié)束并返回
PICC 會(huì)自動(dòng)加入代碼實(shí)現(xiàn)中斷現(xiàn)場(chǎng)的保護(hù),并在中斷結(jié)束時(shí)自動(dòng)恢復(fù)現(xiàn)場(chǎng),所以編程員無(wú)需象編寫(xiě)匯編程序那樣加入中斷現(xiàn)場(chǎng)保護(hù)和恢復(fù)的額外指令語(yǔ)句。但如果在中斷服務(wù)程序中需要修改某些全局變量時(shí),是否需要保護(hù)這些變量的初值將由編程員自己決定和實(shí)施。用C 語(yǔ)言編寫(xiě)中斷服務(wù)程序必須遵循高效的原則:
z 代碼盡量簡(jiǎn)短,中斷服務(wù)強(qiáng)調(diào)的是一個(gè)“快”字。
z 避免在中斷內(nèi)使用函數(shù)調(diào)用。
z 避免在中斷內(nèi)進(jìn)行數(shù)學(xué)運(yùn)算。數(shù)學(xué)運(yùn)算將很有可能用到庫(kù)函數(shù)和許多中間變量,就算不出現(xiàn)遞歸調(diào)用的問(wèn)題,光在中斷入口和出口處為了保護(hù)和恢復(fù)這些中間臨時(shí)變量就需要大量的開(kāi)銷(xiāo),嚴(yán)重影響中斷服務(wù)的效率。
中檔系列PIC 單片機(jī)的中斷入口只有一個(gè),因此整個(gè)程序中只能有一個(gè)中斷服務(wù)函數(shù)。
評(píng)論