[求助]s3c44b0x 的ad怎么用啊?
我写了个s3c44b0x的ad驱动vreft,vrefb,vcom均接10nf电容,然后连地,5v电压分压后输入adin0,ad转换正确,但是对电压变化的响应太慢了,如电压由1.7v变到0.7v,ad
值却并没有马上变到0.7v对应的值,大约等1分钟后才变过来,我的ad驱动如下:
#include <stdio.h>
#define ADCCON 0x10D40000
#define ADCSPR 0x10D40004
#define ADCDAT 0x10D40008
/*
ADCCON (0:6)
FLAG[6] SLEEP[5] INPUTSELECT[4,3,2] READ_START[1] ENABLESTART[0]
*/
main()
{unsigned short adval;
*((unsigned short *)ADCSPR)=20; //预分频 ,转换速度=32×20/66 us
for(;;)
{*((unsigned char *)ADCCON)=0x01; //00 000 01 ,adin0输入,AD启动
while((*((unsigned char *)ADCCON))&0x01==0x01); //ENABLESTART=0?
while(*((unsigned char *)ADCCON) <0x40); //FLAG=1?
adval=*((unsigned short *)ADCDAT);
printf(" the ad result is %d",adval);
}
}
发表时间:2004年12月16日22:01:59