智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3549|回复: 8
打印 上一主题 下一主题

[编程类] 为什么我的AD口总读不出来

[复制链接]

11

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
威望
244
贡献
29
兑换币
0
注册时间
2010-5-17
在线时间
2 小时
跳转到指定楼层
1#
发表于 2010-5-18 22:56:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2贡献
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
word AD_wValue;//AD 转换结果
//--------------初始化函数----------------//
//-----时钟初始化程序--------//
void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{ //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
REFDV=1; //总线时钟=48/2=24MHz
SYNR=2;
while(!(CRGFLG&0x08));
CLKSEL=0x80;
}
//-----ATD 初始化程序--------//
void AD_Init(void)
{
ATD0CTL1=0x00; //选择AD 通道为外部触发,8 位精度,采样前不放电
ATD0CTL2=0x40; //标志位自动清零,禁止外部触发, 禁止中断
ATD0CTL3=0xa0; //右对齐无符号,每次转换4 个序列, No FIFO, Freeze 模式下继续转
ATD0CTL4=0x07; //采样时间为4 个AD 时钟周期,PRS=1,ATDClock=6MHz
ATD0CTL5=0x30; //特殊通道禁止,连续转换,多通道转换,起始通道为0 转换4 个通道
ATD0DIEN=0x00; //禁止数字输入
}
//-----读取AD 转换结果--------//
void AD_GetValue(word *AD_wValue)
{
*AD_wValue=ATD0DR0; //读取结果寄存器的值
}
//-----主函数--------//
void main(void)
{
PLL_Init();
AD_Init();
DDRB=0xFF;
PORTB=0xEF;
EnableInterrupts;
for(;;)
{
while(!ATD0STAT2_CCF0); // 等待转换结束while(ATDOSTAT2_CCF0==1)
AD_GetValue(&AD_wValue); // 读取转换结果
PORTB = (byte)AD_wValue; // 在B 口显示转换值
}
}

2

主题

85

帖子

0

精华

高级会员

Rank: 4

积分
519
威望
346
贡献
43
兑换币
0
注册时间
2010-4-1
在线时间
65 小时
2#
发表于 2010-5-19 09:13:26 | 只看该作者
药把标志清掉!
回复

使用道具 举报

11

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
威望
244
贡献
29
兑换币
0
注册时间
2010-5-17
在线时间
2 小时
3#
 楼主| 发表于 2010-5-19 21:55:11 | 只看该作者
什么啊
回复

使用道具 举报

1

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
285
QQ
威望
239
贡献
34
兑换币
0
注册时间
2010-11-14
在线时间
6 小时
4#
发表于 2010-12-2 11:17:49 | 只看该作者
把while(!ATD0STAT2_CCF0); 改成while(!ATD0STAT&0x80);就可以了
回复

使用道具 举报

4

主题

226

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1238
QQ
威望
472
贡献
584
兑换币
0
注册时间
2010-8-30
在线时间
91 小时
5#
发表于 2010-12-2 16:45:24 | 只看该作者
学习
回复

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
QQ
威望
277
贡献
61
兑换币
0
注册时间
2010-12-31
在线时间
25 小时
6#
发表于 2011-3-3 20:33:50 | 只看该作者
ATD0STAT是什么意思啊
回复

使用道具 举报

1

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
QQ
威望
277
贡献
61
兑换币
0
注册时间
2010-12-31
在线时间
25 小时
7#
发表于 2011-3-3 20:34:00 | 只看该作者
ATD0STAT是什么意思啊
回复

使用道具 举报

1

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
威望
252
贡献
50
兑换币
0
注册时间
2011-2-8
在线时间
6 小时
8#
发表于 2011-3-11 13:11:54 | 只看该作者
回复 7# zyx89820


    ATD状态寄存器。。。其实应该是ATD0STAT0吧
回复

使用道具 举报

8

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1620
QQ
威望
657
贡献
737
兑换币
2
注册时间
2011-6-3
在线时间
113 小时
9#
发表于 2011-6-16 16:18:25 | 只看该作者
好像是while(!ATD0STAT2_CCF0); // 等待转换结束while(ATDOSTAT2_CCF0==1)
错了。



应该是:
while(!ATD0STAT1_CCF0);



ATD状态寄存器中没有ATD0STAT2
回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 17:06 , Processed in 0.125564 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表