找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

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

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




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





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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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