怎么樣才能取三次ad轉換呀,我這樣老是只能取到一個的轉換值,取不到另外一個。
uint adc10_start(uchar channel) //channel = 0~7
{
uint adc;
uchar i;
ADC_RES = 0;
ADC_RESL = 0;
ADC_CONTR = (ADC_CONTR & 0xe 0) | ADC_START | channel;
i = 250;
do{
if(ADC_CONTR & ADC_FLAG)
{
ADC_CONTR &= ~ADC_FLAG;
adc = (uint)ADC_RES;
adc = (adc << 2) | (ADC_RESL & 3);
return adc;
}
}while(--i);
return 1024;
}
void main(void)
{
LCDInit();
Init_Ds18b20();
DisplayString(0x0,0," Welcome... ");
DisplayString(0x0,1,"water quality");
Delay1(500);
WriteCmd(LCD_CLS);
P1ASF = 0x07;
ADC_CONTR = ADC_360T | ADC_ON;
DisplayString(0x0,0,"PH:");
DisplayString(0x0,1,"TU:");
while(1)
{
TU = adc10_start(2);
Delay1(1000);
PH = adc10_start(3);
Delay1(1000);
PH_Value_Conversion();
TU_Value_Conversion();
|