Ok, thanks.
I've reverted to legacy mode, still using FVR, removed all LCD components, added USART:
Code:
#CONFIG
__config _CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT32 & _CLKOUTEN_OFF & _CSWEN_OFF & _FCMEN_ON
__config _CONFIG2, _MCLRE_ON & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_ON & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_ON & _DEBUG_OFF
__config _CONFIG3, _WDTCPS_WDTCPS_11 & _WDTE_OFF & _WDTCWS_WDTCWS_7 & _WDTCCS_LFINTOSC
__config _CONFIG4, _WRT_OFF & _SCANE_available & _LVP_OFF
__config _CONFIG5, _CP_OFF & _CPD_OFF
#ENDCONFIG
DEFINE OSC 32
DEFINE ADC_BITS 10 ' 10-bit Analog to digital
DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS
DEFINE HSER_RXREG PORTC
DEFINE HSER_RXBIT 7
DEFINE HSER_TXREG PORTC
DEFINE HSER_TXBIT 6
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
Define HSER_BAUD 115200
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
DEFINE HSER_SPBRGH 0
DEFINE HSER_SPBRG 68
;--- Setup registers -----------------------------------------------------------
BAUDCON.3 = 1 ' Enable 16 bit baudrate generator
FVRCON = %10000011 ' FIXED VOLTAGE REFERENCE CONTROL REGISTER
' bit 7 FVREN: Fixed Voltage Reference Enable bit
' ---> 1 = Fixed Voltage Reference is enabled
' bit 1-0 ADFVR<1:0>: ADC FVR Buffer Gain Selection bit
' ---> 11 = ADC FVR Buffer Gain is 4x, (4.096V)(2)
ADCON0 = %10000100 ' ADC CONTROL REGISTER 0
' bit 7 ADON: ADC Enable bit
' ---> 1 = ADC is enabled
' bit 2 ADFRM0: ADC results Format/alignment Selection
' ---> 1 = ADRES and ADPREV data are right-justified
ADCON2 = %00000000 ' ADC CONTROL REGISTER 2
' bit 2-0 ADMD<2:0>: ADC Operating Mode Selection bits(1)
' ---> 000 = Basic (Legacy) mode
ADCLK = %00111111 ' ADC CLOCK SELECTION REGISTER
' bit 5-0 ADCCS<5:0>: ADC Conversion Clock Select bits
' ---> 111111 = FOSC/128
ADREF = %00000011 ' ADC REFERENCE SELECTION REGISTER
' bit 4 ADNREF: ADC Negative Voltage Reference Selection bit
' ---> 0 = VREF- is connected to AVSS
' bit 1-0 ADPREF: ADC Positive Voltage Reference Selection bits
' ---> 11 = VREF+ is connected to FVR_buffer 1
ADPCH = %00000000 ' ADC POSITIVE CHANNEL SELECTION REGISTER
' ---> 000000 = ANA0
ANSELA = %00001001 ' Pin A3 = ADC (voltage divider)
' Pin A0 = ADC (B5K)
ANSELB = %00000000
ANSELC = %00000000
TRISA = %00001001 ' Pin A3 = ADC input 3
' Pin A0 = ADC input 0
TRISB = %00000000 ' Pin B7 = ...not available, ICSPDAT
' Pin B6 = ...not available, ICSPCLK
TRISC = %11000000 ' Pin C7 = RX *** Datasheet requirement, INPUT ***
' Pin C6 = TX *** Datasheet requirement, INPUT ***
ADCinput var WORD
ADCdiff var WORD
OldADC0 var WORD
OldADC3 var WORD
Pause 100 ' Let PIC and LCD stabilize
ADCinput = 0 : ADCdiff = 0
OldADC0 = 9999 : OldADC3 = 9999
Hserout [ "ADC TEST", _
10, _
"Initial values = 9999", 10, 10]
Mainloop:
rem ADC 0
adcin 0, ADCinput : adcin 0, ADCinput
if ADCinput < oldADC0 then
ADCdiff = oldadc0 - adcinput
else
ADCdiff = adcinput - oldadc0
endif
if ADCinput <> oldADC0 then
oldADC0 = ADCinput
Hserout [ "B5K pot = ", dec4 ADCinput," diff = ", dec4 ADCdiff, 10]
while TXSTA.1 = 0 ' Check TRMT bit
wend
endif
rem ADC 3
adcin 3, ADCinput : adcin 3, ADCinput
if ADCinput < oldADC3 then
ADCdiff = oldadc3 - adcinput
else
ADCdiff = adcinput - oldadc3
endif
if ADCinput <> oldADC3 then
oldADC3 = ADCinput
Hserout [ " ", _
"Volt/divider = ", dec4 ADCinput," diff = ", dec4 ADCdiff, 10]
while TXSTA.1 = 0 ' Check TRMT bit
wend
endif
GOTO Mainloop
end
This is what I get now, variations of 1 and 2 mostly:
Code:
ADC TEST
Initial values = 9999
B5K pot = 0680 diff = 9319
Volt/divider = 0627 diff = 9372
B5K pot = 0681 diff = 0001
Volt/divider = 0628 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0679 diff = 0002
Volt/divider = 0627 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0629 diff = 0002
B5K pot = 0679 diff = 0001
Volt/divider = 0630 diff = 0001
Volt/divider = 0629 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0630 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0629 diff = 0001
Volt/divider = 0628 diff = 0001
Volt/divider = 0629 diff = 0001
Volt/divider = 0628 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0629 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0628 diff = 0001
Volt/divider = 0629 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0628 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0629 diff = 0001
B5K pot = 0680 diff = 0002
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0630 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0631 diff = 0001
Volt/divider = 0632 diff = 0001
Volt/divider = 0631 diff = 0001
Volt/divider = 0632 diff = 0001
B5K pot = 0677 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0631 diff = 0001
Volt/divider = 0630 diff = 0001
B5K pot = 0677 diff = 0001
B5K pot = 0679 diff = 0002
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0629 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0628 diff = 0001
Volt/divider = 0629 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0628 diff = 0001
Volt/divider = 0629 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0628 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0628 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0627 diff = 0001
Volt/divider = 0628 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0628 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0627 diff = 0002
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
Volt/divider = 0627 diff = 0001
Volt/divider = 0626 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0628 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0627 diff = 0001
Volt/divider = 0628 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0627 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0678 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
Volt/divider = 0625 diff = 0001
Volt/divider = 0626 diff = 0001
Volt/divider = 0625 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0626 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0626 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0625 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0625 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0625 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0678 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0625 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0681 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0681 diff = 0002
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0625 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0622 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0622 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0622 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0622 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0622 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0622 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0681 diff = 0001
Volt/divider = 0622 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0002
Volt/divider = 0623 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0681 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0624 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0624 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
B5K pot = 0679 diff = 0001
Volt/divider = 0622 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0622 diff = 0001
Volt/divider = 0623 diff = 0001
B5K pot = 0679 diff = 0001
B5K pot = 0680 diff = 0001
Volt/divider = 0622 diff = 0001
Bookmarks