注册会员
- 积分
- 125
- 威望
- 179
- 贡献
- 36
- 兑换币
- 0
- 注册时间
- 2011-3-14
- 在线时间
- 6 小时
|
这是我们编写的AD转换程序。。。。。。。。。望各位多多指教。
//[ADC.c]A/D转换-----------------------------------------------------------*
//本文件包含: *
// (1)ADCInit:A/D转换初始化 *
// (2)ADCvalue:获取1路A/D转换结果 *
#include "ADC.h" //A/D转换头文件
//ADCInit:A/D转换初始化----------------------------------------------------*
//功 能:初始化AD转换 *
//参 数:无 *
//返 回:无 *
//-------------------------------------------------------------------------*
void ADCInit(void) {
ATD0CTL1=0x2f; //10位精度 8位0x0f
ATD0CTL2=0x40; //快速清除关闭外部出发
ATD0CTL3=0x88; //右对 转换序列长度1
ATD0CTL4=0xe3; // 采样时间为4个时钟周期
ATD0CTL5=0x00; //右对齐 无符数据连续采样
ATD0DIEN=0x00; //模拟输入
}
//ADCvalue:1路10位A/D转换函数----------------------------------------------*
//功 能:获取通道channel的10位A/D转换结果 *
//参 数:channel=通道号(0~15) *
//返 回:该通道的A/D转换结果(0~1023) *
//-------------------------------------------------------------------------*
int ADCvalue(unsigned char channel)
{
int temp; //暂存A/D转换的结果
//ATDCTL5.DJM = 0,结果寄存器数据采用左调整
//ATDCTL5.SCAN = 0,单次转换
//ATDCTL5.CC~CA = channel,启动通道转换
ATD0CTL5|=channel;
//取A/D转换结果
while (!(ATD0STAT0&0x80));//判断ATDSTAT0的第7位是否为1
temp = ATD0DR0; //从A/D数据寄存器0中读10位数据
return temp;
} |
|