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

📄 mega32_adc.h

📁 MEGA32L 单片机的按键,LED,LCD等测试例程,ICCAVR编译器
💻 H
字号:
//======================================
//MEGA32的AD模块头文件
//FileName =mega32_adc.h
//Date Time=20071214...20071215
//======================================
#include"public.h"

#ifndef	_MEGA32_ADC_H_
#define	_MEGA32_ADC_H_

//--------------------------------------
//常数的定义
//--------------------------------------
#define	CONST_ADC_REF_IS_EXTERN_POWER	0
#define	CONST_ADC_REF_IS_INTERN_AVCC	1
#define	CONST_ADC_REF_IS_INTERN_256V	3

//使用内部VCC作为参考电压
#define	TYPE_OF_ADC_REF		CONST_ADC_REF_IS_INTERN_AVCC		

#if	(TYPE_OF_ADC_REF ==CONST_ADC_REF_IS_EXTERN_POWER)
	#define	CONST_ADMUX_REF_SELECT	(uchar)0
#elif	(TYPE_OF_ADC_REF ==CONST_ADC_REF_IS_INTERN_AVCC)
	#define	CONST_ADMUX_REF_SELECT	(uchar)(BIT(REFS0))
#elif	(TYPE_OF_ADC_REF ==CONST_ADC_REF_IS_INTERN_256V)
	#define	CONST_ADMUX_REF_SELECT	(uchar)(BIT(REFS1) |BIT(REFS0))
#else
	#define	CONST_ADMUX_REF_SELECT	0
#endif

//分频系数的设置,2(缺省)/2/4/8/16/32/64/128
#define	ADC_FEN_PIN	64		//考虑到主频和采样速率限制的关系,仅仅64和128有效!		 		

#if	(ADC_FEN_PIN ==2)
	#define	CONST_ADC_FEN_PIN_SETS	1		
#elif	(ADC_FEN_PIN ==4)
	#define	CONST_ADC_FEN_PIN_SETS	2
#elif	(ADC_FEN_PIN ==8)
	#define	CONST_ADC_FEN_PIN_SETS	3
#elif	(ADC_FEN_PIN ==16)
	#define	CONST_ADC_FEN_PIN_SETS	4
#elif	(ADC_FEN_PIN ==32)
	#define	CONST_ADC_FEN_PIN_SETS	5
#elif	(ADC_FEN_PIN ==64)
	#define	CONST_ADC_FEN_PIN_SETS	6
#elif	(ADC_FEN_PIN ==128)
	#define	CONST_ADC_FEN_PIN_SETS	7
#else	//2
      	#define	CONST_ADC_FEN_PIN_SETS	0
#endif

							//AD通道的选择安排
#define	CONST_ADC_CHANNEL_0	0
#define	CONST_ADC_CHANNEL_1	1
#define	CONST_ADC_CHANNEL_MAX	CONST_ADC_CHANNEL_1	//最大通道号							

//--------------------------------------
//数据类型的定义
//--------------------------------------
struct	_st_adc_op{
	uchar	inner_curr_adc_channel_number;		//=0...1依次标识2路模拟输入
	uint	inner_curr_adc_value[2];		//=0...1 依次是当前的AD0/1的转换A/D数据值,内部使用	
};

//--------------------------------------
//外部变量的说明
//--------------------------------------
extern volatile struct	_st_adc_op	st_adc_op;	//ADC转换的操作函数

//--------------------------------------
//函数的预定义
//--------------------------------------
void	init_adc_sets(void);				//A/D初始化
uint	do_adc_one_channel_change(uchar channel);	//进行一个通道的初始化

#endif

//End Of File

⌨️ 快捷键说明

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