Здравствуйте.
Начал разбираться с АЦП в Xmega и столкнулся с проблемой в результате которой получаю не совсем корректные данные.
Собственно вот код инициализации АЦП:
Код
void ADC_init()
{
//ADCA.CAL=0xff; // Значение для калибровки АЦП
ADCA.CTRLB = ADC_RESOLUTION_12BIT_gc; // 12 бит дескретизация
ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | 0x02; // Опорное напряжение 1 В.
ADCA.PRESCALER = ADC_PRESCALER_DIV256_gc; // Переферийная частота работы АЦП
ADCA.CH0.CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc; // CH0 настроен на внешний несимметричный вход
ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN3_gc; // Настраиваем как положительный вывод порта для АЦП
ADCA.CTRLA|= ADC_ENABLE_bm; // Активирую АЦП
ADCA.CTRLB|=(1<<3); // Старт автоматического преобразования АЦП
}
На 3 пин порта А, подаю напряжение заведомо выше 1В, ожидая получить с АЦП максимальное значение, что то в районе 4095(судя по даташиту для безнакового вывода)
В результате получаю значение в районе 2700.
Вроде бы все регистры уже перепроверил, никак не могу понять в чем проблема.
Надеюсь на Вашу помощь)