DSP实验程序汇总Word格式.docx

上传人:b****1 文档编号:15365779 上传时间:2022-10-29 格式:DOCX 页数:50 大小:27.44KB
下载 相关 举报
DSP实验程序汇总Word格式.docx_第1页
第1页 / 共50页
DSP实验程序汇总Word格式.docx_第2页
第2页 / 共50页
DSP实验程序汇总Word格式.docx_第3页
第3页 / 共50页
DSP实验程序汇总Word格式.docx_第4页
第4页 / 共50页
DSP实验程序汇总Word格式.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

DSP实验程序汇总Word格式.docx

《DSP实验程序汇总Word格式.docx》由会员分享,可在线阅读,更多相关《DSP实验程序汇总Word格式.docx(50页珍藏版)》请在冰豆网上搜索。

DSP实验程序汇总Word格式.docx

//基本功能函数声明

voiddelay_loop(void);

//延时函数

//系统主函数

main()

{

//系统自带函数,默认的初始化函数,使用时直接调用

//第一步,初始化系统控制寄存器、PLL、看门狗和系统时

//这个函数在DSP281x_common\source文件夹下的

DSP281x_SysCtrl.c文件里可以找到.

InitSysCtrl();

//第二步,初始化GPIO口

//这个函数在DSP281x_common\source文件夹下

DSP281x_Gpio.c文件里可以找到,说明了如何设置GPIO

口到默认值

//InitGpio();

//此例中用不到

EALLOW;

//允许访问受保护空间

GpioMuxRegs.GPFMUX.bit.XF_GPIOF14=1;

//使能

GPOF14的XF引脚作为输出

EDIS;

//禁止访问受保护空间

//第三步,清除所有中断并初始化PIE向量表

DINT;

//禁止CPU中断.

//这个函数在DSP281x_common\source目录下的

DSP281x_PieCtrl.c文件里可找到

InitPieCtrl();

//初始化PIE控制寄存器

IER=0x0000;

//禁止所有的CPU中断

IFR=0x0000;

//清所有的CPU中断标志

DSP281x_PieVect.c文件里可找到

InitPieVectTable();

//初始化PIE向量表,

//第四步,初始化所有的外设

DSP281x_InitPeripherals.c文件中可以找到

//InitPeripherals();

//这个例子中用不到外设

//第五步,用户程序

while

(1)

asm("

SETCXF"

);

//设置XF为1

delay_loop();

//调用延迟

CLRCXF"

//设置XF为0

}

实验2GPIO程序

//DSP281xHeaderfileIncludeFile

//DSP281xExamplesIncludeFile

//Prototypestatementsforfunctionsfoundwithinthisfile.

voidGpio_select(void);

voidstart(void);

int*PTR,i=0;

voidmain(void)

//Step1.InitializeSystemControl:

//PLL,WatchDog,enablePeripheralClocks

//ThisexamplefunctionisfoundintheDSP281x_SysCtrl.cfile.

InitSysCtrl();

//Step2.InitalizeGPIO:

//ThisexamplefunctionisfoundintheDSP281x_Gpio.cfileand

//illustrateshowtosettheGPIOtoit'

sdefaultstate.

//Skippedforthisexample

//Forthisexampleusethefollowingconfiguration:

Gpio_select();

//Step3.ClearallinterruptsandinitializePIEvectortable:

//DisableCPUinterrupts

DINT;

//InitializePIEcontrolregisterstotheirdefaultstate.

//ThedefaultstateisallPIEinterruptsdisabledandflags

//arecleared.

//ThisfunctionisfoundintheDSP281x_PieCtrl.cfile.

InitPieCtrl();

//DisableCPUinterruptsandclearallCPUinterruptflags:

IER=0x0000;

IFR=0x0000;

//InitializethePIEvectortablewithpointerstotheshellInterrupt

//ServiceRoutines(ISR).

//Thiswillpopulatetheentiretable,eveniftheinterrupt

//isnotusedinthisexample.Thisisusefulfordebugpurposes.

//TheshellISRroutinesarefoundinDSP281x_DefaultIsr.c.

//ThisfunctionisfoundinDSP281x_PieVect.c.

InitPieVectTable();

//Step4.InitializealltheDevicePeripherals:

//ThisfunctionisfoundinDSP281x_InitPeripherals.c

//Notrequiredforthisexample

//Step5.Userspecificcode:

GpioDataRegs.GPBDAT.all=0xFF00;

//通过GPIOB7给CLR引脚一个低电平

delay_loop();

//延迟

PTR=(int*)0X060;

//地址指针PTR指向0060H

for(i=0;

i<

=7;

i++)//将八个状态字存入60H开始的内存单元

{

switch(i)

{

case0:

*(PTR+i)=0X0FFFB;

break;

//0060单元的值为FFFE

case1:

*(PTR+i)=0X0FFF7;

//0061单元的值为FFFD

case2:

*(PTR+i)=0X0FFEF;

//0062单元的值为FFFB

case3:

*(PTR+i)=0X0FFDF;

//0063单元的值为FFF7

case4:

*(PTR+i)=0X0FFBF;

//0064单元的值为FFEE

case5:

*(PTR+i)=0X0FF7F;

//0065单元的值为FFDE

case6:

*(PTR+i)=0X0F7FF;

//0066单元的值为FFBE

case7:

*(PTR+i)=0X0EFFF;

//0067单元的值为FF7E

}

while

(1)//循环将八个状态输出

i++)

GpioDataRegs.GPADAT.all=*(PTR+i);

start();

//调用函数给出一个脉冲

//调用延时函数

}

voiddelay_loop()

shortk,i;

for(k=0;

k<

100;

k++)

for(i=0;

i<

0X0FFFF;

i++){}

voidstart()

GpioDataRegs.GPBDAT.all=0xFFFF;

GpioDataRegs.GPBDAT.all=0xFFBF;

voidGpio_select(void)

Uint16var1;

Uint16var2;

Uint16var3;

var1=0x0000;

//setsGPIOMuxsasI/Os设置GPIO作为I/O口

var2=0xFFFF;

//setsGPIODIRasoutputs设置GPIO作为输出

var3=0x0000;

//setstheInputqualifiervalues设置输入量化值为0

GpioMuxRegs.GPAMUX.all=var1;

GpioMuxRegs.GPBMUX.all=var1;

//GpioMuxRegs.GPDMUX.all=var1;

//GpioMuxRegs.GPFMUX.all=var1;

//GpioMuxRegs.GPEMUX.all=var1;

//GpioMuxRegs.GPGMUX.all=var1;

GpioMuxRegs.GPADIR.all=var2;

//GPIOPORTsasoutput

GpioMuxRegs.GPBDIR.all=var2;

//GPIODIRselectGPIOsasoutput

//GpioMuxRegs.GPDDIR.all=var2;

//GpioMuxRegs.GPEDIR.all=var2;

//GpioMuxRegs.GPFDIR.all=var2;

//GpioMuxRegs.GPGDIR.all=var2;

GpioMuxRegs.GPAQUAL.all=var3;

//SetGPIOinputqualifiervalues

GpioMuxRegs.GPBQUAL.all=var3;

//GpioMuxRegs.GPDQUAL.all=var3;

//GpioMuxRegs.GPEQUAL.all=var3;

EDIS;

}

//=========================================

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1