Это точно требует отдельной темы, в Xmega с ADC не всё так просто.
Первое, что оказалось проблемой - максимум опорное напряжение 1,6в., даже если использовать AREF и подать на него 3,3в., всё равно ничего не получится.
Чистого нуля по АЦП тоже нет.
Аналог инициализации Atmega в Xmega будет примерно такой:
Config Adca = Single , Convmode = Unsigned , Resolution = 12bit , Dma = Off , Reference = Intvcc , Event_mode = None , Prescaler = 512 , Ch0_gain = 1 , Ch0_inp = Single_ended , Mux0 = &B0_0000_000
Для получения данных:
W = Getadc(adca , 0 , &B0_0000_000 )
Где:
adca - входы порта А, входы порта B - типа того
0 - Номер используемого канала
&B0_0000_000 - а это понимать вот так:
0000 Pin0 ADC0
0001 Pin1
0010 Pin2
0011 Pin3
0100 Pin4
0101 Pin5
0110 Pin6
0111 Pin7
1000 Pin8
1001 Pin9
1010 Pin10
1011 Pin11
1100 Pin12
1101 Pin13
1110 Pin14
1111 Pin15 ADC15
Для получения данных с АЦП можно и так:
ADC0 = Getadc(adca , 0 , &B0_0000_000 )
ADC1 = Getadc(adca , 0 , &B0_0001_000 )
ADC2 = Getadc(adca , 0 , &B0_0010_000 )
Но вот не задача, начальное значение 9-11.
Тут то и беда, к Xmega чего-то замутили с DAC и какой-то калибровкой чего-то.
Есть у кого информация, как можно просто оцифровать аналоговый сигнал?
Отредактировано Ev3658 (2017-12-24 15:06:37)

Там даже код есть.