智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3856|回复: 2
打印 上一主题 下一主题

[咨询] 求大侠来助!!电磁组AD采样数据不正确,为什么?

[复制链接]

1

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
威望
193
贡献
26
兑换币
0
注册时间
2010-10-24
在线时间
7 小时
跳转到指定楼层
1#
发表于 2011-4-4 15:11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

word AD_value[9];//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)

{
ATD0DIEN=0x00; //禁止数字输入

ATD0CTL1=0x00; //选择AD通道为外部触发,8位精度,采样前不放电

ATD0CTL2=0x40; //标志位自动清零,禁止外部触发, 禁止中断

ATD0CTL3=0xc4; //右对齐无符号,每次转换9个序列, FIFO模式

ATD0CTL4=0x01; //采样时间为4个AD时钟周期,PRS=1,ATDClock=6MHz

ATD0CTL5=0x30; //特殊通道禁止,连续转换 ,多通道转换,起始通道为0转换9个通道



}





//-----读取AD转换结果--------//

void AD_Getvalue(word *AD_value)
{
   while(!ATD0STAT0_SCF);     //等待ATD0模块转换结束
    asm ("nop");
    asm ("nop");
    asm ("nop");
  AD_value[0]=ATD0DR0;  //
  AD_value[1]=ATD0DR1;
  AD_value[2]=ATD0DR2;
  AD_value[3]=ATD0DR3;
  AD_value[4]=ATD0DR4;
  AD_value[5]=ATD0DR5;
  AD_value[6]=ATD0DR6;
  AD_value[7]=ATD0DR7;   
  AD_value[8]=ATD0DR8;



}

//-----主函数--------//



void main(void)

{


PLL_Init();

AD_Init();

DDRB=0xFF;

PORTB=0x00;
AD_value[0]=0;
AD_value[1]=0;
AD_value[2]=0;
AD_value[3]=0;
AD_value[4]=0;
AD_value[5]=0;
AD_value[6]=0;
AD_value[7]=0;
AD_value[8]=0;


AD_Getvalue(AD_value); // 读取转换结果

PORTB = (byte)AD_value[0];  //用PORT B来显示AD0的值
      
}
9个传感器输出接单片机AD0到8,旁边的参考电压接的5V。实验效果正确,数据不正确。效果就是离得最近的传感器数值最大,可是数值不稳定,跨度都能从几十到二百多变化。比如,第一次运行程序,数据如下,55 67 72 91 109 97 89 70 61    结束再运行一次,结果就可能变成178 198 207 217 230 221 208 190 181.到底为什么啊!!在示波器里看波形很稳定,离得最近的传感器有1.2V,按理说8位精度,5V对应255,1.2V也就只是50多才对啊。哪位好心的大侠帮帮我!

4

主题

37

帖子

0

精华

高级会员

Rank: 4

积分
980
威望
315
贡献
591
兑换币
22
注册时间
2010-10-31
在线时间
37 小时
2#
发表于 2011-4-5 10:35:39 | 只看该作者
怀疑你不知道采集的是什么信号,想明白了再写
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
威望
185
贡献
26
兑换币
0
注册时间
2011-3-23
在线时间
0 小时
3#
发表于 2011-4-5 14:25:43 | 只看该作者
ATD0CTL1=0x00;可能有点问题
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 06:29 , Processed in 0.117884 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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