//从取模结果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;}
-
- }
- }
|