登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

讨论一个关于ad转化精确度问题:

作者:doveyhc 栏目:单片机
讨论一个关于ad转化精确度问题:
讨论一个关于ad转化精确度问题:
  本人用的是m8内部ad转换,测量4~20mA信号,
  可是精确度很差,不知道为什么,测量的数据越大,数值越偏小
  量程为100时,显示为97,不知道为什么,请大家指点,谢谢。
  程序如下:
  void ad_task(void)
{
    LONG sumValue=0;
    int ValueAD;
    uchar i;
    //int valueDA,averageValueAD;
    ADCSRA|=(1<<ADFR);    //run AD连续转换
    for(i=0;i<16;i++)//
    {
        ADCSRA|=(1<<ADSC);    //run AD
        while(!(ADCSRA&(1<<ADSC)));
        ValueAD=ADCL;
        ValueAD+=ADCH<<8;
        sumValue+=ValueAD;
    }
    averageValueAD=sumValue>>4;
    ADCSRA&=~(1<<ADFR);    //停止AD连续转换
}

2楼: >>参与讨论
doveyhc
讨论一个关于ad转化精确度问题--电路图
 

3楼: >>参与讨论
atme162
检测一下你的参考电压是否稳定
因为参考电压不稳定是造成测量结果错误的直接原因,参考电压最好设计一个稳压电路,在电源电压波动大的情况下也能保证参考电压稳定输出,比如用LM385可以实现

4楼: >>参与讨论
atme162
你好,向你请教
    刚才开始学习AVR单片机,对它的一些语言不理解,EECR |= (1<<EEMWE);这一句怎么理解,在C语言中<<是向左移动,而AVR好像不是这样理解对吗?我明白这句意思是置EECR中的EEMWE位,但是怎么理解我就不明白了,请指教,谢谢

5楼: >>参与讨论
doveyhc
你好,向你请教
相当于1向左移动EEMWE位,再与EECR或啦。。


* - 本贴最后修改时间:2006-4-5 14:56:53 修改者:doveyhc

6楼: >>参与讨论
apad
相当于1向左移动EEMWE位,再与EECR“或”啦。。
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
avr单片机的寄存器怎么只有32个
双龙电子的模块化解释型SLROBOT C语言汇总--先睹为快!
请问M169的内部 8M RC振荡器的无偿是多少?
AVR实时仿真器应选什么型号
请教,关于看门狗和休眠的问题,谢谢
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号