My code is as follows:
Code:
Include "modedefs.bas"
DEFINE OSC 20 ' OSCCON defaults to 4MHz on reset
DEFINE ADC_BITS 8 ' Set number of bits in result (8, 10 or 12)
DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds
;-------------CONFIGURATION FUSES SET HERE-------------------------
@ __Config _RC_OSC & _WDT_ON & _PWRTE_ON & _BODEN_ON ; & _CP_ALL
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
PAUSE 100
;------------REGISTERS SET HERE------------------------
ADCON1=%00000100
ADCON0=%1100000
PORTA=0
PORTB=0
PORTC=0
TRISA = %000001
TRISC = 0
TRISB = 0
OPTION_REG = %10001111 ' RAPU = off, PS 1:256 to TMR0
PORTA=0
PORTC=0
PORTB=0
B0 Var Word
gosub CLER
start var Adcon0.0
done var Adcon0.2
Main:
Start=1
while done=1 : pause 1 : wend
b0=ADRES
LCDOUT $FE,2," B0=",dec3 B0 : pause 500
GOSUB CLER
goto Main
cler:
LCDOUT $FE,1
pause 10
LCDOUT $FE,2
PAUSE 10
LCDOUT $FE,$0C
pause 100
return
I am trying to take adc reading of a POT, but the result is constantly "B0=010" on my LCD. Could someone help me identify the problem please?
Bookmarks