P0=0Xff;
FFT_process();
switch(timernum)
{
case 1:anum=a[0];break;//
case 2:anum=a[1];break;//
case 3:anum=a[2];p37=0;break;
case 4:anum=a[3];p36=0;break;
case 5:anum=a[4];p35=0;break;
case 6:anum=a[5];p34=0;break;
case 7:anum=a[6];p07=0;break;
case 8:anum=a[7];p06=0;break;
case 9:anum=a[8];p05=0;break;
case 10:anum=a[9];p04=0;break;
case 11:anum=a[10];p03=0;break;
case 12:anum=a[11];p02=0;break;//
case 13:anum=a[12];p01=0;break;//
case 14:anum=a[13];p00=0;break;//
}
P2=lednum[anum];
delay(2);
}
uchar STC_ADC() //!!根據數據手冊寫一個ad讀取函數
{
uchar i;
ADC_RES = 0;
ADC_RESL = 0;
ADC_CONTR = BIN(10001000);
i=3;
while(i--);
while (1)
{
if (ADC_CONTR & BIN(10000))
{
break;
}
}
ADC_CONTR = BIN(10000000);
return( ADC_RESL<<2) ;
}
short sqrt_16( unsigned long M)
{
unsigned int N, i;
unsigned long tmp, ttp;
if( M == 0 )
return 0;
N = 0;
tmp = ( M >> 30 );
M <<= 2;
if( tmp > 1 )
{
N ++;
tmp -= N;
}
for( i=15; i>0; i-- )
{
N <<= 1;
tmp <<= 2;
tmp += (M >> 30);
ttp = N;
ttp = (ttp<<1)+1;
M <<= 2;
if( tmp >= ttp )
{
tmp -= ttp;
N ++;
}
}
return N;
}
void FFT()
{
register uchar i,bb,j,k,p,max;
register short TR,TI,temp;
unsigned long ulReal;
unsigned long ulImage;