智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3657|回复: 15
打印 上一主题 下一主题

[咨询] XS128的AD问题

  [复制链接]

1

主题

10

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3921
威望
2050
贡献
1273
兑换币
795
注册时间
2012-3-27
在线时间
299 小时
跳转到指定楼层
1#
发表于 2013-4-5 13:25:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
       XS128的AD的各个通道相互之间为什么会有影响的?比如说我要用到四个通道,0,1,2,3这四个,然后我烧程序进去单片机中用BDM查看AD转换后的值,我先不给输入信号,然后那四个通道的值好像就在200以上变化(8位精度),接着我再在其中一个通道那里接上地线,那个通道的值就变成了0,但是其他通道的值也受到了影响,相邻的下一个通道的值变得只有100多,其他两个通道的值也受到些许影响。单片机试过好几块了,还是一样的问题。我把AD设置和采集的程序贴在下面,求解救。求帮忙啊,弄车弄了好久,突然发现到这个问题,排除了好久,也没找到为什么,纠结。。。
//AD初始化
void AD_INIT(void){
  ATD0DIEN=0x00;   //禁止数字输入
  ATD0CTL1_SRES=0;//8位精度
  ATD0CTL2=0x40;//启动转换,快速清除标志,禁止中断
  ATD0CTL3=0xA0;//右对齐,转换序列长度8,非先进先出模式
  ATD0CTL4=0x13;//80M总线,采样频率2M
  ATD0CTL5=0x30;//连续转换序列,多通道AD0-AD3
}

//AD采集,在PIT0终端中调用
void AD_DO(unsigned int *AD_value){
  if(ATD0STAT0_SCF)
  *AD_value=ATD0DR0;
  AD_value++;
  *AD_value=ATD0DR1;
  AD_value++;
  *AD_value=ATD0DR2;
  AD_value++;
  *AD_value=ATD0DR3;
  AD_value++;
}

7

主题

149

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
威望
530
贡献
348
兑换币
342
注册时间
2014-3-18
在线时间
129 小时
16#
发表于 2014-5-17 16:34:49 | 只看该作者
verm 发表于 2013-4-7 16:11
很高兴能为你解答问题,其实因为你采取了非先进先出模式 所以在只针对一个通道采集而其他通道并没有输入信号 ...

我的AD采集电感信号放大后大概1v左右,但是蓝牙串口反馈的值只有40 和 0B,其他的值全是0,是AD通道没打开吗?虚心求解
回复 支持 反对

使用道具 举报

7

主题

149

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
威望
530
贡献
348
兑换币
342
注册时间
2014-3-18
在线时间
129 小时
15#
发表于 2014-5-17 16:34:02 | 只看该作者
destiny24 发表于 2013-4-5 21:38
求高手指点迷津啊~~~

我的AD采集电感信号放大后大概1v左右,但是蓝牙串口反馈的值只有40 和 0B,其他的值全是0,是AD通道没打开吗?虚心求解
回复 支持 反对

使用道具 举报

7

主题

149

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
威望
530
贡献
348
兑换币
342
注册时间
2014-3-18
在线时间
129 小时
14#
发表于 2014-5-17 16:33:31 | 只看该作者
↗仰┢┦望☆ 发表于 2014-4-27 16:59
把 if(ATD0STAT0_SCF)  改成   每个*AD_value前while(!ATD0STAT2L_CCF0)  呢?

我的AD采集电感信号放大后大概1v左右,但是蓝牙串口反馈的值只有40 和 0B,其他的值全是0,是AD通道没打开吗?虚心求解
回复 支持 反对

使用道具 举报

37

主题

179

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1223

活跃会员奖章优秀会员奖章

威望
674
贡献
309
兑换币
361
注册时间
2014-2-27
在线时间
120 小时
13#
发表于 2014-4-27 16:59:18 | 只看该作者
把 if(ATD0STAT0_SCF)  改成   每个*AD_value前while(!ATD0STAT2L_CCF0)  呢?
回复 支持 反对

使用道具 举报

3

主题

180

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2074
威望
976
贡献
536
兑换币
648
注册时间
2013-12-7
在线时间
281 小时
12#
发表于 2014-4-26 07:59:50 | 只看该作者
cs172034 发表于 2014-4-25 23:54
我也是,而且通道间会相互影响,请问解决了吗?

我感觉是AD初始化没设置好。
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
威望
120
贡献
65
兑换币
70
注册时间
2014-3-2
在线时间
19 小时
11#
发表于 2014-4-25 23:54:45 | 只看该作者
世界领袖2013 发表于 2014-4-20 15:05
我的电感值在没有输入时电感都在200多,怎么回事?

我也是,而且通道间会相互影响,请问解决了吗?
回复 支持 反对

使用道具 举报

3

主题

180

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2074
威望
976
贡献
536
兑换币
648
注册时间
2013-12-7
在线时间
281 小时
10#
发表于 2014-4-20 15:05:26 | 只看该作者
我的电感值在没有输入时电感都在200多,怎么回事?
回复 支持 反对

使用道具 举报

1

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
604
威望
291
贡献
195
兑换币
193
注册时间
2013-9-12
在线时间
59 小时
9#
发表于 2014-4-11 20:12:00 | 只看该作者
估计是通道设置有问题,你这样设计是采集了16个通道加上 ATD0CTL0=0x03试试
回复 支持 反对

使用道具 举报

0

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
812
威望
214
贡献
110
兑换币
139
注册时间
2013-1-23
在线时间
244 小时
毕业学校
江苏理工学院
8#
发表于 2013-5-18 16:01:44 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 17:45 , Processed in 0.049341 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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