跪求pic 微控制器 外部中斷函式解析

2022-02-07 18:20:14 字數 1880 閱讀 6987

1樓:匿名使用者

你這個是pic那個晶元啊,各個pic晶元型號不同,暫存器也不同。

猜想一下,rb0為中斷引腳,那可能是pic16f88x系列的微控制器。

那要好好看看這晶元的資料手冊了,這個個portb0口還對應了乙個ad輸入端,如果不對anselh(模擬選擇器高位元組暫存器)這個暫存器進行操作,預設是ad輸入。所以你讀到的數值就不對了。所以,前頭配置時候需要anselh = 0; (如果不是f88x系列,那看一下對應的微控制器的資料手冊)

況且,並不需要那樣寫中斷程式,也不能這樣寫。 因為pic微控制器沒有中斷向量入口位址選擇。所以它一遇到中斷訊號便進入中斷子函式,如果你的程式還有其他中斷的話,就可能出錯(或者微控制器因干擾,產生內部某個外設模組的中斷,也會呼叫你寫的外部中斷程式)

所以,首先中斷子函式開始就需要判斷外部中斷標誌位intf是否被置位:

if(intf)

根據我做的經驗,pic微控制器的中斷內部最好不要寫延時函式,甚至不要呼叫其他函式,因為在呼叫中斷子函式時候,需要中斷的現場保護。在中斷裡呼叫其他函式,會影響現場保護時候的堆疊操作,而引起出錯甚至程式跑飛。

所以當中斷產生的時候,直接給a++即可,既:

void interrupt int()

gie = 1;

} 如果是像按鍵判斷的話,可以改一下硬體電路,在rb0輸入前串上乙個施密特觸發器74hc14,這樣可以在硬體上進行消抖。如果非要軟體消抖,可以把延時放在主程式裡,即進入中斷後把乙個變數置位,然後退出中斷程式,在主程式裡延時並判斷是否還為1.

2樓:匿名使用者

rb中斷使能和rb中斷標誌位都沒有,初始化時加上rbie=1;

rbif=0;

在中斷服務程式裡面加上中斷標誌

if(rbif==1)

if(rb0==0)

再試試……

微控制器外部中斷和定時器中斷函式巢狀問題 20

3樓:於於祥祥

void time0() interrupt 1 using 1 這裡顯示的是定時器1中斷,而你**中是0中斷,可能是這裡的問題。

外部中斷0的優先順序最高,所以你這樣用理論上是可行的。

4樓:小果不爛

盡量不要巢狀,否則,會瘋的

pic外部中斷程式設計(rb0)怎樣初始化

5樓:匿名使用者

你到底是要給rd口做中斷還是做資料口?

做普通輸入輸出的io口的話,要修改trisd暫存器,比如設定d口的高4位做輸入,低4位做輸出。那麼就是把0賦給要做輸出的位,把1賦值給做輸入的位:

banksel trisd ;換bankmovlw 0xf0 ;先把資料送到w臨時暫存器

movwf trisd,f ; trisd = 0xf0

stm32f103 外部中斷函式怎麼寫

微控制器外部中斷有兩種訊號方式,即電平方式和脈衝方式.什麼叫電平方式什麼叫脈衝方式

6樓:匿名使用者

對於51微控制器,外部中斷包括電平觸發和邊沿觸發。電平觸發方式是指當檢測到引腳是低電平時,進入中斷。邊沿觸發是指檢測到引腳由高電平變為低電平時,進入中斷

7樓:容濟觸控板

電平,就是讀取平均電壓,脈衝,就是讀取瞬間上公升沿或者下降沿電壓

8樓:道法自然

當檢測到輸入訊號保持低電平一段時間則進入中斷就是電平觸發方式。

當檢測到觸發訊號由高進入低的跳變過程的時候進入中斷是為邊沿觸發方式。

可以通過初始化有關暫存器,進行設定採用何種中斷方式。

微控制器外部中斷,微控制器外部中斷?

定時百器中斷是設定定時時間,到了該時間,就進行處理一次。可以處理按度鍵掃瞄,動態顯示,時鐘累加等問。外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。如果你的微控制器沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。定時百器中斷是設定定時時間,到了該時間,就進行處理一次。可以處理按度鍵掃...

微控制器外部中斷0和外部中斷,微控制器外部中斷0和外部中斷

你想要的結果是不是應該要把while 1 中的第乙個time1 0去掉。不知你 time2 是否有用 ew free sn free 執行一次要多長時間?若時間很短的話,有可能一直執行下去,因你不斷地把 time1清0,time1 10永遠滿足 若時間較長的話,執行一次 ew free sn fre...

微控制器中斷問題,高手進,微控制器C語言外部中斷程式問題,高手進

中斷函式寫在主函式之外,中斷函式是不能由主函式呼叫的,但是中斷函式本身可以呼叫其他函式。微控制器一般都有若干個中斷源,每個中斷源對應乙個中斷入口位址,也叫做中斷向量,中斷向量空間很小,一般在中斷向量處放入一條跳轉指令指向中斷服務程式位址,當你用c語言宣告乙個中斷函式時,編譯器會幫你完成這些工作。以上...