⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 digital_wave.c

📁 一些基于TMS320 LF2407 DSP的实验程序
💻 C
字号:
/*******************************************************************/
#include "exp1_2407.h"
#define  N  256
#define  pi 3.1415926
/*******************************************************************/

int i;
unsigned int data;
unsigned int y1[N+1];
unsigned int y2[N+1];
double x0,x1,x2,x3;
double x,r,xx,y[N+1];

void sys_ini()                  //系统初始化子程序
{
     asm(" setc INTM");         //禁止所有中断
     asm(" setc SXM");          //抑制符号位扩展
     asm(" clrc OVM");          //累加器中结果正常溢出
     //WSGR=0x0000;               //io、ram、program都设为0等待读写
     * WDCR=0x00E8;             //禁止看门狗
     * SCSR1=0x0021;            //CLKIN=7.3728M,CLKOUT=29.4912M,使能spi外围模块
     * MCRB=0xFE3F;             //使能spi引脚
     * IFR=0xFFFF;              //清所有中断标志位
     * IMR=0x0000;              //禁用所有中断
}   

void spi_ini()
{
     * SPICCR&=0x007F;          //复位spi 
     * SPICCR=0x004F;           //CLOCK POLARITY=1,16位数据格式
     * SPICTL=0x000E;           //禁止溢出中断,CLOCK PHASE=1,禁用spi中断,主模式,使能数据发送
     * SPISTS=0x0080;           //清除接收溢出中断标志
     * SPIBRR=0x0000;           //波特率为29.4912/4=7.3728M
     * SPICCR|=0x0080;          //启动spi工作
}

void delay()
{
     unsigned int k;
     for(k=0;k<5;k++);
}

interrupt void nothing()        //哑中断子程序
{
     return;      
}

void main()
{
    sys_ini();
    spi_ini();
    r=2*pi/N;
    for (i=0; i<=N; i++)
    {
	  x=i*r-pi;
	  xx = x*x;
	  x0 = 1-xx/(8*9);
	  x1 = 1-x0*xx/(6*7);
	  x2 = 1-x1*xx/(4*5);
	  x3 = 1-x2*xx/(2*3);
	  y[i] = x * x3;
	  data=511.5*(1+y[i]);
	  y1[i]=data<<2|0xC000;  //tlv5617的da值范围
	  y2[i]=data<<2|0x5000; 
    }
	
    for(;;)
    {
      for (i=0; i<=N; i++)
      {
	    * SPITXBUF=y2[i];   //DA值送到tlv5617的buffer
        delay();		
        * SPITXBUF=y1[i];   //DA值转换并从OUTA通道送出,同时tlv5617的buffer
        delay();            //值转换并从OUTB通道输出
      }
    } 
}










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -