時間:2018-08-27 00:00:00 來源:信盈達 作者:信盈達
PICC變量及定義
1、當變量為多字節(jié)數(shù)據(jù)時,PICC按低字節(jié)存放在低地址、高字節(jié)存放在高地址的原則存放變量,并以最低字節(jié)的地址作為該變量的地址。例如int型變量i的值為0X1234,低字節(jié)0x34存放在0X30,高字節(jié)0x12存放在0X31,并以0x30作為變量i的地址。
2、單片機的帶符號的整數(shù)均以補碼方式存放。對于二進制數(shù)來說,先減一后取反和先取反后加1得到的結果是一樣的。
3、標準C中沒有位變量,位變量是PICC C語言中特有的。有了位變量,就可以方便的進行位操作,設置某一引腳是高電平還是低電平。
4、強制類型轉換的一般表達式為 (類型說明符)(表達式) 作用:把表達式的運算結果強制轉換成類型說明符所表達的類型
如:(float)x; //強制把X轉換成實型,不管X為何類型的變量
PICC變量修飾關鍵詞
1、extern (外部)變量聲明
如果一個C程序文件要使用一些有其他文件定義的變量或者引用由嵌入式匯編程序定義的變量,那么在本程序文件中要將這些變量聲明成“extern”(外部)類型
2、volatile(易變)型變量聲明
volatile 關鍵字是標準C中沒有的,告訴PICC,這些變量是隨機的,不要對變量進行隨機處理。
在相關的頭文件中,相關的寄存器都被定義成volatile型。
3、const (常數(shù))型變量聲明
在變量定義前冠以"const"關鍵詞,變量將成為常數(shù),程序運行過程中不能對其進行修改。
單片機的常數(shù)實際是存在于程序存儲器中的,并以查表的形式返回值。通常單片機的程序存儲器相對較大,可以存入較多的常數(shù)。
一個程序存儲器單元(字)只能存儲一個8位的字節(jié)常數(shù),雖然程序存儲器是14位的。
4、persistent(非初始化)常量聲明
聲明此類變量無須在復位時自動清零,并且在退出某些函數(shù)時這些變量仍然保留。
5、static(靜態(tài))常量聲明
默認的變量都是自動變量,自動變量指的是當調(diào)用函數(shù)返回后這些局部變量不再保留,即不存在。若在聲明中加入靜態(tài)變量修飾詞,在退出函數(shù)后,這些變量仍然保留。
6、bank(體)選擇聲明
由于PIC16系列單片機的RAM數(shù)據(jù)存儲器分為4個體,因此在定義變量時要指明是哪個體,默認為體0.用bank1~bank3指定變量存放在相應的體。
設計者應當知道,自己編制的程序的數(shù)據(jù)存儲器占用量是多少。
在PICC的變量定義中,對于全局變量還可以指定地址。例如:char AA @0X30
PICC中支持的結構體與共同體,與標準C沒有區(qū)別。
PICC的指針:
1、指向RAM的指針
PICC在編譯C源程序時將指向RAM的指針操作最終用FSR來實現(xiàn)間接尋址。因此在定義指針時必須明確指定該指針所適用的尋址范圍和指針變量本身存在的范圍。例如 bank3 char *bank1 zz2定義了指向bank2/3的指針,指針本身存在于bank1中。
在用指向RAM的指針時,要注意體的位置匹配。
2、指向FLASHROM常數(shù)的指針
PICC定義的常數(shù)是存放在程序存儲器的,即FALSHROM,簡稱ROM.
指向常數(shù)的指針可以指向寧外一個常數(shù)而不必重復定義。
信盈達2008年在深圳特區(qū)南山高新科技園成立。自成立至今近九年來專注為企業(yè)和個人提供高端方案設計、高端嵌入式/Android培訓等服務。公司下設信盈達實訓學院、信盈達研發(fā)中心、信盈達教學儀器三大業(yè)務板塊。九年來公司堅持"技術領先、服務領先",以雄厚的實力和專業(yè)的品質成為國內(nèi)唯一有實力從產(chǎn)品最底層研發(fā)到系統(tǒng)層開發(fā)的嵌入式實訓、產(chǎn)品解決方案提供商。為中國IT行業(yè)提供最具價值的職業(yè)教育服務。專業(yè)培訓嵌入式、物聯(lián)網(wǎng)、人工智能、Java、單片機等課程,想了解更多信息點擊立馬咨詢
免費領取試聽卡
申請已經(jīng)提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報名咨詢!