使用C語言操作DSP的寄存器_第1頁
使用C語言操作DSP的寄存器_第2頁
使用C語言操作DSP的寄存器_第3頁
使用C語言操作DSP的寄存器_第4頁
使用C語言操作DSP的寄存器_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

第6章使用C語言操作DSP的寄存器6.1寄存器的C語言訪問

由于DSP的寄存器能夠?qū)崿F(xiàn)對系統(tǒng)和外設功能的配置與控制,因此在DSP的開發(fā)過程中,對于寄存器的操作是極為重要的,也是很頻繁的,也就是說對寄存器的操作是否方便會直接影響到DSP的開發(fā)是否方便。幸好,F(xiàn)2812為大家提供了位定義和寄存器結(jié)構(gòu)體的方式,能夠很方便的實現(xiàn)對DSP內(nèi)部寄存器的訪問和控制。6.1.1了解SCI的寄存器(SCIA)寄存器名地址占用空間/16b功能描述SCICCR0x000070501SCI-A通信控制寄存器SCICTL10x000070511SCI-A控制寄存器1SCIHBAUD0x000070521SCI-A波特率設置寄存器高字節(jié)SCILBAUD0x000070531SCI-A波特率設置寄存器低字節(jié)SCICTL20x000070541SCI-A控制寄存器2SCIRXST0x000070551SCI-A接收狀態(tài)寄存器SCIRXEMU0x000070561SCI-A接收仿真數(shù)據(jù)緩沖寄存器SCIRXBUF0x000070571SCI-A接收數(shù)據(jù)緩沖寄存器SCITXBUF0x000070591SCI-A發(fā)送數(shù)據(jù)緩沖寄存器SCIFFTX0x0000705A1SCI-AFIFO發(fā)送寄存器6.1.1了解SCI的寄存器(SCIB)寄存器名地址占用空間/16b功能描述SCICCR0x000077501SCI-A通信控制寄存器SCICTL10x000077511SCI-A控制寄存器1SCIHBAUD0x000077521SCI-A波特率設置寄存器高字節(jié)SCILBAUD0x000077531SCI-A波特率設置寄存器低字節(jié)SCICTL20x000077541SCI-A控制寄存器2SCIRXST0x000077551SCI-A接收狀態(tài)寄存器SCIRXEMU0x000077561SCI-A接收仿真數(shù)據(jù)緩沖寄存器SCIRXBUF0x000077571SCI-A接收數(shù)據(jù)緩沖寄存器SCITXBUF0x000077591SCI-A發(fā)送數(shù)據(jù)緩沖寄存器SCIFFTX0x0000775A1SCI-AFIFO發(fā)送寄存器6.1.2使用位定義的方法定義寄存器所謂“位域”就是把一個字節(jié)中的二進制位劃分為幾個不同的區(qū)域,并說明每個區(qū)域的位數(shù)。每個域都有一個域名,允許在程序中按域名進行操作。位域的定義和位域變量的說明同結(jié)構(gòu)體定義和其成員說明類似,其語法格式為:Struct

位域結(jié)構(gòu)名{

類型說明符位域名1:位域長度類型說明符位域名2:位域長度

類型說明符位域名n:位域長度};例6-1位域定義struct

bs//定義位域bs{

inta:8;

intb:2;

intc:6;};位域定義的說明1)位域的定義必須按照從右往左的順序,也就是從低位開始定義;2)一個位域必須存儲在同一個字節(jié)中,不能跨兩個字節(jié)。如果一個字節(jié)所??臻g不夠放另一個域時,應該從下一個單元起存放該域:struct

bs//定義位域bs{

inta:4;

int:0;//空域

intb:5;//從第二個字節(jié)開始存放

intc:3;};位域定義的說明3)位域的長度不能大于一個字節(jié)的長度,也就是不能超過8位;4)位域可以無位域名,這時,它只用作填充或調(diào)整位置。無名的位域不能使用。struct

bs//定義位域bs{

inta:4;

int:2;//這2位不能使用,

intb:2;//

intc:5;//從第二個字節(jié)開始存放

intd:3;};例6-2用位域定義SCICCRstructSCICCR_BITS{Uint16SCICHAR:3;//2:0字符長度控制位

Uint16ADDRIDLE_MODE:1;//3多處理器模式控制位

Uint16LOOPBKENA:1;//4回送測試模式使能位

Uint16PARITYENA:1;//5極性使能位

Uint16PARITY:1;//6奇/偶極性選擇位

Uint16STOPBITS:1;//7停止位個數(shù)

Uint16rsvd1:8;//15:8保留};structSCICCR_BITSbit;bit.SCICHAR=7;//SCI字符長度控制位為8位例6-3SCICCR的共同體定義unionSCICCR_REG{Uint16all;//可實現(xiàn)對寄存器整體操作

structSCICCR_BITSbit;//可實現(xiàn)位操作};unionSCICCR_REGSCICCR;SCICCR.all=0x007F;SCICCR.bit.SCICHAR=5;例6-4SCI寄存器的結(jié)構(gòu)體文件structSCI_REGS{unionSCICCR_REGSCICCR;//通信控制寄存器

unionSCICTL1_REGSCICTL1;//控制寄存器1Uint16SCIHBAUD;//波特率寄存器(高字節(jié))Uint16SCILBAUD;//波特率寄存器(低字節(jié))unionSCICTL2_REGSCICTL2;//控制寄存器2unionSCIRXST_REGSCIRXST;//接收狀態(tài)寄存器

Uint16SCIRXEMU;//接收仿真緩沖寄存器

unionSCIRXBUF_REGSCIRXBUF;//接收數(shù)據(jù)寄存器

Uint16rsvd1;//保留

Uint16SCITXBUF;//發(fā)送數(shù)據(jù)緩沖寄存器

unionSCIFFTX_REGSCIFFTX;//FIFO發(fā)送寄存器

unionSCIFFRX_REGSCIFFRX;//FIFO接收寄存器

unionSCIFFCT_REGSCIFFCT;//FIFO控制寄存器

Uint16rsvd2;//保留

Uint16rsvd3;//保留

unionSCIPRI_REGSCIPRI;//FIFO優(yōu)先級控制寄存器};externvolatilestructSCI_REGSSciaRegs;externvolatilestructSCI_REGSScibRegs;例6-5對SCICCR按位進行操作

SciaRegs.SCICCR.bit.STOPBITS=0;//1位停止位

SciaRegs.SCICCR.bit.PARITYENA=0;//禁止極性功能

SciaRegs.SCICCR.bit.LOOPBKENA=0;//禁止回送測試模式功能

SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0;//空閑線模式

SciaRegs.SCICCR.bit.SCICHAR=7;//8位數(shù)據(jù)位例6-6對SCICCR整體進行操作SciaRegs.SCICCR.all=0x0007;例6-7對SCIHBAUD和SCILBAUD進行操作SciaRegs.SCIHBAUD=0;SciaRegs.SCILBAUD=0xF3;6.2寄存器文件的空間分配使用DATA_SECTION方法將寄存器文件分配到數(shù)據(jù)空間將數(shù)據(jù)段映射到寄存器對應的存儲空間是在DSP_GlobalVariableDefs.c中定義。例6-8將變量分配到數(shù)據(jù)段#pragma

DATA_SECTION(SciaRegs,"SciaRegsFile");volatilestructSCI_REGSSciaRegs;#pragma

DATA_SECTION(ScibRegs,"ScibRegsFile");volatilestructSCI_REGSScibRegs;例6-9將數(shù)據(jù)段映射到寄存器對應的

存儲空間(在CMD文件中定義)MEMORY{

……PAGE1:SCI_A:or

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論