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

📄 aic23_54x.c

📁 基于f54XX的dsp程序
💻 C
字号:
#include "math.h"
#include "myapp.h"
#include "ctr.h"

#define REGISTERCLKMD (*(unsigned int *)0x58)
struct struLCDGraph struGraph,struGraph1;
unsigned int nScreenBuffer[1024];
#define SOUNDBUFFERLENGTH 128
void InitFFT();
void FFT(float dataR[SOUNDBUFFERLENGTH],float dataI[SOUNDBUFFERLENGTH],unsigned int w[SOUNDBUFFERLENGTH],int nDecCode);
unsigned int uSound[SOUNDBUFFERLENGTH],w[SOUNDBUFFERLENGTH];
int nSoundNumber,nShowNumber,bShowFFT,nSample;
float fDataR[SOUNDBUFFERLENGTH],fDataI[SOUNDBUFFERLENGTH];

ioport unsigned int port8000;
ioport unsigned int port8007;

void main( void )
{
	int i;
	
	port8000=0; port8000=0x80; port8000=0;
	port8007=0; port8007=0x40;
	REGISTERCLKMD=0;
	LCDSetScreenBuffer(nScreenBuffer);
	LCDSetDelay(10);
	LCDTurnOn();				// 打开显示
	LCDCLS();				// 清除显示内存   
	nSoundNumber=0; nShowNumber=0; bShowFFT=0;
	for ( i=0;i<SOUNDBUFFERLENGTH;i++ )
	{
		fDataI[i]=0.0;
	}
	InitFFT();
	struGraph.pData=w;
	struGraph.uDataMode=DATAINTMODE;
	struGraph.uDataLength=SOUNDBUFFERLENGTH/2;
	struGraph.uMaxValue=8000*(SOUNDBUFFERLENGTH/128);
	struGraph.uWindowX0=0;
	struGraph.uWindowY0=0;
	struGraph.uWindowX1=64;
	struGraph.uWindowY1=32;
	struGraph.nOriginX=0;
	struGraph.nOriginY=0;
	struGraph.uLineMode=BARMODE;
   initCLK(CPU_SPEED_160M);
   initMcBSP1();
   initAIC23();
   initMcBSP0();
   initInterrupt();
   initVal();
	REGISTERCLKMD=0x9007;
	for(;;)
	{
   		if ( bShowFFT )	
   		{
	   		FFT(fDataR,fDataI,w,-1000);
	   		for ( i=0;i<1024;i++ )
	   			nScreenBuffer[i]=0;
			LCDGraph(&struGraph);
			bShowFFT=0;
		}
	}
}

interrupt void rxData( void )
{
   int i;
   unsigned int uL,uR;
   uL=DRR10;
   uR=DRR20;
  /* SPSA0=SPCR2;
   for(i=SPSD0&0x2;i==0;i=SPSD0&2);*/
   nSample++; nSample%=8;
   if ( nSample==0 )
   {
   		uSound[nSoundNumber]=uL;
   		nSoundNumber++; 
	   if ( nSoundNumber>=SOUNDBUFFERLENGTH )
	   {
	   		nSoundNumber=0;
	   		if ( bShowFFT==0 )
	   		{
		   		for ( i=0;i<SOUNDBUFFERLENGTH;i++ )
		   		{
		   			fDataR[i]=(float)uSound[i];
		   			fDataI[i]=0.0; w[i]=0;
		   		}
	   			bShowFFT=1;
			}
	   }
	}
   DXR10=uL;
   DXR20=uR;
}

⌨️ 快捷键说明

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