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

📄 dsp4.c

📁 tigersharc ts101 循环程序
💻 C
字号:

#include "TSLinkDrv.h"
#include <stdio.h>
#define  DATA_SIZE 4
#include "common.h"
#include <filter.h> 
#include <math.h>

int buffer[1024];

complex_float data[NDATA];   /* data for a 256-point FFT */ 
complex_float output[NDATA]; 


static complex_float twidtab[(3*NDATA)/4]; 


/* note that the temporary buffer should be as large as 
   the largest FFT generated */ 
complex_float temp[NDATA]; 
float real[NDATA];


void main(void)
{
	int i;
	int* pAddr;
	float MaxData;
	unsigned int MaxIndex=0;

	__builtin_sysreg_write(__SYSCON, 0x1A79E7);
	__builtin_sysreg_write(__SDRCON, 0x5213);
	LinkInit(1, LINK_SPEED);
	LinkInit(3, LINK_SPEED);

	for(i = 0; i < NDATA; i++)
	{
		data[i].re=sin(2*PI*i*FC/FS);
		data[i].im=0;
	}
	twidfft (twidtab,NDATA); 
	
//	pAddr = (int*)0x5000000;
//	for(i = 0; i < 0x1000000; i++)
//		*(pAddr + i) = 0;
		
//	LinkRecvDMAW(3, (void*)buffer, 1024);
//	LinkRecv2DDMAW(3, (void*)0x5000000, 0x1000, 0x1000);
//	printf("recv done.\n");
	
/*	for(i = 0; i < 0x1000000; i++)
	{
		if(*(pAddr + i) != 0x4000000 + i)
		{
			printf("Verify error!\n");	
			return;
		}
	}
	
	printf("Verify OK.\n");
*/

	while(1)
	{
		LinkRecvDMAW(1, (void*)buffer, 1024);
		if(!CheckBuffer(buffer))
		{
			printf("dsp4 verify error\n");
			break;
		}
		
		cfft (data, temp, output, twidtab, 1, NDATA); 
		
		for(i = 0; i < NDATA; i++)
		{
			real[i] = output[i].re * output[i].re + output[i].im * output[i].im;
		}
		
		MaxData= 0;
		MaxIndex=0;
		for(i = 0; i < NDATA / 2; i++)
		{
			if(real[i] > MaxData)
			{
				MaxIndex = i;
				MaxData = real[i];
			}
		}
		
		if(MaxIndex != 0x0a)
		{
			printf("dsp4 fft error\n");
			break;
		}
		
		LinkSendDMAW(3, (void*)buffer, 1024);
	}

	printf("DSP4 failed\n");

}



⌨️ 快捷键说明

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