📄 adc.h
字号:
/********************************ADC.H****************************************
文件名 : ADC.H
目标 : cc2430
创建日期: 2008/04/25
修改日期:
版本 : version 1.0
作者 : 刘旭
功能描述: 定义了与ADC相关的宏,和头文件.
******************************头文件************************************************/
#ifndef ADC_H
#define ADC_H
#include "ioCC2430.h"
#include "HAL.H"
/***************************使用端口说明********************************************
端口定义:
P0端口--ADC采样信号输入端口
P0_0-->ADC输入端口AIN0
P0_1-->ADC输入端口AIN1
P0_2-->ADC输入端口AIN2
P0_3-->ADC输入端口AIN3
P0_4-->ADC输入端口AIN4
P0_5-->ADC输入端口AIN5
P0_6-->ADC输入端口AIN6
P0_7-->ADC输入端口AIN7
**********************ADC宏定义****************************************************/
#define ADC_AIN0 0x00 // 单端信号输入端口 P0_0
#define ADC_AIN1 0x01 // 单端信号输入端口 P0_1
#define ADC_AIN2 0x02 // 单端信号输入端口 P0_2
#define ADC_AIN3 0x03 // 单端信号输入端口 P0_3
#define ADC_AIN4 0x04 // 单端信号输入端口 P0_4
#define ADC_AIN5 0x05 // 单端信号输入端口 P0_5
#define ADC_AIN6 0x06 // 单端信号输入端口 P0_6
#define ADC_AIN7 0x07 // 单端信号输入端口 P0_7
#define ADC_AIN0_AIN1 0x08 // 差分信号输入端口 P0_0-P0_1
#define ADC_AIN2_AIN3 0x09 // 差分信号输入端口 P0_2-P0_3
#define ADC_AIN4_AIN5 0x0A // 差分信号输入端口 P0_4-P0_4
#define ADC_AIN6_AIN7 0x0B // 差分信号输入端口 P0_6-P0_7
#define ADC_GND 0x0C // 地信号输入
#define ADC_TEMP_SENS 0x0E // 温度传感器输入端口
#define ADC_VDD_3 0x0F //(电源/3)输入端口
#define ADC_8_BIT 0x00 // 64 转换时钟周期
#define ADC_10_BIT 0x10 // 128 转换时钟周期
#define ADC_12_BIT 0x20 // 256 转换时钟周期
#define ADC_14_BIT 0x30 // 512 转换时钟周期
#define ADC_REF_1_25_V 0x00 // 片内1.25V为参考电压
#define ADC_REF_P0_7 0x40 // 外部AIN7上的为参考电压
#define ADC_REF_AVDD 0x80 // 电源电压为参考电压
#define ADC_REF_P0_6_P0_7 0xC0 // 差分电压AIN6-AIN7为参考电压
//*************************ADC宏指令*******************************************************
#define ADC_ENABLE_CHANNEL(channel) \
do{ADCCFG|= (0x01<<channel); \
}while(0) //使能AD输入端口
#define ADC_DISABLE_CHANNEL(channel) \
do{ADCCFG&= ~(0x01<<channel); \
}while(0) //关闭AD输入端口
#define ADC_SINGLE_CONVERSION(settings)\
ADCCON3 = settings //启动AD单次转换
#define ADC_SEQUENCE_SETUP(settings) \
ADCCON2 = settings //连续AD转化配置
#define ADC_STOP() \
ADCCON1 |= 0x30 //停止连续AD转化,为单次 AD做准备
#define ADC_SAMPLE_READY() \
(ADCCON1 & 0x80) //AD转换完成标志位
#define ADC_SAMPLE_CONTINUOUS() \
do {ADCCON1 &= ~0x30; \
ADCCON1 |= 0x10; \
}while (0 ) //启动AD连续转换
//*************************外部函数****************************************
extern INT16U HalAdcSampleSingle(INT8U reference,INT8U resolution,INT8U channel); //单次AD转换
extern void ValueTransformBcd(FP32 value); //十进制转BCD码
extern void halWait(INT8U wait); //延时函数
//**************************外部变量***************************************
extern INT8U BcdData[]; //BCD码数组
#endif
//***************************函数和变量使用说明****************************
//INT16U HalAdcSampleSingle(INT8U reference,INT8U resolution,INT8U channel); 单次AD转换函数
//reference:参考电压(可选的如下所示)
// ADC_REF_1_25_V 片内1.25V为参考电压
// ADC_REF_P0_7 外部AIN7上的为参考电压
// ADC_REF_AVDD 电源电压为参考电压
// ADC_REF_P0_6_P0_7 差分电压AIN6-AIN7为参考电压
//resolution:分辨率(可选的如下所示)
// ADC_8_BIT 64 转换时钟周期
// ADC_10_BIT 128 转换时钟周期
// ADC_12_BIT 256 转换时钟周期
// ADC_14_BIT 512 转换时钟周期
//channel:采样通道(可选的如下所示)
// ADC_AIN0 单端信号输入端口 P0_0
// ADC_AIN1 单端信号输入端口 P0_1
// ADC_AIN2 单端信号输入端口 P0_2
// ADC_AIN3 单端信号输入端口 P0_3
// ADC_AIN4 单端信号输入端口 P0_4
// ADC_AIN5 单端信号输入端口 P0_5
// ADC_AIN6 单端信号输入端口 P0_6
// ADC_AIN7 单端信号输入端口 P0_7
// ADC_AIN0_AIN1 差分信号输入端口 P0_0-P0_1
// ADC_AIN2_AIN3 差分信号输入端口 P0_2-P0_3
// ADC_AIN4_AIN5 差分信号输入端口 P0_4-P0_4
// ADC_AIN6_AIN7 差分信号输入端口 P0_6-P0_7
// ADC_GND 地信号输入
// ADC_TEMP_SENS 温度传感器输入端口
// ADC_VDD_3 (电源/3)输入端口
//void ValueTransformBcd(FP32 value); 十进制转BCD码函数,转换的BCD码放在数组BcdData[]中
//功能说明:此函数可以转换浮点数到BCD码,但只保留三位小数
//BcdData[] BCD码数组用于存放上个函数的转换的结构,方便后续显示
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -