我的程序ADC0809,3个in输入,得到了3个模数转换的结果,但是为什么一拿来比较就出现问题?
void ShowDianliu()
{
uint IONE,ITWO,ITHREE,Electric_Current;
Delay(2);
IONE=DianYa_ADC0809_Get(0)*1.0*10/255; //获得一路电压
Delay(20);
ITWO=DianYa_ADC0809_Get(1)*1.0*10/255; //获得第二路电压
Delay(20);
ITHREE=DianYa_ADC0809_Get(2)*1.0*10/255;//获得第三路电压
Delay(20);
Electric_Current=MAX(IONE,ITWO,ITHREE); //3路电压取最大值
IntToStr(&TempBuffer[0],&TempBuffer[0]); //int转换成string
LCD_Play(&TempBuffer[0],17); //LCD显示字符串
IntToStr(IONE,&TempBuffer[1]);
LCD_Play(&TempBuffer[1],21);
IntToStr(ITWO,&TempBuffer[2]);
LCD_Play(&TempBuffer[2],25);
}
在主函数中调用void main()
{
LCD_Init();
ADC0809Initial();
while(1)
{ ShowDianliu(); //电压显示
}
}//获取的三个电流比较大小,取得最大值*****************************/
uint MAX(uint one,uint two,uint three)
{
uint max=one;
max=(one>two&&one>three)?one:(two>three)?two:three;
return max;
}
IntToStr(&TempBuffer[0],&TempBuffer[0]); //int转换成string
这句话是不是写错了。(1)如果读进来的三个数据一样,那可能是你的DianYa_ADC0809_Get()函数有问题。
(2)另外,你可以先不用DianYa_ADC0809_Get函数,直接给IONE,ITWO,ITHREE赋值一个常数,这样就可以看看你的比较函数,转换函数以及显示有没有问题