找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

STC8H系列單片機(jī)中斷號(hào)大于31在keil編譯出錯(cuò)的處理

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 沒有你 于 2020-4-2 22:57 編輯

    今天瀏覽了STC官方的STC8H系列單片機(jī)的數(shù)據(jù)手冊(cè)。在附錄J說明了在keil中編譯中斷號(hào)大于31需要特殊處理。原因是STC8H系列單片機(jī)新增了不少中斷向量入口,比如RTC中斷、P0端口中斷和P1端口中斷等入口地址,如下圖所示。




    如果用戶用到中斷號(hào)大于31,則需要特殊處理。STC官方給出的了三種比較折中的解決方法:第一種是借用keil保留的中斷號(hào)13,需要嵌入?yún)R編代碼,在中斷號(hào)13入口地址處增加一條跳轉(zhuǎn)到對(duì)應(yīng)中斷入口的語句;第二種方法和第一種類似,借用其他未使用的0-31之間的中斷號(hào),需要嵌入?yún)R編代碼,在中斷號(hào)入口地址處增加一條跳轉(zhuǎn)到對(duì)應(yīng)中斷入口的語句;
第三種方法則是不使用中斷號(hào),而是用一個(gè)普通函數(shù)代替,只不過在普通函數(shù)里添加一條跳轉(zhuǎn)到對(duì)應(yīng)中斷入口的語句。
    如果在IAR for 8051平臺(tái)編譯,則沒有中斷號(hào)數(shù)量的限制,直接在頭文件中定義中斷號(hào)和地址就行,比如下圖所示:





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:65956 發(fā)表于 2020-4-3 08:47 | 只看該作者
注意看手冊(cè),有那么多中斷功能也就只有那么一二種,要選對(duì)才可以吧,我還沒有用過,只是友情提醒
回復(fù)

使用道具 舉報(bào)

板凳
ID:351097 發(fā)表于 2020-4-3 10:40 | 只看該作者
aking991 發(fā)表于 2020-4-3 08:47
注意看手冊(cè),有那么多中斷功能也就只有那么一二種,要選對(duì)才可以吧,我還沒有用過,只是友情提醒

你說的對(duì),一般情況下用到中斷功能不會(huì)多。不過,STC8H可有46個(gè)中斷功能,不像普通的STC89C52。如果用到大于31中斷號(hào),還是要參照STC官方的做法;蛘吣阌凶约邯(dú)特的解決方法也可以分享出來。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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