下载此文档

第3章TMS320F2812外设的C语言程序设计.ppt


文档分类:IT计算机 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
该【第3章TMS320F2812外设的C语言程序设计 】是由【电离辐射】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【第3章TMS320F2812外设的C语言程序设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第3章TMS320F2812外设的C语言程序设计
传统的#define方法定义DSP寄存器优缺点
优点:
定义简单、快速、容易分类;
直接采用寄存器的名字进行定义,易于操作。
缺点:
对寄存器的位操作比较困难;
不利于在CCS内跟踪调试;
、结构体和共用体定义DSP寄存器;
在头文件中定义各寄存器结构体及其变量;
使用DATA_SECTION将寄存器变量映射到相应物理地址空间;
在CMD文件中定义各区段物理地址及长度;
通过寄存器结构体变量访问相应寄存器。
在头文件中定义各寄存器结构体及其变量

structSCICTL1_BITS{//bitdescription
Uint16RXENA:1;//0SCIreceiverenable
Uint16TXENA:1;//1SCItransmitterenable
Uint16SLEEP:1;//2SCIsleep
Uint16TXWAKE:1;//3Transmitterwakeupmethod
Uint16rsvd:1;//4reserved
Uint16SWRESET:1;//5Softwarereset
Uint16RXERRINTENA:1;//6Recieveinterruptenable
Uint16rsvd1:9;//15:7reserved
};
unionSCICTL1_REG{
Uint16all;
structSCICTL1_BITSbit;
};
在头文件中定义各寄存器结构体及其变量
structSCI_REGS{ unionSCICCR_REGSCICCR;//Communicationscontrolregister unionSCICTL1_REGSCICTL1;//Controlregister1 Uint16SCIHBAUD;//Baudrate(high)register Uint16SCILBAUD;//Baudrate(low)register unionSCICTL2_REGSCICTL2;//Controlregister2 unionSCIRXST_REGSCIRXST;//Recievestatusregister Uint16SCIRXEMU;//Recieveemulationbufferregister
…… }; //SCIExternalReferences&FunctionDeclarations: externvolatilestructSCI_REGSSciaRegs; externvolatilestructSCI_REGSScibRegs;
使用DATA_SECTION将寄存器变量映射到相应物理地址空间

……
#pragmaDATA_SECTION(SciaRegs,"SciaRegsFile");
volatilestructSCI_REGSSciaRegs;
#pragmaDATA_SECTION(ScibRegs,"ScibRegsFile");
volatilestructSCI_REGSScibRegs;
……
在CMD文件中定义各区段物理地址及长度
MEMORY { PAGE0: PRAMH0:origin=0x3f8000,length=0x001000
PAGE1: /*SARAM*/ RAMM0:origin=0x000000,length=0x000400 RAMM1:origin=0x000400,length=0x000400 /*PeripheralFrame0:*/ DEV_EMU:origin=0x000880,length=0x000180 FLASH_REGS:origin=0x000A80,length=0x000060 CSM:origin=0x000AE0,length=0x000010 XINTF:origin=0x000B20,length=0x000020 CPU_TIMER0:origin=0x000C00,length=0x000008 CPU_TIMER1:origin=0x000C08,length=0x000008 CPU_TIMER2:origin=0x000C10,length=0x000008 PIE_CTRL:origin=0x000CE0,length=0x000020 PIE_VECT:origin=0x000D00,length=0x000100 /*PeripheralFrame1:*/ ECAN_A:origin=0x006000,length=0x000100 ECAN_AMBOX:origin=0x006100,length=0x000100
/*PeripheralFrame2:*/ SYSTEM:origin=0x007010,length=0x000020 SPI_A:origin=0x007040,length=0x000010 SCI_A:origin=0x007050,length=0x000010 XINTRUPT:origin=0x007070,length=0x000010 GPIOMUX:origin=0x0070C0,length=0x000020 GPIODAT:origin=0x0070E0,length=0x000020 ADC:origin=0x007100,length=0x000020 EV_A:origin=0x007400,length=0x000040 EV_B:origin=0x007500,length=0x000040 SPI_B:origin=0x007740,length=0x000010 SCI_B:origin=0x007750,length=0x000010 MCBSP_A:origin=0x007800,length=0x000040 /*CSMPasswordLocations*/ CSM_PWL:origin=0x3F7FF8,length=0x000008 /*SARAM*/ DRAMH0:origin=0x3f9000,length=0x001000 }
SECTIONS
{
/*Allocateprogramareas:*/
.reset:>PRAMH0,PAGE=0
.text:>PRAMH0,PAGE=0
.cinit:>PRAMH0,PAGE=0
/*AllocatePeripheralFrame0RegisterStructures:*/
CpuTimer0RegsFile:>CPU_TIMER0,PAGE=1
CpuTimer1RegsFile:>CPU_TIMER1,PAGE=1
CpuTimer2RegsFile:>CPU_TIMER2,PAGE=1
PieCtrlRegsFile:>PIE_CTRL,PAGE=1
PieVectTable:>PIE_VECT,PAGE=1
/*AllocatePeripheralFrame1RegisterStructures:*/
SysCtrlRegsFile:>SYSTEM,PAGE=1
SpiaRegsFile:>SPI_A,PAGE=1
SciaRegsFile:>SCI_A,PAGE=1
AdcRegsFile:>ADC,PAGE=1
EvaRegsFile:>EV_A,PAGE=1
EvbRegsFile:>EV_B,PAGE=1
ScibRegsFile:>SCI_B,PAGE=1
……
}
通过寄存器结构体变量访问相应寄存器
=0x07;
//8位数据位,空闲线模式,禁止会送测试模式,无奇偶校验,1位结束位

=0x03;
//SCIA发送器和接收器使能

=0x03;
//接收器缓冲/中断使能,SCITXBUF寄存器中断使能

=0x00;
=0xF3;
//波特率为19200

=0x23;
//重启SCI

第3章TMS320F2812外设的C语言程序设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人电离辐射
  • 文件大小453 KB
  • 时间2022-12-01