智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4481|回复: 4
打印 上一主题 下一主题

为什么XS128的AD采样精度为12位的话最大只能采集到2.5v电压,10位采样就精度正常

[复制链接]

4

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2134
威望
770
贡献
474
兑换币
503
注册时间
2012-12-12
在线时间
445 小时
跳转到指定楼层
1#
发表于 2013-7-31 22:01:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
参考电压是5v的,设置12位的采样精度采到2.5v之后电压就归零了。。这是什么情况,寄存器设置如下:
void AD_Init(void)
{

   
    ATD0CTL4 = 0x00;      
    ATD0CTL3 = 0xC0;   
    ATD0CTL0 = 0x0F;      
    ATD0CTL1 = 0x4F;        设置采样精度为12位         
    ATD0CTL2 = 0x40;
   


}


如果设置成下面就是正常的,可以采到5v:
void AD_Init(void)
{


ATD0CTL4 = 0x00;
ATD0CTL3 = 0xC0;
ATD0CTL0 = 0x0F;
ATD0CTL1 = 0x3F; 设置采样精度为10位
ATD0CTL2 = 0x40;



}



1

主题

190

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6456

在线王奖章活跃会员奖章论坛元老奖章优秀会员奖章

QQ
威望
3092
贡献
1918
兑换币
1783
注册时间
2012-7-5
在线时间
723 小时
2#
发表于 2013-8-1 07:36:46 | 只看该作者
void ATD_init(void)
{
   ATD0CTL1=0x40;    //12位采样精度
   ATD0CTL2=0x40;    //下降沿触发,禁止中断
   ATD0CTL3=0x98;    //采样结果右对齐,转换序列长度为3
   ATD0CTL4=0x03;    //fATDCLK=fBUS/(2*(PRS+1))=4MHz,即0.25us(转换时间);采样时间1us
   ATD0CTL5=0x30;    //禁止特殊通道;连续转换;多通道采样
   ATD0DIEN=0x00;    //禁止数字输入
}
这个可以的。。总线频率为32Mhz
回复 支持 反对

使用道具 举报

4

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2134
威望
770
贡献
474
兑换币
503
注册时间
2012-12-12
在线时间
445 小时
3#
 楼主| 发表于 2013-8-4 19:51:30 | 只看该作者
君啸凤舞 发表于 2013-8-1 07:36
void ATD_init(void)
{
   ATD0CTL1=0x40;    //12位采样精度

谢谢哈~已经解决了
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
威望
144
贡献
88
兑换币
91
注册时间
2014-3-2
在线时间
24 小时
毕业学校
南京晓庄学院
4#
发表于 2014-4-3 16:23:10 | 只看该作者
怎么改的啊
回复 支持 反对

使用道具 举报

4

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2134
威望
770
贡献
474
兑换币
503
注册时间
2012-12-12
在线时间
445 小时
5#
 楼主| 发表于 2014-4-24 19:31:49 | 只看该作者
珍and简简单单 发表于 2014-4-3 16:23
怎么改的啊

不是寄存器设置的问题,是我的数据类型太小,导致溢出了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-25 04:29 , Processed in 0.047155 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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