yezizyf 发表于 2007-12-28 19:50:20

请教马老师,AD转换的这种误差是怎么回事?

马老师您好!
我用您书上第十章AD转换的例子例10.3调通后结果是这样的:

1.在用输入状态下禁用上拉电阻且开路时的初始电压为0的端口(比如PA.2)做输入通道时误差很小,能精确到10mV,

2.但是在用输入状态下关上拉电阻且开路时的初始电压不为0的端口做输入通道时,就会改变原来的电压值;此时端口会向被测电路中输出电流,严重影响测量的准确性

请教马老师这是怎么回事?
还有就是为什么在DDRA=0x00;PORTA=0x00的时候PA口8个端口的电压从0V、3V到5V各不相等,目前我没查到相关的说明,还望马老师指点迷津!

谢谢!

machao 发表于 2007-12-29 02:21:08

问的问题概念都是混乱的:

"输入状态下禁用上拉电阻且开路时"
"输入状态下关上拉电阻且开路时"

表示什么意思?!有区别吗?


DDRA=0x00;PORTA=0x00表示I/O口工作在输入方式,内部上拉电阻无效,此时I/O为高阻输入状态,你能测它的电压?

使用AD时,I/O口应该为输入状态,内部上拉无效.

如果内部上拉有效,该I/O口内部有50K电阻拉到Vcc,就会影响ADC的输入和测量了.

好好把模拟和数字电路的基础复习和巩固一下吧.

Kidult 发表于 2012-4-21 21:46:58

machao 发表于 2007-12-29 02:21 static/image/common/back.gif
问的问题概念都是混乱的:

"输入状态下禁用上拉电阻且开路时"



当上电复位的时候,是不是默认的I/O口状态是:DDRX=0x00,PORTX=0x00?默认的就是高阻态?有时候我要用的是某一个口的某几位,比如C口的0,1,2,3,4,5,6这六位,且要求这几位为输出,它们的电平分别要求为高,低,低,低,低,低,低,那么我一下的操作是否能达到目的?
                PORTC = 0x00;//这一句是否不对?或许可以改为PORTC = 0xFF?或者完全是多余的?                     
                     DDRC = 0xFF;//输出,如果上一句删掉的话,那么此时会输出低电平?            
                PORTC |= (1<<6)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0);
            
页: [1]
查看完整版本: 请教马老师,AD转换的这种误差是怎么回事?