国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年01月05日(星期日)

正在發(fā)生

2018年01月05日 | C51程序設(shè)計(jì)中斷及寄存器使用方法

發(fā)布者:代碼漫游者 來(lái)源: eefocus關(guān)鍵字:C51  程序設(shè)計(jì)  中斷  寄存器 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

如果在中斷服務(wù)函數(shù)ISR中使用寄存器,那么必須處理好using的使用問(wèn)題:
1、中斷服務(wù)函數(shù)使用using指定與主函數(shù)不同的寄存器組(主函數(shù)一般使用Register bank 0)。
2、中斷優(yōu)先級(jí)相同的ISR可用using指定相同的寄存器組,但優(yōu)先級(jí)不同的ISR必須使用不同的寄存器組,在ISR中被調(diào)用的函數(shù)也要使用using指定與中斷函數(shù)相同的寄存器組。用reentranr指明可重入函數(shù)。
3、如果不用using指定,在ISR的入口,C51默認(rèn)選擇寄存器組0,這相當(dāng)于中斷服務(wù)程序的入口首先執(zhí)行指令:
MOV PSW #0
這點(diǎn)保證了,沒(méi)使用using指定的高優(yōu)先級(jí)中斷。可以中斷使用不同的寄存器組的低優(yōu)先級(jí)中斷。
4、使用using關(guān)鍵字給中斷指定寄存器組,這樣直接切換寄存器組而不必進(jìn)行大量的PUSH和POP操作,可以節(jié)省RAM空間,加速M(fèi)CU執(zhí)行時(shí)間。寄存器組的切換,總的來(lái)說(shuō)比較容易出錯(cuò),要對(duì)內(nèi)存的使用情況有比較清晰的認(rèn)識(shí),其正確性要由你自己來(lái)保證。特別在程序中有直接地址訪問(wèn)的時(shí)候,一定要小心謹(jǐn)慎!至于“什么時(shí)候要用到寄存器組切換”,一種情況是:當(dāng)你試圖讓兩個(gè)(或以上)作業(yè)同時(shí)運(yùn)行,而且它們的現(xiàn)場(chǎng)需要一些隔離的時(shí)候,就會(huì)用上了。在ISR或使用實(shí)時(shí)操作系統(tǒng)RTOS中,寄存器非常有用。

寄存器組使用的原則:
1、8051的最低32個(gè)字節(jié)分成4組8寄存器。分別為寄存器R0到R7。寄存器組由PSW的低兩位選擇。在ISR中,MCU可以切換到一個(gè)不同的寄存器組。對(duì)寄存器組的訪問(wèn)不可位尋址,C51編譯器規(guī)定使用using或禁止中斷的函數(shù)(#pragma dISAble)均不能返回bit類型的值。
2、主程序(main函數(shù))使用一組,如bank 0;低中斷優(yōu)先級(jí)的所有中斷均使用第二組,如bank 1;高中斷優(yōu)先級(jí)的所有中斷均使用再另外一組,如bank 2。顯然,同級(jí)別的中斷使用同一組寄存器不會(huì)有問(wèn)題,因?yàn)椴粫?huì)發(fā)生中斷嵌套;而高優(yōu)先級(jí)的中斷則要使用與低優(yōu)先級(jí)中斷不同的一組,因?yàn)橛锌赡艹霈F(xiàn)在低優(yōu)先級(jí)中斷中發(fā)生高優(yōu)先級(jí)中斷的情況。編譯器會(huì)自動(dòng)判斷何時(shí)可使用絕對(duì)寄存器存取。
3、在ISR中調(diào)用其它函數(shù),必須和中斷使用相同的寄存器組。當(dāng)沒(méi)用NOAREGS命令做明確的聲明,編譯器將使用絕對(duì)寄存器尋址方式訪問(wèn)函數(shù)選定(即用using或REGISTERBANK指定)的寄存器組,當(dāng)函數(shù)假定的和實(shí)際所選的寄存器組不同時(shí),將產(chǎn)生不可預(yù)知的結(jié)果,從而可能出現(xiàn)參數(shù)傳遞錯(cuò)誤,返回值可能會(huì)在錯(cuò)誤的寄存器組中。
舉一例子:當(dāng)需要在中斷內(nèi)和中斷外調(diào)用同一個(gè)函數(shù),假定按照程序的流程控制,不會(huì)出現(xiàn)函數(shù)的遞歸調(diào)用現(xiàn)象,這樣的調(diào)用會(huì)不會(huì)出現(xiàn)問(wèn)題?若確定不會(huì)發(fā)生重入情況,則有以下兩種情況:
1、如果ISR和主程序使用同一寄存器組(主程序缺省使用BANK 0,若ISR沒(méi)有使用using為其指定寄存器區(qū),則缺省也使用BANK 0),則不需其他設(shè)置。
2、如果ISR和主程序使用不同的寄存器組(主程序缺省使用BANK 0,ISR使用using指定了其他BANK),則被調(diào)用函數(shù)必須放在:
#pragma NOAREGS
#pragma AREGS
控制參數(shù)對(duì)中,指定編譯器不要對(duì)該函數(shù)使用絕對(duì)寄存器尋址方式;或者也可在Options->C51,選中“Dont use absolute register aCCesses”,使所有代碼均不使用絕對(duì)寄存器尋址方式(這樣,執(zhí)行效率將稍有降低)。不論以上的哪一種情況,編譯器均會(huì)給出重入警告,需手工更改OVERLAY參數(shù),做重入說(shuō)明。
3、還有一種辦法:如果被調(diào)用函數(shù)的代碼不是很長(zhǎng),還是將該函數(shù)復(fù)制一份,用不同的函數(shù)名代替,這種情況適合ROM有足夠多余的空間。
因此,對(duì)using關(guān)鍵字的使用,如果沒(méi)把握,寧可不用,交給編譯系統(tǒng)自己去處理好了。

#pragma disable
在函數(shù)前聲明,只對(duì)一個(gè)函數(shù)有用,該函數(shù)調(diào)用過(guò)程中,將不可被中斷。

遞歸或可重入函數(shù)指定


在主程序和中斷程序都調(diào)用的函數(shù)容易出現(xiàn)問(wèn)題,用寄存器傳遞參數(shù),內(nèi)部變量在RAM中,函數(shù)重入時(shí)候,會(huì)破壞上次的數(shù)據(jù),用下面兩種方法解決函數(shù)重入問(wèn)題:
在相應(yīng)的函數(shù)前,加“#pramga disable”聲明,只允許主程序或者中斷之一調(diào)用該函數(shù);
將該函數(shù)說(shuō)明為可重入:VOID func(para..) reentrant;


指定存儲(chǔ)模式



由small comPACt及l(fā)arge說(shuō)明,例如:



void fun1(void) small { }



提示:small說(shuō)明的函數(shù)內(nèi)部變量全部使用內(nèi)部RAM。關(guān)鍵的經(jīng)常性的耗時(shí)的


地方可以這樣聲明,以提高運(yùn)行速度。


關(guān)鍵字:C51  程序設(shè)計(jì)  中斷  寄存器 引用地址:C51程序設(shè)計(jì)中斷及寄存器使用方法

上一篇:在C51程序設(shè)計(jì)中變量的空間分配幾個(gè)方法
下一篇:C51在程序設(shè)計(jì)中的頭文件用法

推薦閱讀

編者按:2016年11月,樂(lè)視手機(jī)供應(yīng)鏈欠款危機(jī)爆發(fā),從而引發(fā)樂(lè)視體系資金鏈斷裂。此后,樂(lè)視負(fù)面新聞不斷,債務(wù)問(wèn)題愈演愈烈。劇烈動(dòng)蕩接踵而至。2017年7月,樂(lè)視系3家公司及樂(lè)視網(wǎng)董事長(zhǎng)賈躍亭夫婦的12.37億元資產(chǎn)被司法凍結(jié)。隨后,賈躍亭辭去樂(lè)視網(wǎng)董事長(zhǎng)職務(wù)。這使我們開(kāi)始留意樂(lè)視體系內(nèi)最優(yōu)質(zhì)業(yè)務(wù)樂(lè)視電視的生存狀況——我們希望了解,這塊樂(lè)視在業(yè)...
集微網(wǎng)消息(文/科技瞄),2019年1月4日消息,西班牙媒體證實(shí)西班牙兩家電信運(yùn)營(yíng)商Vodafone和Orange正計(jì)劃采用華為和/或中興的5G設(shè)備,并向西班牙電信機(jī)構(gòu)Red.es提交的5G補(bǔ)貼申請(qǐng)。其中,Vodafone向Red.es提交了三個(gè)5G試點(diǎn)項(xiàng)目,Vodafone與華為的合作項(xiàng)目計(jì)劃在潘普洛納和附近的農(nóng)村地區(qū)展開(kāi),同時(shí)該集團(tuán)還將攜手華為在馬拉加和塞維利亞及其周邊農(nóng)村地區(qū)進(jìn)...
全球領(lǐng)先的工廠自動(dòng)化和工業(yè)解決方案供應(yīng)商發(fā)那科推出新的CRX-10 i A和CRX-10 i A / L(長(zhǎng)臂)版協(xié)作型機(jī)器人,在易用性,可靠性和安全性方面樹(shù)立了新標(biāo)準(zhǔn)。 FANUC12月18日至21日在東京舉行的2019年國(guó)際機(jī)器人展覽會(huì)上首次展示了新型協(xié)作機(jī)器人。 FANUC提供范圍最廣的協(xié)作機(jī)器人,可處理從4-35kg的產(chǎn)品。新款10kg有效載荷CRX-10 i A和CRX-10...
近日,深交所正式受理江蘇駿成電子科技股份有限公司(以下簡(jiǎn)稱:駿成電子)創(chuàng)業(yè)板IPO申請(qǐng)。資料顯示,駿成電子主營(yíng)業(yè)務(wù)專注于液晶專業(yè)顯示(簡(jiǎn)稱“專顯”)領(lǐng)域,主要從事定制化液晶專顯產(chǎn)品的研發(fā)、設(shè)計(jì)、生產(chǎn)和銷售,主要產(chǎn)品為TN 型(含HTN型)、STN型、VA型液晶顯示屏和模組以及TFT型液晶顯示模組,產(chǎn)品應(yīng)用于工業(yè)控制、汽車電子、智能家電、醫(yī)療健康...

史海拾趣

問(wèn)答坊 | AI 解惑

移動(dòng)電話的演變過(guò)程(組圖)

從笨重的調(diào)頻無(wú)線電話,走向最新的集觸摸屏、MP3攝像頭等的iPhone ,無(wú)線通信器是怎么演變過(guò)來(lái)的?請(qǐng)看: 1940年,高爾文公司(后來(lái)成為摩托羅拉)的工程師開(kāi)發(fā)了SCR536型便攜式調(diào)頻無(wú)線步話機(jī),并被廣泛運(yùn)用于第二次世界大戰(zhàn)。 1943年,高爾 ...…

查看全部問(wèn)答∨

單片機(jī)紅外遙控最全的資料

本帖最后由 paulhyde 于 2014-9-15 04:24 編輯 單片機(jī)紅外遙控最全的資料,包含很多當(dāng)前電視遙控專用芯片的解碼方式,C語(yǔ)言和匯編語(yǔ)言編寫(xiě)的解碼范例程序,看完了你就會(huì)了  …

查看全部問(wèn)答∨

第四講 利用Boost和Buck-Boost實(shí)現(xiàn)LED驅(qū)動(dòng)

管我們是否要控制輸出電壓或輸出電流,Boost調(diào)節(jié)器都要比Buck調(diào)節(jié)器更難設(shè)計(jì)。持續(xù)導(dǎo)通狀態(tài)(CCM)Boost轉(zhuǎn)換器中的平均感應(yīng)電流等于負(fù)載電流(LED電流)乘以1/(1-D),這里D是占空度。Boost電壓調(diào)節(jié)器需要設(shè)計(jì)者考慮到輸入電壓的限制來(lái)保證電感的正 ...…

查看全部問(wèn)答∨

越來(lái)越發(fā)現(xiàn)這個(gè)硬件板塊該分細(xì)點(diǎn)了

大家有沒(méi)有發(fā)現(xiàn),這個(gè)“硬件設(shè)計(jì)”板塊太籠統(tǒng)了,能分細(xì)點(diǎn)更好。 單片機(jī)、FPGA、模電 和EDA軟件應(yīng)用,都出現(xiàn)在這,特別亂,感覺(jué)。 其實(shí)另外也有一個(gè)單片機(jī)\\工控  板塊嗎?居然還有一個(gè)其他硬件開(kāi)發(fā),哎,太亂了。 嵌入開(kāi)發(fā)居然WINCE ...…

查看全部問(wèn)答∨

LCD能顯示Logo圖片, 之后什么也不顯示了, 我估計(jì)可能是FrameBuffer配置錯(cuò)了, 如何解決.

掌微的A3 CPU, wince5.0, EBoot能正常運(yùn)行,NK也已運(yùn)行(Logo圖片以文件的形式包含在NK.Bin中), LCD能顯示Logo圖片, 之后什么也不顯示了, 我估計(jì)可能是FrameBuffer配置錯(cuò)了. 請(qǐng)問(wèn)如何檢查下 WinCE 代碼里面對(duì)LCD控制器有沒(méi)有錯(cuò)誤的配置? 如何檢查 ...…

查看全部問(wèn)答∨

[第一次發(fā)帖] 文件系統(tǒng)過(guò)濾驅(qū)動(dòng)問(wèn)題

文件系統(tǒng)過(guò)濾驅(qū)動(dòng) 在IRP_MJ_CREATE中攔截住對(duì)文件訪問(wèn)的IRP之后,暫時(shí)不向下傳遞這個(gè)IRP,也不返回任何參數(shù),而是等一定時(shí)間之后再處理這個(gè)IRP,那么在這個(gè)時(shí)間之內(nèi)系統(tǒng)會(huì)不會(huì)有第二個(gè)IRP傳過(guò)來(lái)? 還有,如果必須處理這個(gè)IRP才會(huì)有下一個(gè)IRP傳過(guò)來(lái),那么 ...…

查看全部問(wèn)答∨

STM32RTC對(duì)晶振的要求實(shí)在不地道

今天到電子市場(chǎng)找了一下,幾乎都是12.5p負(fù)載電容的32768晶振,只有一家有少量,負(fù)載電容是6p,20ppm的晶振要價(jià)是12.5p晶振的5倍,而且從外觀上也看不出來(lái),也沒(méi)有測(cè)試方法能測(cè)出負(fù)載電容是6p還是12.5p。賣晶振的老板在這行干了10幾年,一說(shuō)到6 ...…

查看全部問(wèn)答∨

ATMEL的ARM Cortex M3開(kāi)發(fā)板交換或者出售

   開(kāi)發(fā)板簡(jiǎn)介如下:EM-AT91SAM3U開(kāi)發(fā)板是英蓓特公司新推出的一款基于ATMEL公司AT91SAM3U系列處理器(Cortex-M3內(nèi)核 V2版)的全功能評(píng)估板。主頻高達(dá)96MHz,該評(píng)估版含有的高速USB2.0(480MHZ),音頻輸入,音頻輸出,SD卡接口,2.8\'TFT ...…

查看全部問(wèn)答∨

怎么用單片機(jī)提取GPS模塊的信息

用89C51單片機(jī)提取GPS模塊中的信息,最好有相關(guān)的C語(yǔ)言程序?qū)嵗? …

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved