///////////////////////////回放數(shù)據(jù)/////////////////////////
void viewdata(void)
{
unsigned int key,page,i;
page=0;
LCD_PenColor=0x1F; //紅色
LCD_WriteChineseString(font5,2,40,0);
LCD_PenColor=0xFC; //藍(lán)色
while(1){
key=getkey();
if(key!=0xFF)
{
if(key==4) {SystemState=fft_mode;return;} //返回
if(key==2) {
LCD_ClearScreen();
LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0);
i=page*4+1;
p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);
p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25);
p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35);
p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50);
if(page》0) page--;
delay_nms(8000000);
} //上翻頁
if(key==1) {
LCD_ClearScreen();
LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0);
i=page*4+1;
p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);
p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25);
p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35);
p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50);
page++;if(page》=SampleNum/4) page=0;
delay_nms(8000000);
} //下翻頁
}
}
}
////////////////////////////失真度計算///////////////////////
void distortion(void)
{
LCD_ClearScreen();
LCD_WriteChineseString(font6,3,10,20);
unsigned int key;
int fr;
while(1)
{
////////////獲取頻率////////////////////
log_2_N=11;SampleNum=SampleTab[log_2_N];
reset_timer(0);
init_timer0(40960);
New_Flag=0;
enable_timer(0);
////////////////////等待采樣完成///////////////////////////
while(!FFT_Flag);
disable_timer(0); //關(guān)定時器0
//////////////////////FFT運算/////////////////////////////////
FFT(Re,Im,log_2_N);
////////////////頻域功率////////////////////////////////////
for(i=1;i《SampleNum/2;i++) {Re[i]=Re[i]*Re[i];Re[i]=Re[i]/2;}
////////////////////總功率/////////////////////////////////
Fp=0;
for(i=1;i《SampleNum/2;i++) Fp+=Re[i];
sort(&Re[1],&Im[1],SampleNum/2-1);
fr=1000000/fre;
if(Tflag) {LCD_WriteChineseString(font7,1,50,20);LCD_WriteEnglishString(“ ”,0,38);print3510(fr,10,38);LCD_WriteEnglishString(“US”,58,38);}
else
{LCD_WriteEnglishString(“ ”,0,38);LCD_WriteChineseString(font8,1,50,20);}
////////////////////按鍵掃描/////////////////////////////
key=getkey();
if(key!=0xFF)
{
if(key==1) {SystemState=fft_mode;mode=20;break;} //返回
if(key==2) {SystemState=fft_mode;mode=100;break;} //返回
}
}
}
評論