📄 aic23_54x.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 + -