標(biāo)題: STC8H系列單片機(jī)中斷號大于31在keil編譯出錯的處理 [打印本頁]

作者: 沒有你    時間: 2020-4-2 22:54
標(biāo)題: STC8H系列單片機(jī)中斷號大于31在keil編譯出錯的處理
本帖最后由 沒有你 于 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)中斷入口的語句;
第三種方法則是不使用中斷號,而是用一個普通函數(shù)代替,只不過在普通函數(shù)里添加一條跳轉(zhuǎn)到對應(yīng)中斷入口的語句。
    如果在IAR for 8051平臺編譯,則沒有中斷號數(shù)量的限制,直接在頭文件中定義中斷號和地址就行,比如下圖所示:






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

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




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