📄 adc._c
字号:
/********************************************************************************/
//
// builder : 2007-04-10
// Target : ATMEAG 48V
// Crystal : 内部 8.00 MHz
//
// ADC 转换模块
/********************************************************************************/
#include <iom48v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#define CH0 0xC0
#define CH1 0xC1
#define CH2 0xC2
#define CH3 0xC3
#define CH4 0xC4
#define CH5 0xC5
#define CH6 0xC6
#define CH7 0xC7
void adc_int(void)
{
ADMUX = 0x40; //set adc power avcc and the ref is Avref
ADCSRA = 0xC2; //enable adc and the div parame is 8
}
/*---------------------------------------------------------------
ADC
----------------------------------------------------------------*/
uint adc_colect(uchar chanal)
{
uchar i;
uint ad_add;
uint temp,temp1;
uint adh;
if(chanal==0) ADMUX = CH0;
else if(chanal==1) ADMUX = CH1;
else if(chanal==2) ADMUX = CH2;
else if(chanal==3) ADMUX = CH3;
else if(chanal==4) ADMUX = CH4;
else if(chanal==5) ADMUX = CH5;
else if(chanal==6) ADMUX = CH6;
else if(chanal==7) ADMUX = CH7;
ad_add = 0;
for(i=0;i<8;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>>3;
return(adh);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -