- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP实验报告
在打开实验箱电源的前提下:
打开CCSStudio3.3
选择debug,选择connect,如果在左下角显示connecting,表示与仿真器连接正常。
实验一、存储器实验。
实验目的:了解F2812的内部存储器空间的分配,掌握外扩RAM或FLASH存储器的方法, 掌握从外部存储器写入读取数据的方法。void main(void)
{
int i;
volatile unsigned int *room = (volatile unsigned int *)0x3f9020;
volatile unsigned int *room2= (volatile unsigned int *)0x3f902F;
建立可变数据类型的两个指针,指向两个地址。
// Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
InitSysCtrl();
对看门狗,系统等进行初始化
// Disable CPU interrupts
DINT;
禁止中断
// Disable CPU interrupts and clear all CPU interrupt flags:
IER = 0x0000;
禁止中断
IFR = 0x0000;
清所有中断标记。
/*将0xAAAA写入从数据空间的地址0x3f9020开始的8个单元中*/
for(i=0;i8;i++)
{
*room=0xAAAA;
room指针的地址内填上0xAAAA
room++;
}
/*从0x3f9020开始的8个空间读出数据依次写入从0x3f9028开始的8个单元中*/
for(i=0;i8;i++)
{
*room2=*(room-1);
将room指针减一,然后将其内容填到room2指针的地址内。
room--;
room2--;
}
}
InitSysCtrl()函数,在DSP281x_SysCtrl.c中定义。
其定义如下:
void InitSysCtrl(void)
{
// On F2812/F2810 TMX samples prior to rev C this initialization was
// required. For Rev C and after this is no longer required
// Disable the watchdog
DisableDog();
// Initialize the PLLCR to 0xA
InitPll(0xa);
// Initialize the peripheral clocks
InitPeripheralClocks();
}
以上程序完成关看门狗,初始化时钟,初始化外设时钟。(外设时钟是片内外设的时钟,分高速和低速)
———————————————————————————————————————
其中
void InitPeripheralClocks(void)
{
EALLOW;
// HISPCP/LOSPCP prescale register settings, normally it will be set to default values
SysCtrlRegs.HISPCP.all = 0x0001;
SysCtrlRegs.LOSPCP.all = 0x0002;
// Peripheral clock enables set for the selected peripherals.
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;
SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1;
SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=1;
SysCtrlRegs.PCLKCR.bit.SPIENCLK=1;
SysCtrlRegs.PCLKCR.bit.ECANENCLK=1;
SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;
EDIS;
}
以上程序完成外设时钟的设置,寄存器的含义见教材或参考书,其中EALLOW表
文档评论(0)