智能车制作
标题:
如何测试一次AD转换的时间 越精确越好!!!
[打印本页]
作者:
yuexiahun007
时间:
2011-3-29 20:21
标题:
如何测试一次AD转换的时间 越精确越好!!!
这是我们编写的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;
}
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2