Hello, Alexei! You wrote in conference fido7.RU.EMBEDDED to Peter Kostenko on Wed, 14 Apr
2004 19:04:30 +0400: AK>>> ADC0CF = (SYSCLK/2500000) << 3; ??>> это максимум, попробуй частоту поменьше сделать AK> ADC0CF скорость преобразования меняется от 0 до 31. AK> Частоту поменьше сделать, т.е. увеличивать значение?
то что пишется в ADCOFC увеличивать
??>> подробнее схему - может времени hold не хватать. AK> Время hold. Чтоб его хватило, что нужно устанавливать? AK> ADC0CF?
см ниже
AK>>> периодически значения падают к нулю (или около того). ??>> говорите точно - сколько в отсчетах ;=) AK> период я не определял. фиг его знает.
разрядов сколько "плавает"?
AK> for( i=0; i<8; ++i) AK> { AK> // выбрать канал AK> // измерить (процедура выше) AK> // сохранить результат в буфере AK> };
внимательно прочитать
46Rev. 1.45.2.3.Settling Time Requirements
после выбора канала необходимо a minimum settling (or tracking) time is required before an accurate conversion can be performed.
если время это не выдержать (hold), то АЦП "схватит" непонятное значение со входа.
With best regards, Peter Kostenko.
----
formatting link