智能车制作

标题: 为什么我的AD转换只有0和255两个结果? [打印本页]

作者: leaf19881122    时间: 2009-8-7 09:48
标题: 为什么我的AD转换只有0和255两个结果?
芯片为dg128,BusClock=8MHz
AN8和AN9输入模拟信号,在1-3.5V左右,参考电压5V,但是只有0和255两个转换结果,另外电平触发是进行连续转换还是一次转换,在使用ATD模块应注意什么,好心人帮我看看,谢谢了。


#ifndef _AD_LightDetection_H_
#define _AD_LightDetection_H_
#define  AD_signal5  PORTK_BIT4
#define  AD_signal2  PORTK_BIT5
#define  AD_DDR5     DDRK_BIT4
#define  AD_DDR2     DDRK_BIT5
#define  AD_switch   PORTK_BIT0
#define  AD_sw_DIR   DDRK_BIT0
#define  on          0
#define  off         1
#define  in         0
#define  out          1
void AD_Init(void);
void Get_AD_Value5(unsigned char *A);
void Get_AD_Value2(unsigned char *A);
void AD_Transfer(char *Dis,unsigned char *A);
#endif

unsigned char AD_Result[5]={0x00,0x00,0x00,0x00,0x00};    //AD转换结果
char Display_AD[]="000,000,000,000";

/*******************main()*************************/
void main(void)
{
   LcdInit();
   AD_Init();

   for(;;)  
    {
        Get_AD_Value2(AD_Result);
        AD_Transfer(Display_AD,AD_Result); //将结果转换成字符在显示器上显示
        LcdWriteStr(1,0,Display_AD);
    }   
}


/******************使用两个AD转换模块分别控制,均采用高电平触发*******************/
void AD_Init(void)
{  
  AD_sw_DIR=out;
  AD_switch=on;
  _asm (nop);
  _asm (nop);
  _asm (nop);

  ATD1CTL2=0xCC;   //AD模块上电, 快速清零, 无等待模式,外部上升沿触发, 中断禁止   
  ATD1CTL3=0x10;   //每次转换2个序列, No FIFO, Freeze模式下继续转   
  ATD1CTL4=0xC7&0x7f;   //8位精度, 采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]=2MHz
  ATD1CTL5=0xB0;   //右对齐无符号,连续转换 ,从8通道开始,轮流通道采样
  ATD1DIEN=0x00;   //禁止数字输入  

  AD_DDR5=1;       //I/O口输出
  AD_DDR2=1;
  AD_signal5=0;       //初始信号为低电平
  AD_signal2=0;
  
   
}




void Get_AD_Value2(unsigned char *A)
{
    AD_signal2=1;
    while(!ATD1STAT1_CCF1);
    A[0]=ATD1DR0L;
    A[1]=ATD1DR1L;
    AD_signal2=0;
    _asm (nop);
}


void AD_Transfer(char *Dis,unsigned char *A)
{
    Dis[0]=A[0]/100+0x30;
    Dis[1]=A[0]%100/10+0x30;
    Dis[2]=A[0]%100%10+0x30;
   
    Dis[4]=A[1]/100+0x30;
    Dis[5]=A[1]%100/10+0x30;
    Dis[6]=A[1]%100%10+0x30;
}
作者: 星空下的学生    时间: 2009-8-7 15:36
AD口坏了,我们也遇到过这种情况,换块控制板吧
作者: leaf19881122    时间: 2009-8-7 20:55
不是这样```今天早上仔细看了下原来参考电压接错了```
2# 星空下的学生
作者: 烙铁头    时间: 2009-8-8 13:54
参考电压,典型错误,也遇到过
作者: xbsf-写轮眼    时间: 2009-8-9 13:20
参考电压的问题!
作者: zgyo888    时间: 2009-9-2 20:33
参考电压怎么接啊 接哪啊
作者: huachou    时间: 2010-4-20 19:12
找pdf  官方的
作者: zzyuchaozz    时间: 2010-6-9 14:41
回复 7# huachou


    能把这个PDF给我发一个么,我的邮箱zzyuchaozz@163.com 谢谢
作者: zzyuchaozz    时间: 2010-6-9 14:43
回复 4# 烙铁头


    能具体的说一下怎么接的么?是哪一块出的问题?谢谢?
作者: zzyuchaozz    时间: 2010-6-9 14:43
回复 3# leaf19881122


    我也遇到了相同的问题。能具体的说一下怎么接的么?是哪一块出的问题?谢谢?
作者: leaf19881122    时间: 2010-6-9 23:34
回复 10# zzyuchaozz


    就是A/D转换的参考电压没接上,一般接5V的电压。当时是用的最小系统版,忘了接参考电压。
作者: liqingyuan2008    时间: 2010-8-3 13:29
阈值电压没设好吧
作者: 529096768    时间: 2011-2-19 20:59
hao
作者: mashaokang1111    时间: 2011-2-20 19:28
这个参考不是片内的么....
作者: fanfankaka123    时间: 2011-2-23 20:59
学习
作者: hhsaber1221    时间: 2013-7-31 22:28
leaf19881122 发表于 2010-6-9 23:34
回复 10# zzyuchaozz

楼主 你好~~你说“就是A/D转换的参考电压没接上,一般接5V的电压。当时是用的最小系统版,忘了接参考电压。 ”的意思是最小系统版VDD引脚没有接5V吗?BDM供电就可以吗?是不是?
作者: 空相救心    时间: 2013-8-1 09:52
我的一直在192左右波动,给它高低电平也不变
作者: guozy205    时间: 2013-8-11 16:55
8位 右对齐  结果需要整体 右移两位
作者: guozy205    时间: 2013-8-11 16:55
8位 右对齐  结果需要整体 右移两位
作者: guozy205    时间: 2013-8-11 16:57
8位 右对齐  得到的高八位 和低八位  需要整体向右移2位  




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2