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

初学者请各位大虾指点--AD转换问题

可以参考版面置顶的帖子,常见问题精华列表里面关于AD的部分
那些贴子我都看过,可是个感觉没有虾米帮助阿,也没有找出原因。

初学者请各位大虾指点--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编辑过]

哎!
怎么米有人帮忙解答啊,已经郁闷了很久了,就快要吐血了
你是用什么调试的?
海纳百川  有容乃大
我用的Codewarrior IDE软件,应该是2.0版本的 ,是一个供应商送的一套,
没有写到芯片里,而是软件仿真吗?这样的话AD模块是无法工作的。
海纳百川  有容乃大
我写进去了啊,但是反映跟软件方针的一样。
CW 2.0 是不是有点太老了啊?
招个高点的版本试试?
还有,你是通过什么方式调试的?监控程序 ? BDM?
生命就是奇迹,永远都不要放弃希望,哪怕光亮渺小如豆,我们都要坚持举着它,即使烛火灼伤了皮肤,我们也不能失手,否则我们将永远在黑暗之中。
哈哈,问题应该是解决了,原来片子的AD模块坏了。换了个芯片就好了。
返回列表