智能车制作

标题: 如何测试一次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