S3C2440A 内部具有8 路模拟信号输入的10 位模/数转换器(ADC)。
用到的寄存器有:
ADCCON:用于选择通道、设置频率、开始转换、结束标志
ADC的频率 = PCLK/(ADCCON[13:6]+1)
ADCDATn:用于读出ADC通道n的转换结果:ADCDATn[9:0]
下面是个ADC通道0的实验程序:
//********************************************************************
#define adc_frequency 2000000
void Main(void)
{
int i;
……硬件初始化……
Uart_Printf("ADC实验\n\n");
rADCCON = 1<<3 | (PCLK/adc_frequency - 1)<<6 | 1<<14 ; //选择通道1,设置ADC频率,频率有效
while(1)
{
rADCCON|=0x1; //启动ADC while(!(rADCCON & 0x8000)); //等待是否转换完毕
Uart_Printf("AIN1: %d\n",rADCDAT0&0x3FF); //输出转换结果
Delay(1000); //延时1秒
}
} //******************************************************************* 运行结果如下:

|