ADCR|=(1<<24);
while((AD0STAT&0x01)==0);
ADCR|=(1<<24);
while((AD0STAT&0x01)==0);
delay_ns(10);
这几句代码是周立功的事例代码!我就奇怪了,为啥要判断两次AD转换是否结束了呢?我试过了,用一次判断貌似也是正确的。
uint16 read_ad()
{
uint16 adc_data=0;
ADCR|=(1<<24);
while((AD0STAT&0x01)==0);
ADCR|=(1<<24);
while((AD0STAT&0x01)==0);
delay_ns(10);
adc_data=ADDR;
adc_data=(adc_data>>6)&0x3ff;
return adc_data;
}
希望有兴趣的来讨论下!!!让我等井底之蛙张张见识! |