|
圖中,開關(guān)S2上有10個按鍵,為了檢測是哪個按鍵,用ADC檢測來識別。尷尬的是,外部中斷是硬件自動清除中斷標志位,而在外部中斷中用ADC時,又會再次引起外部中斷,導(dǎo)致在中斷中出不來。如果把ADC檢測放在中斷函數(shù)外部處理,時效性又會降低。這時有一個辦法來處理:1、設(shè)置一個不用的中斷比如定時器2沒有用到,就把定時器2中斷打開并將優(yōu)先級設(shè)置為最高,2、設(shè)置所有的按鍵改變都會引起外部中斷,3、進入外部中斷后,首先對外部中斷使能關(guān)閉,同時將定時器2中斷標志位置1,4、在定時器中斷中運行ADC程序,結(jié)束后在定時器中使能外部中斷。
=========有種多此一舉的感覺,比如在外部中斷函數(shù)中關(guān)閉外部中斷使能,再運行ADC檢測程序,再之后打開中斷使能也可以==========
當(dāng)然上面用中斷嵌套也可以。。。。加深理解中斷運行機制
電路原理圖如下:
控制部分電路原理圖
|
|