智能车制作

标题: xs128 AD转换 初始化 后为什么只能读出4个ad值 [打印本页]

作者: weng439    时间: 2010-5-3 12:14
标题: xs128 AD转换 初始化 后为什么只能读出4个ad值
这样对ad进行初始化 ,但是 只能读出前4 个ad值 ,后面的4个都是0, 哪位 高手 帮我一下,看看哪里写错了?
谢谢~~~

   
  ATD0CTL1=0x00;   //7:1-外部触发,65:00-8位精度,4:放电,3210:ch
  ATD0CTL2=0x40;   //禁止外部触发, 中断禁止   
  ATD0CTL3=0x30;   //右对齐无符号,每次转换4个序列, No FIFO, Freeze模式下继续转   
  ATD0CTL4=0x01;   //765:采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]
  ATD0CTL5=0x30;   //6:0特殊通道禁止,5:1连续转换 ,4:1多通道轮流采样
  ATD0DIEN=0x00;   //禁止数字输入
作者: lim1t    时间: 2010-5-3 14:00
ATD0CTL3=0x30;   //右对齐无符号,每次转换4个序列, No FIFO, Freeze模式下继续转

你应该设置的是6个序列吧?

ATD0CTL3改成0x10,试试。
作者: weng439    时间: 2010-5-3 18:46
ATD0CTL3=0x30;  的确是6 个序列。  
ATD0CTL3=0x10; 好像 是转化 2个序列,
我想转换的是全部8个,应该怎么设置呢?   

这里的转化序列长度 是不是想要得到几个ad的值就设置为多少啊?
作者: weng439    时间: 2010-5-3 18:55
设成 ATD0CTL3=0x10  这样 还不行

是不是跟 ad时钟频率 采样频率 什么的有关啊   

请高手指教。
作者: lim1t    时间: 2010-5-3 19:43
回复 4# weng439

我打错了,你要一次转8个是吧?

是把ATD0CTL3改成0x40,ATD0CTL5改成0x10。

fATDCLK设置成0.25到8.3MHz之间都行的。

不好意思哈。
作者: ydmsz    时间: 2010-5-4 12:23
ATD0CTL3=0xC0
作者: weng439    时间: 2010-5-8 09:19
谢谢啦   已经能成功检测出八个ad了
作者: 可欣    时间: 2012-10-3 23:39
借鉴
作者: cs172034    时间: 2014-5-5 15:40
ATD0CTL5改成0x10什么意思?不应该是ATD0CTL5=0x30吗?




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