首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

s12xs128 atd无法启动

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的手册,没找打相关的控制位

请问这个该怎么解决?

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

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

MS没用

我要改成外部触发试试

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

飞思卡尔8/16/32位多功能开发板/下载器:
网站:http://www.lqist.cn,
淘宝店:http://shop36265907.taobao.com
你的设置有问题。XS128默认已经是10位了,不要看现有的教材了,里面不太适用XS128。必须看一下datasheet再设置。
返回列表