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 + -
显示快捷键?