2560|7

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

有人用过2440的ADC么?请教下.不能启动转换.大家帮我分析下. [复制链接]

部分程序如下:
pADCreg->rADCCON = (1<<14)|(200<<6)|(0<<3);
adccon = pADCreg->rADCCON;
pADCreg->rADCCON |= 1;
DWORD cmp = pADCreg->rADCCON&1;
while(cmp);//这里,如果我单步调试,一步一步走到这儿,cmp就是0,说明已经转换了,但是如是我直接走到这儿,它就是1.不知道为什么.
cmp = pADCreg->rADCCON & 0x8000;
while(!cmp);//这儿也是同样的问题.
adcdat = pADCreg->rADCDAT0&0x3ff;
请大家都我看下.谢谢了.

最新回复

请问 0x5800000对应的映射地址是多少啊?  详情 回复 发表于 2009-4-28 10:07
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
直接走到那个地方,还没有来得及转换完毕。单步花的时间长。
可以给cmp加volatile关键字再编译。
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢,但是我加过Sleep也不行.而且我在WINCE下运行的时候,它老是跑不过去,程序看起来就跟死了一样.完全不响应了.
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
解决了,我把while(cmp)换成while(pADCreg->rADCCON&1)就可以了.
我想应该是当执行到cmp=pADCreg->rADCCON&1;这句时,ADCCON中的最低位的确是1,所以cmp也就成了1,在存储器中它也是1.所以用while(cmp)进行判断是不行的.即使用volatile声明也不行.
以后得小心了.呵呵.
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 jjg1986 的回复:
解决了,我把while(cmp)换成while(pADCreg->rADCCON&1)就可以了.
我想应该是当执行到cmp=pADCreg->rADCCON&1;这句时,ADCCON中的最低位的确是1,所以cmp也就成了1,在存储器中它也是1.所以用while(cmp)进行判断是不行的.即使用volatile声明也不行.
以后得小心了.呵呵.

没看懂
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
e 有道理
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
等待转换结束
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

8
 
请问 0x5800000对应的映射地址是多少啊?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表