⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 S3C2440 开发板ADS下的一个测试程序,这个本是开发板公司的,放到这大家方便下载了,
💻 C
字号:
//====================================================================
// File Name : Adc.c
// Function  : S3C2410 ADC Test 
// Program   : Kang, Weon Tark 
// Date      : May 22, 2002
// Version   : 0.0
// History
//   0.0 : Programming start (March 29,2002) -> KWT
//         ADC Test                          -> May 15, 2002 SOP
//====================================================================

#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h" 

#define REQCNT 100              //May 08, 2002 SOP
#define ADC_FREQ 2500000
//#define ADC_FREQ   1250000
//#define LOOP 1
#define LOOP 10000

volatile U32 preScaler;

//==================================================================================		
int ReadAdc(int ch)
{
    int i;
    static int prevCh=-1;

    rADCCON = (1<<14)|(preScaler<<6)|(ch<<3);	//setup channel

    if(prevCh!=ch)
    {
	rADCCON = (1<<14)|(preScaler<<6)|(ch<<3);   //setup channel
	for(i=0;i<LOOP;i++);	//delay to set up the next channel
	prevCh=ch;
    }
    rADCCON|=0x1;   //start ADC

    while(rADCCON & 0x1);	//check if Enable_start is low
    while(!(rADCCON & 0x8000));	//check if EC(End of Conversion) flag is high

    return ( (int)rADCDAT0 & 0x3ff );
}

//==================================================================================
void Test_Adc(void) 
{
    int a0=0; //Initialize variables
    U32 rADCCON_save = rADCCON;
    
   	Uart_Printf( "ADC INPUT Test, press ESC key to exit !\n" ) ;

    preScaler = ADC_FREQ;
    Uart_Printf("ADC conv. freq. = %dHz\n",preScaler);
    preScaler = 50000000/ADC_FREQ -1;               //PCLK:50.7MHz
    
    Uart_Printf("PCLK/ADC_FREQ - 1 = %d\n",preScaler);
    
    while( Uart_GetKey() != ESC_KEY )
    {
	    a0=ReadAdc(0);

	    Uart_Printf( "AIN0: %04d\n", a0 );
		Delay( 500 ) ;
    }
    
    //rADCCON=(0<<14)|(19<<6)|(7<<3)|(1<<2);  //stand by mode to reduce power consumption
    rADCCON = rADCCON_save;
    Uart_Printf("\nrADCCON = 0x%x\n", rADCCON);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -