標(biāo)題: 關(guān)于51單片機中斷函數(shù)在個個文檔中的寫法問題 [打印本頁]

作者: 豆豆王一    時間: 2022-3-2 21:07
標(biāo)題: 關(guān)于51單片機中斷函數(shù)在個個文檔中的寫法問題
  本人電子專業(yè),最近在重新看51單片機的時候遇到一個問題,外部中斷我在使用的時候在main。c文件中直接寫不用聲明就能觸發(fā)。但是換到其他文檔中并且在主函數(shù)文檔引用了卻還是不能夠使用。我需要在重新聲明嗎?并且在聲明中中斷優(yōu)先級不能夠在H文件中出現(xiàn)。我應(yīng)該怎么做

作者: 188610329    時間: 2022-3-2 22:16
中斷函數(shù),不存在調(diào)用,何來聲明?
作者: Y_G_G    時間: 2022-3-3 21:01
只要是中斷函數(shù),后面都是加了interrupt的,這是不需要聲明的,也沒有調(diào)用一說
中斷優(yōu)先等級在主函數(shù)中設(shè)置就可以,中斷函數(shù)可以放在任何地方
如果是單獨放一個.C文件的話,只要是.h包含了,就可以進入中斷
現(xiàn)在是不知道你要干嘛?
作者: yzwzfyz    時間: 2022-3-4 15:16
設(shè)中斷程序名是S。
對于單片機來說,中斷被響應(yīng)后,就會跳轉(zhuǎn)到一個特定的地方(假設(shè):中斷地址是Z)。
只要編譯平臺將程序S放置到地址Z上,則中斷發(fā)生后S必被執(zhí)行。
于是平臺要知道是誰需要放在Z上。關(guān)鍵字就是【interrupt】。
所以,只要你的【interrupt】S,被編譯平臺認(rèn)可,就大功告成了。

中斷優(yōu)先級在CPU中,是對某個寄存器進行0、1設(shè)置來實現(xiàn)的,當(dāng)兩個中斷同時發(fā)生時,誰優(yōu)先執(zhí)行,就看這個器中哪個位是0是1。
答案有了:如果H文件中能夠?qū)@個寄存器賦值(例如:賦值這個寄存器=XX數(shù)),則可以。
反之則不可以。
這就要看編譯器的智能程度了。
智能高的,可以將【H文件中對這個寄存器的定義】編譯成一個賦值語句。
智能低的,則提示你【H文件中對這個寄存器的定義】編譯失敗。
所以,建議你:寫一句賦值語句給【中斷優(yōu)先級寄存器吧】,放在H文件中,也是要一句,你省不了的。當(dāng)然采納默認(rèn)值,就不必討論為個問題了。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1