孙鹏DSP正余弦波形发生器.docx

上传人:b****3 文档编号:2991665 上传时间:2022-11-16 格式:DOCX 页数:13 大小:296.58KB
下载 相关 举报
孙鹏DSP正余弦波形发生器.docx_第1页
第1页 / 共13页
孙鹏DSP正余弦波形发生器.docx_第2页
第2页 / 共13页
孙鹏DSP正余弦波形发生器.docx_第3页
第3页 / 共13页
孙鹏DSP正余弦波形发生器.docx_第4页
第4页 / 共13页
孙鹏DSP正余弦波形发生器.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

孙鹏DSP正余弦波形发生器.docx

《孙鹏DSP正余弦波形发生器.docx》由会员分享,可在线阅读,更多相关《孙鹏DSP正余弦波形发生器.docx(13页珍藏版)》请在冰豆网上搜索。

孙鹏DSP正余弦波形发生器.docx

孙鹏DSP正余弦波形发生器

DSP正余弦波形发生器

班级:

232122

组员:

孙鹏吴斌李文柏

指导老师:

杨越

实习教室:

信息楼

 

一实习题目

正余弦波形发生器

实现:

产生一个2kHz的正弦信号和同频的余弦信号(泰勒级数展开法)。

从相应的观察窗口查看波形,并可通过DAC输出,通过示波器观察结果。

二实习步骤

1熟悉DSP的软件编程技巧及硬件连接方式。

2按照题目要求分析正余弦波产生机理,查表法及泰勒级数法。

3上机将历程操作,并修改参数使其达到其题目要求,根据查表法原理和泰勒级数展开式原理分别产生2khz正余弦波,比较有何差异。

4整理数据资料,分析波形产生原因及机理。

三实习过程

TMS320F5416是ti公司c5000系列16位定点系列产品,最高最平主频120MHZ。

RAM128K,ROM16K,能适用一般的运用场合,本实习过程采用该开发板做简单的正余弦波发生器,绰绰有余。

因为系统主要修改在主函数那里所以我只写主函数这部分程序。

这里主要讲查表法和泰勒展开式法。

1查表法:

利用单片机自带的数学库函数,生成一个104个数的正余弦表,由DA输出就可以形成一个正弦波形。

//------------------头文件--------------------------------------

#include"DspRegDefine.h"//VC5402寄存器定义

#include"math.h"

//---------------------------------------------------------------

/*******************宏定义***************

************************************************************

*/

#defineUCHARunsignedchar

#defineUINT16unsignedint

#defineUINT32unsignedlong

#defineTRUE1

#defineFALSE0

#definepi3.1415926

#defineLEN104//定义由256点改104点,恰好可以实现2KHZ波形

//---------------------------------------------------------

/*端口定义*/

//---------------------------------------------------------

ioportUINT16port8001;//定义输出io端口为0x8001;

//----------------------------------------------------------

//----------------------------------------------------------

/*全局变量定义*/

//---------------------------------------------------------

intdata_buff[LEN];//数据缓冲

UINT16show=0x00aa;//LED显示的数值

/*

**********************************************************************

***************所使用的函数原型*****************

**********************************************************************

*/

voidcpu_init(void);//初始化CPU

voidDelay(UINT16numbers);//延迟

externvoiddelay_3us(void);//3us延迟

voidmcbsp0_write_rdy(UINT16out_data);//MCBSP0发送一个数据

voidmcbsp0_init_SPI(void);//MCBSP0设置为SPI模式

voidmcbsp0_close(void);//MCBSP0关闭

 

//-------------------------------------------------------------------

/*

************************************************************************

***********************函数定义******************

************************************************************************

*/

//--------------------------------------------------------------------

//函数名称:

voidcpu_init(void)

//函数说明:

初始化CPU

//输入参数:

//输出参数:

//--------------------------------------------------------------------

voidcpu_init(void)

{

asm("nop");

asm("nop");

asm("nop");

*(unsignedint*)CLKMD=0x0;//switchtoDIVmodeclkout=1/2clkin

while(((*(unsignedint*)CLKMD)&01)!

=0);

*(unsignedint*)CLKMD=0x37ff;//switchtoPLLX4mode

*(unsignedint*)IMR=0x0;

*(unsignedint*)IFR=0xffff;

//--------------------------------------------------------------------

asm("nop");

asm("nop");

asm("nop");

}

 

/*

***********************************************************

-函数名称:

voidDelay(intnumbers)

-函数说明:

延时

-输入参数:

numbers

-输出参数:

***********************************************************

*/

voidDelay(UINT16numbers)

{

UINT16i,j;

for(i=0;i<4000;i++)

for(j=0;j

}

/*

*************************************************************************

-函数名称:

voidmcbsp0_write_rdy(UINT16out_data);

-函数说明:

MCBSP0发送一个数据

-输入参数:

data

-输出参数:

-补充说明:

内部带是否发送完成的判断

**************************************************************************

*/

 

voidmcbsp0_write_rdy(UINT16out_data)

{

UINT16j;

*(unsignedint*)McBSP0_SPSA=0x0001;//McBSP0_SPSA指向SPCR2

while((*(unsignedint*)McBSP0_SPSD&0x0002)==0);

//for(j=0;j<20;j++);

//delay不需要延时,这样可以节约时间,较少每点之间的DA输出时间

*(unsignedint*)McBSP0_DXR1=out_data;//输出da的数据

}

/*

*************************************************************************

-函数名称:

voidmcbsp0_init_SPI(void);

-函数说明:

MCBSP0设置为SPI模式

-输入参数:

-输出参数:

-补充说明:

**************************************************************************

*/

voidmcbsp0_init_SPI(void)

{

//复位McBSP0

*(unsignedint*)McBSP0_SPSA=0x0000;//SPCR1

*(unsignedint*)McBSP0_SPSD=0x0000;//设置SPCR1.0(RRST=0)

*(unsignedint*)McBSP0_SPSA=0x0001;//SPCR2

*(unsignedint*)McBSP0_SPSD=0x0000;//设置SPCR1.0(XRST=0)

//---------------------------------------------------------

//延迟

Delay(0);//延迟4000*CPU时钟周期

//等待复位稳定

//---------------------------------------------------------

//配置McBSP0为SPI模式

*(unsignedint*)McBSP0_SPSA=0x0000;//SPCR1

*(unsignedint*)McBSP0_SPSD=0x1800;

*(unsignedint*)McBSP0_SPSA=0x0001;//SPCR2

*(unsignedint*)McBSP0_SPSD=0x0000;

*(unsignedint*)McBSP0_SPSA=0x000E;//PCR

*(unsignedint*)McBSP0_SPSD=0x0A0C;

*(unsignedint*)McBSP0_SPSA=0x0002;//RCR1

*(unsignedint*)McBSP0_SPSD=0x0040;//

*(unsignedint*)McBSP0_SPSA=0x0003;//RCR2

*(unsignedint*)McBSP0_SPSD=0x0041;//

*(unsignedint*)McBSP0_SPSA=0x0004;//XCR1

*(unsignedint*)McBSP0_SPSD=0x0040;

*(unsignedint*)McBSP0_SPSA=0x0005;//XCR2

*(un

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

当前位置:首页 > 法律文书 > 调解书

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

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