adc.h

来自「这个是个航模产品的锂电测试器」· C头文件 代码 · 共 61 行

H
61
字号

/********************************************************************************/
//		
// 		builder : 2007-04-10
// 		Target  : ATMEAG 48V
// 		Crystal : 内部 8.00 MHz
//
//		ADC 转换模块
		
/********************************************************************************/


#include 	<iom48v.h>
#include 	<macros.h>


extern void adc_int(void);
extern unsigned int AD_CH(unsigned char CHn);


void adc_int(void)
{
	 ADMUX	= 0x40;		// 0xC0 基准电压2.56V ;0x40 外部AVCC
 	 ADCSRA	= 0xC7; 	//enable adc and the div parame is 8	 
}


/*---------------------------------------------------------------
   			ADC 
----------------------------------------------------------------*/

unsigned int AD_CH(unsigned char CHn)
{
 	unsigned char i;
	unsigned int  ad_add;
	unsigned int  temp,temp1;
	unsigned int  adh;
	
	ADMUX = (ADMUX & 0xF0) | CHn;
	
	ad_add = 0;
	
	for(i=0;i<4;i++)
	{
 		ADCSRA = ADCSRA|(1<<ADSC);			   //start the adc
		while(ADCSRA&(1<<ADSC));			   //wait for the adc finish
 		
 		ADCSRA = ADCSRA|(1<<ADSC);			   //start the adc
		while(ADCSRA&(1<<ADSC));			   //wait for the adc finish
		
		temp1 = ADCL;
		temp  = (ADCH&0x03)<<8;
		temp   += temp1;
		ad_add += temp;                                                                      
	}
	adh = ad_add>>2;
	return(adh);
}

/******************************************************************************/

⌨️ 快捷键说明

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