📄 mega32_adc.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 + -