Показать сообщение отдельно
Старый 23.07.2009, 13:26   #233   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
oversampling

dr.ON
Попробовал на PIC16F887 в железе oversampling.
На входе АЦП только потенциометр на 10 кОм. Опора АЦП - питание +5 в. Основной алгоритм:
Код:
for(;;)
{
tmp = 0;
for(i=0;i<256;i++)
{
TRISA0_bit = 0;
TRISA0_bit = 1;
GO_DONE_bit = 1;
while(GO_DONE_bit) continue;
ADC_result = ADRESH<<8;
ADC_result |= ADRESL;
tmp += ADC_result;
}
tmp >>= 4;
LongToStr(tmp, text);
Lcd_Out(2,1,text);
delay_ms(500);
}
Результаты отображаются на ЖКИ. При входном напряжении в районе 0 ... 1LSB 10-разрядного АЦП при oversampling (т.е. tmp >>= 4; ) получаю значения менее 16. При усреднении (т.е. tmp >>= 8; ) и при том же положении потенциометра получаю 0. Т.е. к 10 разрядам еще 4 разряда появляются. Или это не то?

Последний раз редактировалось petrd; 20.09.2010 в 10:04.
  Ответить с цитированием