智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3213|回复: 17
打印 上一主题 下一主题

ad超奇怪的问题??高价求解啊!!

  [复制链接]
回帖奖励 30 贡献 回复本帖可获得 2 贡献奖励! 每人限 1 次

34

主题

1589

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6271

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章

威望
3267
贡献
1194
兑换币
2035
注册时间
2012-11-28
在线时间
905 小时
跳转到指定楼层
1#
发表于 2013-4-29 17:38:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是两个ad采样初始化程序:为啥我把ATD0CTL3=0x80(转换序列长度为16);改为ATD0CTL3=0x98(转换序列长度为3);之后上位机就没数据了!!难道进入死循环了,改过来之后就有数据了!!!!!
void AD_Init(void)     
{
   // ATD0CTL0=0x07;  //转换频道从AN0到AN7
    ATD0CTL1=0x40;  //选择AD通道为外部触发,12位精度,采样前不放电  
    ATD0CTL2=0x40;  //标志位自动清零,禁止外部触发, 禁止中断     
    ATD0CTL3=0x98;  //右对齐无符号,每次转换3个序列, No FIFO, Freeze模式下继续转     
    ATD0CTL4=0x07;  //采样时间4个AD时钟周期,PRS=3,ATDClock=64/(7+1)*0.5=2MHz               000  00111
    ATD0CTL5=0x36;  //特殊通道禁止,连续转换 ,多通道转换,起始通道为6
    ATD0DIENL=0x00;  //禁止数字输入
}


void AD_Init(void)     

{
   // ATD0CTL0=0x07;  //转换频道从AN0到AN7
    ATD0CTL1=0x40;  //选择AD通道为外部触发,12位精度,采样前不放电  
    ATD0CTL2=0x40;  //标志位自动清零,禁止外部触发, 禁止中断     
    ATD0CTL3=0x80;  //右对齐无符号,每次转换16个序列, No FIFO, Freeze模式下继续转     
    ATD0CTL4=0x07;  //采样时间4个AD时钟周期,PRS=3,ATDClock=64/(7+1)*0.5=2MHz               000  00111
    ATD0CTL5=0x36;  //特殊通道禁止,连续转换 ,多通道转换,起始通道为6
    ATD0DIENL=0x00;  //禁止数字输入
}
void AD_GetValue(void)
{
  //  ATD0CTL3=0x98;
  //  ATD0CTL5=0x35;
    while(!ATD0STAT2_CCF7);
    AD_value[7]=ATD0DR2;
    AD_value[5]= ATD0DR0;
    AD_value[6]= ATD0DR1;
}

6

主题

318

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3134
威望
1445
贡献
933
兑换币
721
注册时间
2012-11-9
在线时间
378 小时
2#
发表于 2013-4-29 17:44:01 | 只看该作者

回帖奖励 +2 贡献

我想请问一下LZ,你CTL3初始化是用的上面的INIT函数,还是用的下面INIT函数然后在void AD_GetValue(void)里面重新初始化?
回复 支持 反对

使用道具 举报

34

主题

1589

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6271

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章

威望
3267
贡献
1194
兑换币
2035
注册时间
2012-11-28
在线时间
905 小时
3#
 楼主| 发表于 2013-4-29 17:46:50 | 只看该作者
下面的啊!你觉得问题出在哪?,好奇怪啊
回复 支持 反对

使用道具 举报

34

主题

1589

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6271

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章

威望
3267
贡献
1194
兑换币
2035
注册时间
2012-11-28
在线时间
905 小时
4#
 楼主| 发表于 2013-4-29 17:47:44 | 只看该作者
qurter 发表于 2013-4-29 17:44
我想请问一下LZ,你CTL3初始化是用的上面的INIT函数,还是用的下面INIT函数然后在void AD_GetValue(void)里 ...

就进行了一次初始化啊!!!
回复 支持 反对

使用道具 举报

6

主题

318

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3134
威望
1445
贡献
933
兑换币
721
注册时间
2012-11-9
在线时间
378 小时
5#
发表于 2013-4-29 17:55:54 | 只看该作者
本帖最后由 qurter 于 2013-4-29 17:58 编辑
wen123 发表于 2013-4-29 17:47
就进行了一次初始化啊!!!

不好意思,我还是不太明白LZ是怎么初始化的,读取之前没有对AD的控制寄存器更改过么?
回复 支持 反对

使用道具 举报

34

主题

1589

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6271

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章

威望
3267
贡献
1194
兑换币
2035
注册时间
2012-11-28
在线时间
905 小时
6#
 楼主| 发表于 2013-4-29 18:03:19 | 只看该作者
在main,while(1)循环之前,初始化的啊
回复 支持 反对

使用道具 举报

6

主题

318

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3134
威望
1445
贡献
933
兑换币
721
注册时间
2012-11-9
在线时间
378 小时
7#
发表于 2013-4-29 18:14:10 | 只看该作者
小弟也不知道为什么,不过LZ你把CTL3改为C0试试

PS:感觉LZ的问题跟http://www.eefocus.com/bbs/article_265_487159.html有点相似
回复 支持 反对

使用道具 举报

6

主题

318

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3134
威望
1445
贡献
933
兑换币
721
注册时间
2012-11-9
在线时间
378 小时
8#
发表于 2013-4-29 18:16:28 | 只看该作者
小弟也不知到为什么,不知道LZ把CTL3改为C0能不能正常工作……
回复 支持 反对

使用道具 举报

34

主题

1589

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6271

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章

威望
3267
贡献
1194
兑换币
2035
注册时间
2012-11-28
在线时间
905 小时
9#
 楼主| 发表于 2013-4-29 18:28:57 | 只看该作者
qurter 发表于 2013-4-29 18:16
小弟也不知到为什么,不知道LZ把CTL3改为C0能不能正常工作……

c0也是尝试过啊,也不行、、貌似飞80不可
回复 支持 反对

使用道具 举报

6

主题

318

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3134
威望
1445
贡献
933
兑换币
721
注册时间
2012-11-9
在线时间
378 小时
10#
发表于 2013-4-29 18:50:00 | 只看该作者
那小生真的不知道怎么回事了……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 07:08 , Processed in 0.141310 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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