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秒
}
} //******************************************************************* 運行結果如下:

|