智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1809|回复: 1
打印 上一主题 下一主题

AD模拟转化成数字的时候总是比理论值多5

[复制链接]

15

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2957
QQ
威望
469
贡献
2294
兑换币
2
注册时间
2010-11-14
在线时间
97 小时
跳转到指定楼层
1#
发表于 2011-3-13 08:56:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      
#include "derivative.h"
unsigned int AD[8];
unsigned  int p[8];
unsigned int i;
void SET_PLL()
{   
    CLKSEL=0X00;                       
    PLLCTL_PLLON=1;               
    SYNR=2;
    REFDV=1;  
    POSTDIV=0x00;      
    _asm(nop);         
    _asm(nop);
    while(!(CRGFLG_LOCK==1));         
    CLKSEL_PLLSEL =1;                        
}
void AD_INIT()
{
ATD0CTL1=0x00; // 选择 AD 通道为外部触发 ,8 位精度 , 采样前不放电
ATD0CTL2=0x40; // 标志位自动清零,禁止外部触发 , 禁止中断
ATD0CTL3=0xc0; // 右对齐无符号 , 每次转换 8 个序列 , No FIFO, Freeze 模式下继续转
ATD0CTL4=0x05; // 采样时间为 4 个 AD 时钟周期 ,PRS=1,ATDClock=6MHz
ATD0CTL5=0x30; // 特殊通道禁止 , 连续转换 , 多通道转换,起始通道为 0 转换 4 个通 道
ATD0DIEN=0x00; // 禁止数字输入
}
void GET_VALUE()
{
  while(!ATD0STAT0_SCF);
  AD[0]=ATD0DR0L;
  //AD[1]=ATD0DR1L;
  //AD[2]=ATD0DR2L;
  //AD[3]=ATD0DR3L;
  //AD[4]=ATD0DR4L;
  //AD[5]=ATD0DR5L;
  //AD[6]=ATD0DR6L;
  //AD[7]=ATD0DR7L;
  ATD0STAT0_SCF=1;
  }
void main()
  {
  PUCR_PUPAE=1;
  DDRB=0XFF;
  DDRA=0XFF;
  PUCR_PUPAE=1;
  PORTA=0XC4;
  SET_PLL();
  AD_INIT();
  GET_VALUE() ;
for(i=0;i<8;i++)
  {
  if(AD[i]>180)
  {
    p[i]=1;
  }
  else
  p[i]=0 ;
  }
PORTB_PB0=p[0];
//PORTB_PB1=AD[1];
//PORTB_PB2=AD[2];
//PORTB_PB3=AD[3];
//PORTB_PB4=AD[4];
//PORTB_PB5=AD[5];
// PORTB_PB6=AD[6];
//PORTB_PB7=AD[7];
EnableInterrupts;
}
里面的注释是错误的 但是代码是我的想法,,但是测出来的电压总是比理论值多大概五。。。。。不知是否正常啊 大家解答一下
我是用滑动变阻器  测得。。

15

主题

362

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4726
QQ
威望
1564
贡献
2808
兑换币
497
注册时间
2010-12-28
在线时间
177 小时
2#
发表于 2011-3-13 15:37:12 | 只看该作者
你拿万能表进行比较,应该差不多。实际上如果抗干扰作的不好,5个bits的误差是可以的,不知道你控制精度需要这么高吗?我们只是一个范围即可。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 15:39 , Processed in 0.143050 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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