基于TMS320C5502的多波形發生器程序,可產生多種波形,例如正弦波,鋸齒波程序.
0.png (11.88 KB, 下載次數: 72)
下載附件
2017-10-19 18:00 上傳
dsp源程序如下:
- /***********************************************************************************/
- /* 文件名: Taylorsine.c (將sineCODEC和sinecompute合并,實現計算并實時輸出) */
- /* 創建時間:10/05/2012 */
- /* 功能描述:利用Taylor展開式法計算正弦波,并將信號從J6端口發送出去,平臺為BJTU-DSP5502板*/
- /* 作者: 錢滿義myqian@bjtu.edu.cn 北京交通大學電信學院電工電子教學基地 */
- /* 修改者 hailingao , 06/25 */
- /************************************************************************************/
- #include <math.h>
- #include <stdio.h>
- #include <csl.h>
- #include <csl_chip.h>
- #include <csl_i2c.h>
- #include <csl_pll.h>
- #include <csl_mcbsp.h>
- #include <csl_emif.h>
- #include <csl_emifBhal.h>
- #include <stdio.h>
- //#include "E2PROM_Function.h"
- #include "CODEC.h"
-
- #define Nx 360 //每周期抽取點數
- #pragma DATA_SECTION(output1,"data_out1"); //存放sin數據,浮點型
- float output1[Nx];
- #pragma DATA_SECTION(output,"data_out"); //存放sin數據,定點型
- int output[Nx];
- #undef CODEC_ADDR
- #define CODEC_ADDR 0x1A
-
- // 定義McBSP的句柄
- MCBSP_Handle hMcbsp;
- /*------------------------------------------------------------------------------------*/
- //
- // FUNCTION: MAIN
- //
- /*------------------------------------------------------------------------------------*/
-
- void main(void)
- {
-
- Uint16 i,k=0;
-
- float input0=0,x1;
- float a,b,c,d,e,f,g,h,ii,step;//step為角度步長
- step=360.0/Nx; // Nx為360度內取樣點數
- /*****************新增函數段*****************/
-
- for(i=0;i<=Nx-1;i++)
- {
- float angle,xx;
- angle=input0+step*i;
- x1=3.1415926*angle/180;
- xx=x1*x1;
- a=1-xx/16/17;b=1-xx/14/15*a;c=1-xx/12/13*b;d=1-xx/10/11*c;e=1-xx/8/9*d;f=1-xx/6/7*e;g=1-xx/4/5*f;h=1-xx/2/3*g;ii=x1*h;
- // g=x1*(1-xx/2/3*(1-xx/4/5*(1-xx/6/7*(1-xx/8/9*(1-xx/10/11*(1-xx/12/13*(1-xx/14/15*(1-xx/16/17))))))));//數學總公式
- // fprintf(stdout,"COMPUTE%f",ii); fprintf(stdout,"\n "); //輸出計算的正弦波的數值,x2=e
- output1[i]= 32767*ii; //利用泰勒級數計算出正弦波的數值,存放到output1中
- output[i]=output1[i];
- }
- // Initialize CSL library - This is REQUIRED !!!
- CSL_init();
-
- // The main frequency of system is 240MHz
- // 該頻率是為了設置IIC模塊的需要設置的,為了使用I2C_setup函數
- PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0);
- //EMIF初始化
- Emif_Config();
-
- // Open McBSP port 1 and get a McBSP type handle
- hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);
- // Config McBSP port 1 by use previously defined structure
- Mcbsp_Config(hMcbsp);
-
- //I2C初始化
- I2C_cofig();
-
- //CODEC寄存器初始化
- inti_AIC();
-
- /*------------------------------------------------------------------------------------*/
- // Receive the ADC output data of CODEC
- // Then output the received data to DAC of CODEC
- /*------------------------------------------------------------------------------------*/
- while(1)
- {
- while(!MCBSP_xrdy(hMcbsp)) {};
- MCBSP_write16(hMcbsp, output[k]); //左聲道輸出
- while(!MCBSP_xrdy(hMcbsp)) {};
- MCBSP_write16(hMcbsp, output[k]); //右聲道輸出
- // k=k+1; //正弦波每周期的樣點為360個,輸出信號的頻率為Fs/N=32000/360=88.89Hz
- k=k+10; //正弦波每周期的樣點為36個,輸出信號的頻率為Fs/N=32000/36=888.9Hz
- if (k>=Nx) k=k%Nx;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
基于TMS320C5502的多波形發生器程序,可產生多種波形,例如正弦波,鋸齒波.zip
(680.89 KB, 下載次數: 44)
2017-10-19 14:26 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
|