找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2054|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

關(guān)于51單片機(jī)中斷函數(shù)在個個文檔中的寫法問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:941788 發(fā)表于 2022-3-2 21:07 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  本人電子專業(yè),最近在重新看51單片機(jī)的時候遇到一個問題,外部中斷我在使用的時候在main。c文件中直接寫不用聲明就能觸發(fā)。但是換到其他文檔中并且在主函數(shù)文檔引用了卻還是不能夠使用。我需要在重新聲明嗎?并且在聲明中中斷優(yōu)先級不能夠在H文件中出現(xiàn)。我應(yīng)該怎么做
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:624769 發(fā)表于 2022-3-2 22:16 來自觸屏版 | 只看該作者
中斷函數(shù),不存在調(diào)用,何來聲明?
回復(fù)

使用道具 舉報(bào)

板凳
ID:401564 發(fā)表于 2022-3-3 21:01 | 只看該作者
只要是中斷函數(shù),后面都是加了interrupt的,這是不需要聲明的,也沒有調(diào)用一說
中斷優(yōu)先等級在主函數(shù)中設(shè)置就可以,中斷函數(shù)可以放在任何地方
如果是單獨(dú)放一個.C文件的話,只要是.h包含了,就可以進(jìn)入中斷
現(xiàn)在是不知道你要干嘛?
回復(fù)

使用道具 舉報(bào)

地板
ID:123289 發(fā)表于 2022-3-4 15:16 | 只看該作者
設(shè)中斷程序名是S。
對于單片機(jī)來說,中斷被響應(yīng)后,就會跳轉(zhuǎn)到一個特定的地方(假設(shè):中斷地址是Z)。
只要編譯平臺將程序S放置到地址Z上,則中斷發(fā)生后S必被執(zhí)行。
于是平臺要知道是誰需要放在Z上。關(guān)鍵字就是【interrupt】。
所以,只要你的【interrupt】S,被編譯平臺認(rèn)可,就大功告成了。

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

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表