|
S3C2440 ADC的问题,搞几天了求各位指点一下
[复制链接]
ADCCON 的第0位 置1 启动ADC转换,在转换过程中 第0位会变成0
但是我置1后,一直没有启动,不知道哪里出问题了。
下面我把部分代码贴出来:
//2440.h
#define ADCCON (*(volatile unsigned long *) 0x58000000)
#define ADCTSC (*(volatile unsigned long *) 0x58000004)
#define ADCDAT0 (*(volatile unsigned long *) 0x5800000C)
//adcini.c
//adc
#define ADC_END (1<<15) //只读,0:正在转换, 1:转换结束
#define PRSCEN_EN (1<<14)
#define PRSCVL(x) ((x)<<6)
#define ADC_CH(x) ((x)<<3)
#define READ_START (1<<1)
#define ENABLE_START (1<<0)
int adc_ch(void)
{
ADCCON |= PRSCEN_EN|PRSCVL(49)|ADC_CH(0);
ADCCON &=~READ_START; //清除此位使ENABLE_START位生效
ADCTSC &=~(1<<2);
ADCCON |= ENABLE_START;
putd('A');
while( ADCCON & ENABLE_START); //卡在这个地方不走了,就是说ADC一直没有启动
putd('B');
while(!(ADCCON & ADC_END) ); //等待ad读取转换结束
putd('C');
return (ADCDAT0&0x3FF);
}
谢谢了!
|
|