请教:ATMEGA8 读ADC5值超过10位
从DATASHEET里查到ADC5只有8位,但采样出来的值不止10位.很简单和程序,ADC5采样后发给串看,从上位机看,得出的值从0X0000-0X7FFF,ADC值不是按采集电压升高而增大,中间什么变化都有.
真搞不懂哦,希望那位兄弟能指教!
void adc_init(void)
{
clrbit(DDRC,5); //set PC5(ADC5) as input
ADCSRA=0x87;
ADMUX =0x45;
}
void GetADC5(void)
{ ADMUX =0xc5;
ADCSRA=0xC7;
ADC=0;
while(!testbit(ADCSRA,ADIF));
ADCSRA=0xA7; //clr ADIF
UDR=ADCL; //UART send ADCL
Delay(3000);
UDR=ADCH; //UART send ADCH
} 搞了一天,换个IC,发现可以读出10位值了,可DATASHEET介绍是8位,还是不明白. 具体怎么搞定的,能分享下解决问题过程? 是10位的ADC啊?什么是8位,人家只是说是左对齐时,只取ADCH时是8位! tanguicaicai 发表于 2013-5-25 18:17 static/image/common/back.gif
是10位的ADC啊?什么是8位,人家只是说是左对齐时,只取ADCH时是8位!
Note that ADC channels ADC4 and ADC5 are limited to 8-bit accuracy. Channels
ADC and ADC offer full 10-bit accuracy. Lu_JR 发表于 2013-5-25 16:25 static/image/common/back.gif
具体怎么搞定的,能分享下解决问题过程?
可能IC坏了,换个IC就好了.我也搞不懂.
不过之前的IC其它功能都对,就是读ADC时值不对,不懂为什么.
页:
[1]