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

📄 adc.c

📁 QT2410的BOOTLOADER 特点 1.支援NAND FLASH读写 2.TFTP firmware upgrade 3.USB firmware upgrade 4.Fdisk
💻 C
字号:
#include "sys.h"

#define ADC_FREQ 2500000

#define LOOP 10000

volatile unsigned int preScaler;

extern void Delay(unsigned int ms);

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
    unsigned int rADCCON_save = rADCCON;
    
    preScaler = ADC_FREQ;
    printf("ADC conv. freq. = %dHz\r\n",preScaler);
    preScaler = 50000000/ADC_FREQ -1;               //PCLK:50.7MHz
    
    printf("PCLK/ADC_FREQ - 1 = %d\r\n",preScaler);
    
    while( getc() != ESC_KEY )
    {
	    a0=ReadAdc(0);
	    printf( "AIN0: %04d\r\n", a0 );
		Delay( 80 ) ;
    }
    
    //rADCCON=(0<<14)|(19<<6)|(7<<3)|(1<<2);  //stand by mode to reduce power consumption
    rADCCON = rADCCON_save;
    printf("\nrADCCON = 0x%x\r\n", rADCCON);
}

⌨️ 快捷键说明

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