智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7054|回复: 19
打印 上一主题 下一主题

[采集类] 为什么我的AD转换只有0和255两个结果?

  [复制链接]

0

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
QQ
威望
280
贡献
55
兑换币
0
注册时间
2009-4-3
在线时间
55 小时
跳转到指定楼层
1#
发表于 2009-8-7 09:48:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2贡献
芯片为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;
}

0

主题

242

帖子

0

精华

高级会员

Rank: 4

积分
925
QQ
威望
451
贡献
382
兑换币
0
注册时间
2008-11-28
在线时间
46 小时
2#
发表于 2009-8-7 15:36:50 | 只看该作者
AD口坏了,我们也遇到过这种情况,换块控制板吧
回复

使用道具 举报

0

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
QQ
威望
280
贡献
55
兑换币
0
注册时间
2009-4-3
在线时间
55 小时
3#
 楼主| 发表于 2009-8-7 20:55:24 | 只看该作者
不是这样```今天早上仔细看了下原来参考电压接错了```
2# 星空下的学生
回复

使用道具 举报

0

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
749
QQ
威望
361
贡献
238
兑换币
0
注册时间
2009-3-20
在线时间
75 小时
4#
发表于 2009-8-8 13:54:35 | 只看该作者
参考电压,典型错误,也遇到过
回复

使用道具 举报

0

主题

185

帖子

0

精华

高级会员

Rank: 4

积分
791
QQ
威望
534
贡献
129
兑换币
72
注册时间
2009-4-4
在线时间
64 小时
5#
发表于 2009-8-9 13:20:21 | 只看该作者
参考电压的问题!
回复

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
125
威望
173
贡献
22
兑换币
0
注册时间
2009-6-25
在线时间
2 小时
6#
发表于 2009-9-2 20:33:13 | 只看该作者
参考电压怎么接啊 接哪啊
回复

使用道具 举报

0

主题

302

帖子

0

精华

高级会员

Rank: 4

积分
591
威望
475
贡献
62
兑换币
0
注册时间
2010-3-19
在线时间
27 小时
7#
发表于 2010-4-20 19:12:14 | 只看该作者
找pdf  官方的
回复

使用道具 举报

0

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
威望
175
贡献
28
兑换币
0
注册时间
2010-6-9
在线时间
1 小时
8#
发表于 2010-6-9 14:41:49 | 只看该作者
回复 7# huachou


    能把这个PDF给我发一个么,我的邮箱zzyuchaozz@163.com 谢谢
回复

使用道具 举报

0

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
威望
175
贡献
28
兑换币
0
注册时间
2010-6-9
在线时间
1 小时
9#
发表于 2010-6-9 14:43:07 | 只看该作者
回复 4# 烙铁头


    能具体的说一下怎么接的么?是哪一块出的问题?谢谢?
回复

使用道具 举报

0

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
威望
175
贡献
28
兑换币
0
注册时间
2010-6-9
在线时间
1 小时
10#
发表于 2010-6-9 14:43:45 | 只看该作者
回复 3# leaf19881122


    我也遇到了相同的问题。能具体的说一下怎么接的么?是哪一块出的问题?谢谢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 18:24 , Processed in 0.117739 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表