Board logo

标题: 初学者请各位大虾指点--AD转换问题 [打印本页]

作者: seuafu2005    时间: 2006-9-13 14:38

可以参考版面置顶的帖子,常见问题精华列表里面关于AD的部分
作者: liminjinzhi    时间: 2006-9-13 15:02

那些贴子我都看过,可是个感觉没有虾米帮助阿,也没有找出原因。
作者: liminjinzhi    时间: 2006-9-13 15:58     标题: 初学者请各位大虾指点--AD转换问题


郁闷了几天了也没搞明白怎么回事。是单通道单次转换的 下面附了程序。
我用的是MC9S12D64


void initATD0(void) {


 ATD0CTL2 = BM_ADPU|BM_AFFC;   
 ATD0CTL4 =  BM_PRS0;
 ATD0DIEN = 0X00;
 }
UINT16 getATD0(UINT8 channel) {



 ATD0CTL3 = BM_S1C;


 ATD0CTL5 = BM_DJM | (channel & 0x07);


 while((ATD0STAT1 & 0XFF) == 0X01) ;


 return ATD0DR0;
 }
void main(void)
{
 
 UINT16 res;
  initATD0();
  res = getATD0(0);
 
}
问题:状态寄存器中表示AD转换是否完成的位永远为0,存结果的寄存器的值也一直是00,没有变过。
这应该说明是没有完成过1次AD转换。可是为什么AD模块不工作呢?

[此贴子已经被作者于2006-9-13 15:58:13编辑过]


作者: liminjinzhi    时间: 2006-9-14 15:19

哎!
怎么米有人帮忙解答啊,已经郁闷了很久了,就快要吐血了
作者: strongchen    时间: 2006-9-14 15:23

你是用什么调试的?
作者: liminjinzhi    时间: 2006-9-14 16:56

我用的Codewarrior IDE软件,应该是2.0版本的 ,是一个供应商送的一套,
作者: strongchen    时间: 2006-9-14 17:06

没有写到芯片里,而是软件仿真吗?这样的话AD模块是无法工作的。
作者: liminjinzhi    时间: 2006-9-14 21:17

我写进去了啊,但是反映跟软件方针的一样。
作者: dreamcatcher    时间: 2006-9-14 22:25

CW 2.0 是不是有点太老了啊?
招个高点的版本试试?
还有,你是通过什么方式调试的?监控程序 ? BDM?

作者: liminjinzhi    时间: 2006-9-16 17:00

哈哈,问题应该是解决了,原来片子的AD模块坏了。换了个芯片就好了。




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