|
#define In_PORT xbyte [0x7ff8]
void max180(uint idata *x) //a/d
{
uchar xdata *ad_adr;
uint low,high,i;
ad_adr=&In_PORT;
for(i=0;i<3;i++)
{
In_PORT=0;
while(s==1) {;}
low=(uint)(*ad_adr);
delay();
b=1;
high=(uint)(*ad_adr);
x=(high*256+low);
delay();
ad_adr++;
delay();
}
main()
{
uint idata ad[3]={0,0,0};
max180(ad);
result1+=ad[0]; //通道0的数据
result2+=ad[1];//通道1的数据
result3+=ad[2];//通道2的数据
}
我在主函数中调用max180,想把A/D中采集的3个通道的数据分别赋给result1,result2,result3,但实际上3个通道上输出的数据都相同且都是通道0的数据,实际上3个通道上的输入的模拟量各不相同。不知怎么回事,十分焦急,万望高手指点,感激涕零!
|
|