|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
讨论一个关于ad转化精确度问题: |
作者:doveyhc 栏目:单片机 |
讨论一个关于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 于 2006/4/3 15:55:00 发布:
讨论一个关于ad转化精确度问题--电路图 |
3楼: | >>参与讨论 |
作者: atme162 于 2006/4/3 18:45:00 发布:
检测一下你的参考电压是否稳定 因为参考电压不稳定是造成测量结果错误的直接原因,参考电压最好设计一个稳压电路,在电源电压波动大的情况下也能保证参考电压稳定输出,比如用LM385可以实现 |
4楼: | >>参与讨论 |
作者: atme162 于 2006/4/3 18:52:00 发布:
你好,向你请教 刚才开始学习AVR单片机,对它的一些语言不理解,EECR |= (1<<EEMWE);这一句怎么理解,在C语言中<<是向左移动,而AVR好像不是这样理解对吗?我明白这句意思是置EECR中的EEMWE位,但是怎么理解我就不明白了,请指教,谢谢 |
5楼: | >>参与讨论 |
作者: doveyhc 于 2006/4/4 8:38:00 发布:
你好,向你请教 相当于1向左移动EEMWE位,再与EECR或啦。。 * - 本贴最后修改时间:2006-4-5 14:56:53 修改者:doveyhc |
6楼: | >>参与讨论 |
作者: apad 于 2006/4/4 8:44:00 发布:
相当于1向左移动EEMWE位,再与EECR“或”啦。。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |