智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5204|回复: 11
打印 上一主题 下一主题

[编程类] AD转化程序····大家看看!!!

[复制链接]

17

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1270
QQ
威望
740
贡献
192
兑换币
10
注册时间
2011-4-15
在线时间
169 小时
跳转到指定楼层
1#
发表于 2011-10-5 22:20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */   
#define uchar unsigned char
#define uint  unsigned int

void AD_Init(void) {
ATD0DIEN=0X00;
ATD0CTL2=0X40;
ATD0CTL3=0X08;
ATD0CTL4=0x83;
ATD0CTL5=0Xa7;
}

void main(void){
   uchar AD_result;
   AD_Init();
   DDRB=0XFF;
   PORTB=0XFF;
   while(1){
   
      while(!ATD0STAT1_CCF7){
      
            ;
      }
      AD_result=ATD0DR7L ;
      PORTB=AD_result;
  }
}麻烦大家看看这条程序
我用电感采集回来的电压做模拟输入,输入到AN7通道,PORTB连接LED,可是就是没反应啊
是不是这条程序有问题!!!!!!

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
威望
169
贡献
43
兑换币
4
注册时间
2011-10-7
在线时间
7 小时
2#
发表于 2011-10-8 10:32:28 | 只看该作者
通道7的转换结果不是在结果寄存器7中而是在结果寄存器0中。由于对ad模块的理解误区,认为通道7的转换结果就是存放在对应的结果寄存器中,其实不是这样的!
回复

使用道具 举报

17

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1270
QQ
威望
740
贡献
192
兑换币
10
注册时间
2011-4-15
在线时间
169 小时
3#
 楼主| 发表于 2011-10-8 11:32:19 | 只看该作者
回复 2# 凯撒星星


    那你意思是AD_result=ATD0DR0L,为什么?假如我用通道2,或者通道3呢?也在ATD0DR0L中吗?如果我同时用通道1和通道2,那数据存放在哪?
回复

使用道具 举报

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
威望
169
贡献
43
兑换币
4
注册时间
2011-10-7
在线时间
7 小时
4#
发表于 2011-10-8 16:09:47 | 只看该作者
回复 3# ListenHappy
首先为什么会在结果寄存器0中呢?是因为结果寄存器0只是存放序列转换中第一个转换完的结果,如果你用其他的单通道也是一样的!如果你同时用两个通道,哪个通道先转换完,转换结果就存在结果寄存器0中,第二个转换完的,就存在结果寄存器1中!当然如果是多通道也是这个意思,不过你就要对相关寄存器进行设置!有什么问题咱们可以继续交流!
回复

使用道具 举报

17

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1270
QQ
威望
740
贡献
192
兑换币
10
注册时间
2011-4-15
在线时间
169 小时
5#
 楼主| 发表于 2011-10-8 20:41:11 | 只看该作者
回复 4# 凯撒星星


    哦,我想问一下,关于ATD采样的,它好像没有提到标准电压的,不是应该接一、5V或者多少V的基准电压,才能模拟比较吗?
回复

使用道具 举报

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
威望
169
贡献
43
兑换币
4
注册时间
2011-10-7
在线时间
7 小时
6#
发表于 2011-10-8 21:36:17 | 只看该作者
回复 5# ListenHappy
ad模块是集成在mcu内部的,只要对mcu正常供电,在程序中对atdctl2中的adpu位置1打开ad模块电源就行了!
回复

使用道具 举报

17

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1270
QQ
威望
740
贡献
192
兑换币
10
注册时间
2011-4-15
在线时间
169 小时
7#
 楼主| 发表于 2011-10-8 22:22:07 | 只看该作者
回复 6# 凯撒星星


    哦,原来是这样啊,谢谢啦!以后有什么问题就请教你了····
回复

使用道具 举报

17

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1270
QQ
威望
740
贡献
192
兑换币
10
注册时间
2011-4-15
在线时间
169 小时
8#
 楼主| 发表于 2011-10-10 15:38:12 | 只看该作者
回复 7# ListenHappy


    好像程序中都没有对atdctl2中的adpu位置1,直接采样就行了,还有我想问一下,单通道采样时,转化序列长度是什么意思?比如我单通道采样,序列长度为4,这是什么意思?
回复

使用道具 举报

17

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1270
QQ
威望
740
贡献
192
兑换币
10
注册时间
2011-4-15
在线时间
169 小时
9#
 楼主| 发表于 2011-10-10 19:29:01 | 只看该作者
回复 6# 凯撒星星


     好像程序中都没有对atdctl2中的adpu位置1,直接采样就行了,还有我想问一下,单通道采样时,转化序列长度是什么意思?比如我单通道采样,序列长度为4,这是什么意思?
回复

使用道具 举报

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
威望
169
贡献
43
兑换币
4
注册时间
2011-10-7
在线时间
7 小时
10#
发表于 2011-10-12 20:16:27 | 只看该作者
回复 9# ListenHappy
就是对采样通道连续转换4次
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 03:14 , Processed in 0.178686 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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