coswave.c
来自「DSP5402产生余弦信号以C语言源代码,已仿真通过」· C语言 代码 · 共 50 行
C
50 行
//cos(nx)=2*cosx*cos((n-1)x)-cos((n-2)x)
//sin(nx)=2*cosx*sin((n-1)x)-sin((n-2)x)
ioport unsigned port0bfff;
#define IOSR port0bfff;
#define _COSX 0.9979
#pragma DATA_SECTION(_cosx,"data_buf1")
float _cosx[200];
#pragma DATA_SECTION(dacdata,"data_buf2")
int dacdata[180];
void delay(void);
void main(void)
{
unsigned int i=0;
_cosx[0]=1.0000;
dacdata[0]=4095;
_cosx[1]=_COSX;
dacdata[1]=_COSX*2047+2048;
i=1;
while(1)
{
if(i++>179)
break;
_cosx[i]=2*_COSX*_cosx[i-1]-_cosx[i-2];
dacdata[i]=_cosx[i]*2047+2048;
}
i=0;
while(1)
{
if(i>179)
i=0;
IOSR=dacdata[i++];
delay();
}
}
/*延迟等待函数*/
void delay(void)
{
long int j,k;
for(j=0;j<200;j++)
{
for(k=0;k<2000;k++);
}
//asm("_nop");
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?