a 如果是不帶子中斷的內(nèi)部中斷:發(fā)生后SRCPND相應(yīng)位置1,如果沒(méi)有被INTMSK屏蔽,那么等待進(jìn)一步處理。
b 如果是帶子中斷的內(nèi)部中斷:發(fā)生后SUBSRCPND相應(yīng)位置1,如果沒(méi)有被INTSUBMSK屏蔽,那么SRCPND相應(yīng)位置1,等待進(jìn)一步處理,幾個(gè)SUBSRCPND可能對(duì)應(yīng)同一個(gè)SRCPND,對(duì)應(yīng)表如下:
SRCPND SUBSRCPND
INT_UART0 INT_RXD0,INT_TXD0,INT_ERR0
INT_UART1 INT_RXD1,INT_TXD1,INT_ERR1
INT_UART2 INT_RXD2,INT_TXD2,INT_ERR2
INT_ADC INT_ADC_S, INT_TC
INT_CAM INT_CAM_C, INT_CAM_P
INT_WDT_AC97 INT_WDT, INT_AC97
c 如果是外部中斷:EINT0-EINT3發(fā)生后SRCPND相應(yīng)位置1,如果沒(méi)有被INTMSK屏蔽,那么等待進(jìn)一步處理。EINT4-EINT23發(fā)生后EINTPEND相應(yīng)位置1,如果沒(méi)有被EINTMASK屏蔽,那么SRCPND相應(yīng)位EINT4-7 或EINT8-23置1,如果沒(méi)有被INTMSK屏蔽,等待進(jìn)一步處理,幾個(gè)EINTPEND對(duì)應(yīng)同一個(gè)SRCPND,對(duì)應(yīng)表如下:
b 如果是帶子中斷的內(nèi)部中斷,需設(shè)置INTSUBMSK和INTMSK,讓它門(mén)不屏蔽中斷就可以了。
c 如果是外部中斷,對(duì)于EINT8-23需要設(shè)置EINTMASK和INTMSK。對(duì)于EINT0-EINT3只需設(shè)置INTMSK。
7.中斷的清除。更多技術(shù)交流可加qq2232894713
a.如果是不帶子中斷的內(nèi)部中斷,只需清除SRCPND,注意清除需位置1。
b 如果是帶子中斷的內(nèi)部中斷,需清除SRCPND和SUBSRCPND,注意先清除SUBSRCPND,再清除SRCPND。因?yàn)椋绻阆惹宄齋RCPND的話,然后在清除SUBSRCPND的過(guò)程中,SRCPND會(huì)以為又有中斷發(fā)生,又會(huì)置1。也就是說(shuō)一次中斷會(huì)響應(yīng)兩次。所以必須先掐斷源頭。
c 如果是外部中斷,對(duì)于EINT8-23需要清除EINTPEND和SRCPND(同樣注意順序)。對(duì)于EINT0-EINT3只需清除SRCPND。