Board logo

标题: s12xs128 atd无法启动 [打印本页]

作者: linlion    时间: 2009-3-9 01:29     标题: s12xs128 atd无法启动

我想使用16路AD转换,但是发现可能无法从内部启动ATD

初始化程序入下
ATD0CTL1 = 0x00; /*禁止外部触发,8位精度,采样前不充电,无外部触发通道*/
ATD0CTL2 = 0x40; /*ATD快速清除标志位,禁止外部触发,中断禁止*/
ATD0CTL3 = 0xA0; /*右端对齐,每次转换16个序列,对应结果寄存器,冻结模式下继续转换*/
ATD0CTL4 = 0x01; /*采样时间为4个AD转换周期,采样频率为总线频率的1/10*/
ATD0CTL5 = 0x30; /*多通道转换,扫描模式,不进行特别通道转换,首先转换AN0*/

然后等待转换结束

while(!ATD0STAT0_SCF);

结果AD转换始终不结束。怀疑压根ATD转换没开始

DG128中在ATDCTL2中专门有一位负责启动ATD转换,但是我查遍了XS128的手册,没找打相关的控制位

请问这个该怎么解决?


作者: weibo2    时间: 2009-3-9 10:16

如果禁用外部触发,好像向CTL5写控制字的时候就会启动转换。

你把队列改成小于16的数,然后用调试模式直接在寄存器看一下STAT0的后四位,那个可能是下一个将要转换的通道,你看他变没变,试试吧,我也是刚开始学。


作者: linlion    时间: 2009-3-9 20:59

MS没用

我要改成外部触发试试


作者: chiusir    时间: 2009-3-21 20:00

DG128是10位的,XS128是12位的,寄存器设置等都发生了变化,这点儿要注意哦,你去我的BK看看,有着两个片子的AD寄存器比较


作者: BROOKCHAU    时间: 2009-4-3 11:55

你的设置有问题。XS128默认已经是10位了,不要看现有的教材了,里面不太适用XS128。必须看一下datasheet再设置。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0