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

📄 adc.c

📁 用ATmega88的一款温湿度仪的原程序
💻 C
字号:
#include <avr/io.h>
#include <util/delay.h>
/*
#define AD_SE_VBG  0x0E //VBG 内部能隙1.1V电压基准,校准用 
#define AD_SE_GND  0x0F //接地 校准用 
#define ADC_VREF_TYPE 0xc0   //内部基准1.1V
*/#define ADC_VREF_VCC  0x40
unsigned char adc_ch;
unsigned int adc_read()   //读取A/D转换结果,输入AD通道参数
{
	unsigned  int ad_data;
	ADCSRA|=0x40;       //启动A/D转换
	while ((ADCSRA&0x10)==0);   //等待A/D转换完成
	ADCSRA|=0x10;               //清楚标志
	ad_data  =(unsigned int) ADCL;                    //Read 8 low bits first (important)
	ad_data |= (unsigned int)ADCH << 8;  
	return ad_data;
}
void adc_init(unsigned char adc_chan)
{
	/*AD init start */
	if(adc_ch==adc_chan)
	return;
	adc_ch=adc_chan;
	ADCSRA = 0x00; //关闭ADC
  // 	ADMUX=ADC_VREF_TYPE|0x04; //设定内部基准 1.1V,选择第4通道
   ADMUX=ADC_VREF_VCC|adc_chan;
	ACSR = 0x80;   //关闭模拟比较器电源
	ADCSRA = 0x80; //使能ADC,2分频
}

⌨️ 快捷键说明

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