免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
CMS MCU 學(xué)習(xí)資料記錄
extern:外部變量聲明
如果在一個(gè) C 程序文件中要使用一些變量但其原型定義寫(xiě)在另外的文件中,那么在本文件中必須將這些變量聲明成“extern”外部類型。
例如程序文件 code1.c 中有如下定義:
unsigned char var1, var2; //定義了兩個(gè)變量
在另外一個(gè)程序文件 code2.c 中要對(duì)上面定義的變量進(jìn)行操作,則必須在程序的開(kāi)頭定義:extern unsigned char var1, var2; //聲明外部變量 ? 

volatile — 易變型變量聲明
CMS C 中還有一個(gè)變量修飾詞在普通的 C 語(yǔ)言介紹中一般是看不到的,這就是關(guān)鍵詞
volatile”。顧名思義,它說(shuō)明了一個(gè)變量的值是會(huì)隨機(jī)變化的,即使程序沒(méi)有刻意對(duì)它進(jìn)行任何賦值操作。在單片機(jī)中,作為輸入的 IO 端口其內(nèi)容將是隨意變化的;在中斷內(nèi)被修改的變量相對(duì)主程序流程來(lái)講也是隨意變化的;很多特殊功能寄存器的值也將隨著指令的運(yùn)行而動(dòng)態(tài)改變。所有這種類型的變量必須將它們明確定義成“volatile”類型,例如:
volatile unsigned char STATUS @ 0x03;
volatile bit commFlag;
volatile”類型定義在單片機(jī)的 C 語(yǔ)言編程中是如此的重要,是因?yàn)樗梢愿嬖V編譯器的優(yōu)化處理器這些變量是實(shí)實(shí)在在存在的,在優(yōu)化過(guò)程中不能無(wú)故消除。假定你的程序定義了一個(gè)變量并對(duì)其作了一次賦值,但隨后就再也沒(méi)有對(duì)其進(jìn)行任何讀寫(xiě)操作,如果是非volatile 型變量,優(yōu)化后的結(jié)果是這個(gè)變量將有可能被徹底刪除以節(jié)約存儲(chǔ)空間。另外一種情形是在使用某一個(gè)變量進(jìn)行連續(xù)的運(yùn)算操作時(shí),這個(gè)變量的值將在第一次操作時(shí)被復(fù)制到中間臨時(shí)變量中,如果它是非 volatile 型變量,則緊接其后的其它操作將有可能直接從臨時(shí)變量中取數(shù)以提高運(yùn)行效率,顯然這樣做后對(duì)于那些隨機(jī)變化的參數(shù)就會(huì)出問(wèn)題。只要將其定義成 volatile 類型后,編譯后的代碼就可以保證每次操作時(shí)直接從變量地址處取數(shù)。 

FSR 寄存器:
 FSR=Feedback Shift Register 反饋移位寄存器,間接尋址

CMS仿真器使用:











 
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【單片機(jī)C語(yǔ)言基礎(chǔ)入門(mén)】第三章:變量與數(shù)據(jù)類型
HC08 C語(yǔ)言程序設(shè)計(jì)
volatile和static的使用(存貯數(shù)據(jù)到指定位置)
單片機(jī)C語(yǔ)言編程心得
ARM定義特殊寄存器(*(volatile unsigned long *))的理解
可跨開(kāi)發(fā)環(huán)境的定義寄存器方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服