是一个用51采集摇杆的度数(0-179度)的代码
main()
{
ulong x,y;//无符号长整型x,y
uchar n;//无符号字符型n
Initialize_LCD(); //液晶屏初始化
InitADC(); //ADC初始化
delay_ms(100); //延时
x=0;
y=0;
for(n=0;n<10;n++)//这里是采集10位ADC的意思吗?
{
ADC();
delay_ms(5);
x=x+b[n];//这里看不懂
//前面的代码有个这个(ulong a=0; a=GetADCResult(0)&0x03; a=ADC_LOW8+a*256;//a=0-1023 b[i]=a; )
y=y+c[n];
}
refx=x/10;
refy=y/10;
mode=0;
while(1)
{
scankey();
ADC();
x=0;
y=0;
for(n=0;n<10;n++)
{
x=x+b[n];
y=y+c[n];
}
if(mode==0)
{
sx=(x*9/512);//x=0-179度
sy=(y*9/512);
}
else if(mode==1)
{
if(x>=refx*10)
sx=(x-refx*10)*9/(1024-refx)+90;
else if(x<refx*10)
sx=x*9/refx;
if(y>=refy*10)
sy=(y-refy*10)*9/(1024-refy)+90;
else if(y<refy*10)
sy=y*9/refy;
}
display_LCD();
delay_ms(100);
}
}
|