//从取模结果lBUFMAG中(前128个)挑选出25个值做显示。挑选的原则是:0-4K为主,4K-8K次之,8K-18K最少。将挑选出的32个值赋给COLUMN1
void arctan(void)
{
u8 i,temp,a[16]={12,15,19,21,25,28,31,37,44,50,63,71,76,89}; //因为后14个无规律,所以将其位置号列出来
//u8 j=2;
for(i=0;i<11;i++)
{ COLUMN1= lBUFMAG;} //挑选前面11个。
for(i=0;i<14;i++) //后14个
{
temp=a;
COLUMN1[i+11]=lBUFMAG[temp];
}
for(i=0;i<25;i++) //增益调整
{
COLUMN1=COLUMN1*10;
//COLUMN1=80*atan(COLUMN1); //用反正切函数来适当压缩较高的模的值,使柱条显示均衡
if(COLUMN1==0)
{COLUMN1=2;}
else if((COLUMN1<5)&&(COLUMN1>0))
{COLUMN1=COLUMN1+15;}
else if((COLUMN1>=5)&&(COLUMN1<10))
{COLUMN1=COLUMN1+12;}
else if((COLUMN1>=10)&&(COLUMN1<15))
{COLUMN1=COLUMN1+10;}
else if((COLUMN1>=15)&&(COLUMN1<20))
{COLUMN1=COLUMN1+7;}
else if(COLUMN1>=240)
{COLUMN1=220;}
else if((COLUMN1>=225)&&(COLUMN1<=235))
{COLUMN1=COLUMN1-30;}
}
}
|