第6章 使用C语言操作DSP的寄存器_第1页
第6章 使用C语言操作DSP的寄存器_第2页
第6章 使用C语言操作DSP的寄存器_第3页
第6章 使用C语言操作DSP的寄存器_第4页
第6章 使用C语言操作DSP的寄存器_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章使用C语言操作DSP的存放器?手把手教你学DSP——基于TMS320X281X?北京航空航天大学出版社顾卫钢HELLODSP:专业的DSP开发工具和方案供给商,可定制承接工程欢送访问:hellodsp联系方式手把手教你学DSP——基于TMS320X281X?北京航空航天大学出版社顾卫钢HELLODSP:专业的DSP开发工具和方案供给商,可定制承接工程欢送访问:hellodsp联系方式6.1存放器的C语言访问由于DSP的存放器能够实现对系统和外设功能的配置与控制,因此在DSP的开发过程中,对于存放器的操作是极为重要的,也是很频繁的,也就是说对存放器的操作是否方便会直接影响到DSP的开发是否方便。幸好,F2812为大家提供了位定义和存放器结构体的方式,能够很方便的实现对DSP内部存放器的访问和控制。.6.1.1了解SCI的存放器寄存器名地址占用空间/16b功能描述SCICCR0x000070501SCI-A通信控制寄存器SCICTL10x000070511SCI-A控制寄存器1SCIHBAUD0x000070521SCI-A波特率设置寄存器高字节SCILBAUD0x000070531SCI-A波特率设置寄存器低字节SCICTL20x000070541SCI-A控制寄存器2SCIRXST0x000070551SCI-A接收状态寄存器SCIRXEMU0x000070561SCI-A接收仿真数据缓冲寄存器SCIRXBUF0x000070571SCI-A接收数据缓冲寄存器SCITXBUF0x000070591SCI-A发送数据缓冲寄存器SCIFFTX0x0000705A1SCI-AFIFO发送寄存器.6.1.2使用位定义的方法定义存放器所谓“位域〞就是把一个字节中的二进制位划分为几个不同的区域,并说明每个区域的位数。每个域都有一个域名,允许在程序中按域名进行操作。位域的定义和位域变量的说明同结构体定义和其成员说明类似,其语法格式为:Struct位域结构名{类型说明符位域名1:位域长度类型说明符位域名2:位域长度…类型说明符位域名n:位域长度};.例6-1位域定义structbs//定义位域bs{inta:8;intb:2;intc:6;};.例6-2用位域定义SCICCRstructSCICCR_BITS{Uint16SCICHAR:3;//2:0字符长度控制位Uint16ADDRIDLE_MODE:1;//3多处理器模式控制位Uint16LOOPBKENA:1;//4回送测试模式使能位Uint16PARITYENA:1;//5极性使能位Uint16PARITY:1;//6奇/偶极性选择位Uint16STOPBITS:1;//7停止位个数Uint16rsvd1:8;//15:8保存};structSCICCR_BITSbit;bit.SCICHAR=7;//SCI字符长度控制位为8位.例6-3SCICCR的共同体定义unionSCICCR_REG{Uint16all;//可实现对存放器整体操作structSCICCR_BITSbit;//可实现位操作};unionSCICCR_REGSCICCR;SCICCR.all=0x007F;SCICCR.bit.SCICHAR=5;.例6-4SCI存放器的结构体文件.structSCI_REGS{unionSCICCR_REGSCICCR;//通信控制存放器unionSCICTL1_REGSCICTL1;//控制存放器1Uint16SCIHBAUD;//波特率存放器(高字节)Uint16SCILBAUD;//波特率存放器(低字节)unionSCICTL2_REGSCICTL2;//控制存放器2unionSCIRXST_REGSCIRXST;//接收状态存放器Uint16SCIRXEMU;//接收仿真缓冲存放器unionSCIRXBUF_REGSCIRXBUF;//接收数据存放器Uint16rsvd1;//保存Uint16SCITXBUF;//发送数据缓冲存放器unionSCIFFTX_REGSCIFFTX;//FIFO发送存放器unionSCIFFRX_REGSCIFFRX;//FIFO接收存放器unionSCIFFCT_REGSCIFFCT;//FIFO控制存放器Uint16rsvd2;//保存Uint16rsvd3;//保存unionSCIPRI_REGSCIPRI;//FIFO优先级控制存放器};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位数据位.例6-6对SCICCR整体进行操作SciaRegs.SCICCR.all=0x0007;.例6-7对SCIHBAUD和SCILBAUD进行操作SciaRegs.SCIHBAUD=0;SciaRegs.SCILBAUD=0xF3;.6.2存放器文件的空间分配使用DATA_SECTION方法将存放器文件分配到数据空间将数据段映射到存放器对应的存储空间.例6-8将变量分配到数据段#pragmaDATA_SECTION(SciaRegs,"SciaRegsFile");volatilestructSCI_REGSSciaRegs;#pragmaDATA_SECTION(ScibRegs,"ScibRegsFile");volatilestructSCI_REGSScibRegs;.例6-9将数据段映射到存放器对应的存储空间MEMORY{……PAGE1:SCI_A:origin=0x007050,length=0x000010

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论