Is it on a F886?
You MUST NOT set the GO/DONE bit at the same time you enable the ADC converter (Data Sheet page 106, Note in the box).
Also you do not setup the ADCON1. It is commented.
Try this:
IoannisCode:'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 10/2/2018 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** 'PIC16F886 #config __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT __CONFIG _CONFIG2, _WRT_OFF & _BOR21V #endconfig define osc 4 include "lcd886.bas" CM1CON0 = 0 'Comparator Off CM2CON0 = 0 'Comparator Off Define ADC_BITS 10 'Set number of bits in result (10) Define ADC_CLOCK 3 'Set clock source (3=rc) Define ADC_SAMPLEUS 50 'Set sampling time in microseconds (50us) TRISA = %00000001 'Set PORTA.0 as input TRISB = %00000000 'Set PORTB as outputs TRISC = %00000000 'Set PORTC as outputs ANSEL = %00000001 'Set PORTA.0 as analog ANSELH = %00000000 'The rest ports are digital ADCON0 = %11000001 'Set adc channel = AN0 ADCON1 = %10000000 'SETUP ADC RIGHT JUSTIFY SET REFV to VDD & VSS PORTA = 0 PORTB = 0 PORTC = 0 light var PORTA.3 tc var word '--------light is ON and initialize the LCD --------- pause 300 high light gosub lcdrst lcdout $fe, $80,"TEST" gosub lcdrst '---------------------PROGRAM------------------------ MAIN: ADCON0.1=1 gosub read_tc lcdout $fe, $80, #tc," " ' I put some space here when you go from large result to 1 digit result. pause 200 goto main end '---------------------Read AN0------------------------ read_tc: WHILE ADCON0.1 = 1:WEND 'WAIT FOR CONVERSION tc.HIGHBYTE = ADRESH tc.LOWBYTE = ADRESL return '--------------------lcd reset------------------------ lcdrst: lcdout, $fe, 1 pause 10 return




Bookmarks