Для компилятора MikroC написано в хелпе:
" This function doesn't work with the external voltage reference source, only
with the internal voltage reference."
Что же, попробуем (PIC18F14K22, PIC18F13K22 ):
4,096V внутренняя опора, канал AN4:
unsigned int x;
ANSEL = 0b00010000; // Configure AN4 pin as analog and
ANSELH = 0x00;
C1ON_bit = 0; // disable comparator
C2ON_bit = 0; // disable comparator
ADC_Init();
FVR1S0_bit = 1;
FVR1S1_bit = 1;
D1PSS1_bit = 1; // connect FVR
D1LPS_bit = 1;
FVR1EN_bit =1; //Enable FVR
PVCFG1_bit = 1;
PVCFG0_bit = 0; // use FVR
Если канал будет на порте RA или RB, отключаем ещё прерывания и подвязку:
Например, используем AN3 (связан с RA4)
IOCA4_bit =0; // disable interrupt
WPUA4_bit =0; //disable pull-ups
x=ADC_Read(4); // get result
-------------
Теперь внешнее напряжение в качестве опорного:
unsigned int x;
ANSEL = 0b00010010; // Configure AN4 pin as analog and (AN1 as Vref ?)
ANSELH = 0x00;
C1ON_bit = 0; // disable comparator
C2ON_bit = 0; // disable comparator
IOCA1_bit =0; // disable interrupt Vref
WPUA1_bit =0; //disable pull-ups
ADC_Init();
PVCFG0_bit =1; // VREFPVCFG1_bit =0;
x=ADC_Read(4); // get result