![]() |
發(fā)布時(shí)間: 2022-9-22 11:25
正文摘要:首先感謝大家百忙之中抽空關(guān)注這個(gè)問題,首先對關(guān)注的人表示感謝. 開發(fā)環(huán)境IAR Embedded Workbench for STM8(3.11.4 已處理好) .開發(fā)芯片STM8S208MB.關(guān)于求助的內(nèi)容有以下幾點(diǎn): 1 關(guān)于標(biāo)志位的定義,此標(biāo) ... |
【1 關(guān)于標(biāo)志位的定義……】 答:51單片機(jī)有個(gè)特別靈活的地方,就是有256個(gè)可以按位進(jìn)行操作的指令。其中系統(tǒng)用了128個(gè)。所以用戶還可使用128個(gè)。 STM8和32相對比51功能強(qiáng)一點(diǎn),內(nèi)存也大多了,其設(shè)計(jì)理念就沒有考慮用位操作的指令,所以無法直接按位操作。 如果你非要按位操作,只能變通一下。用與、或等邏輯運(yùn)算,將字節(jié)邏輯到位,進(jìn)行操行。如最高位是否為1:與8000H。置1:或8000H。 【2 關(guān)于中斷函......】 答:單片機(jī)上有若干個(gè)中斷源,每個(gè)中斷必然有一個(gè)入口(CPU執(zhí)行的地址),有時(shí)幾種中斷源會共用一個(gè)入口。 51的中斷入口地址是指定死的。如0003H,0013H。也即對應(yīng)的中斷響應(yīng)后進(jìn)入0003H地址執(zhí)行程序。 STM8中斷入口稍活一些,它是從指定的地址中,取出你自由定義的中斷入口地址,也就有了中斷向量一說。方式復(fù)雜了一步,但更活了,入口可以在任意位置了。 如果你用匯編寫程序,必須注意這些。 如果你用C寫程序,編譯平臺會幫助你處理這些問題,你只要告訴平臺,一個(gè)地址變量就可以了。 【3 關(guān)于中斷的標(biāo)志位....] 答:當(dāng)中斷源動作時(shí),是否發(fā)生中斷分兩類。 一類是強(qiáng)制性的,必須響應(yīng),稱為非屏蔽中斷。 一類是由你決定的,也即給你一個(gè)開關(guān),由你來決定是否允許它被響應(yīng)。 各中斷源為了表達(dá)自己發(fā)生了中斷動作,就必須給出一個(gè)標(biāo)記,這就是中斷標(biāo)記。 特別是,有的中斷源共用一個(gè)入口,就更需要用這個(gè)標(biāo)記區(qū)分是誰發(fā)生了中斷。 中斷標(biāo)記只負(fù)責(zé)申請中斷,至于是不是被響應(yīng)執(zhí)行,那是CPU的事。如果這個(gè)標(biāo)記不被清除,它就一直申請。所以執(zhí)行完中斷程序后,要記得清除它,非則:又重新來一次又一次。 【4 關(guān)于ST-LINK/V2.我......】 答:STM8和32是完全不同的指定系統(tǒng)。如果你是編譯平臺,同樣一個(gè)IF語句,你如果編譯成CPU代碼呢?寫成STM8的呢?還是32的呢? 必須給出一個(gè)區(qū)分的方式。 【5 在程序編譯沒有錯(cuò)。......】 答:【編譯沒有錯(cuò)】只是平臺對你寫的程序,評價(jià)為:沒有違反它的規(guī)定。 不表示你沒有其它錯(cuò)誤行為! |
Powered by 單片機(jī)教程網(wǎng)