www.pudn.com > ADS_s3c2440a.rar > Adcts.c
/***************************************** NAME: Adcts.c DESC: ADC & Touch screen test HISTORY: 2003.09.23:Leon YH KIM: draft ver 1.0 *****************************************/ #include#include "def.h" #include "2440addr.h" #include "2440lib.h" #define REQCNT 30 #define ADCPRS 9 //YH 0627 #define LOOP 1 int ReadAdc(int ch); //Return type is int, Declare Prototype function void __irq AdcTsAuto(void); int count=0; volatile int xdata, ydata; void Test_Adc(void) { int a0=0,a1=0,a2=0,a3=0; //Initialize variables int a4=0,a5=0,a6=0,a7=0; //Initialize variables Uart_Printf("The ADC_IN are adjusted to the following values.\n"); Uart_Printf("Push any key to exit!!!\n"); Uart_Printf("ADC conv. freq.=%d(Hz)\n",(int)(PCLK/(ADCPRS+1.))); // ADC Freq. = PCLK/(ADCPSR+1), ADC conversion time = 5CYCLES*(1/(ADC Freq.)) while(Uart_GetKey()==0) { a0=ReadAdc(0); a1=ReadAdc(1); a2=ReadAdc(2); a3=ReadAdc(3); a4=ReadAdc(4); a5=ReadAdc(5); a6=ReadAdc(6); a7=ReadAdc(7); Uart_Printf("AIN0: %04d AIN1: %04d AIN2: %04d AIN3: %04d", a0,a1,a2,a3); Uart_Printf("AIN4: %04d AIN5: %04d AIN6: %04d AIN7: %04d \n", a4,a5,a6,a7); } rADCCON=(0<<14)+(19<<6)+(7<<3)+(1<<2); //stand by mode to reduce power consumption Uart_Printf("rADCCON = 0x%x\n", rADCCON); } int ReadAdc(int ch) { int i; static int prevCh=-1; if(prevCh!=ch) { rADCCON=(1<<14)+(ADCPRS<<6)+(ch<<3); //setup channel, ADCPRS for(i=0;i