Hi, Dave and Tim
I had a look to the TEST section of this program ... It gave that, with a " classic " PBP use. :
Code:
'Config
@ __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB3 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_ON & _INTRC_IO
@ __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
'@ __config _CONFIG1, _INTRC_IO & _WDT_ON & _LVP_OFF & _CP_OFF
DEFINE ADC_BITS 10 ' Sets the number of bits in the result to 10
ANSEL = %00001111 'set RA0-RA3 as analog inputs
'ADCON1 = %10000000 'Right Justifies 10-bit value
'OSCCON = $60 'Sets the internal oscillator to 4 Mhz
OSCCON = %01101110 'Internal RC w/ I/Os
INTCON = 0
PIE1 = 0
PIE2 = 0
CMCON = 7 'Comparators off
CVRCON = 0
INCLUDE "modedefs.bas"
ti var byte
ti = 50 '20 MILLISECONDS DELAY'
A VAR word
B VAR word
C VAR word
D VAR word
_A CON 0
_B CON 1
_C CON 2
_D CON 3
TRISA = %00001111
TRISB = 0 'TURN PORT B as outputs but RB1 WHEN USE ICD FOR COMMUNICATION
'* * * * * MAIN PROGRAM START HERE * * * * * * * *
PAUSE 1000
Serout PORTB.1, 0, [254,1]
Serout PORTB.1, 0, [254,2]
PAUSE 20
READSENSORS:
'ADCON0 = %00000001 'Turn ON CHAN 0
'GOSUB ADCON
ADCIN _A, A
'A.LOWBYTE = ADRESL 'PLACES THE LOW BYTE INTO VAR
SEROUT PORTB.1 , 0, ["Ch 0= ",# A.LOWBYTE]
pause 20
'ADCON0 = %00001001 'Turn ON CHAN 1
'GOSUB ADCON
ADCIN _B, B
'B.LOWBYTE = ADRESL 'PLACES THE LOW BYTE INTO VAR
SEROUT PORTB.1 , 0, [" Ch 1= ",# B.LOWBYTE]
PAUSE 20
SEROUT PORTB.1,0,[$FE,$C0]
'ADCON0 = %00010001 'Turn ON CHAN 2
'GOSUB ADCON
ADCIN _C, C
'C.LOWBYTE = ADRESL 'PLACES THE LOW BYTE INTO VAR
SEROUT PORTB.1 , 0, ["Ch 2= ",# C.LOWBYTE]
PAUSE 20
'ADCON0 = %00011001 'Turn ON CHAN 3
'GOSUB ADCON
ADCIN _D, D
'D.LOWBYTE = ADRESL 'PLACES THE LOW BYTE INTO VAR
SEROUT PORTB.1 , 0, [" Ch 3= ",# D.LOWBYTE]
PAUSE 1000
Serout PORTB.1, 0, [254,1]
GOTO READSENSORS ' PROVISIONAL LOOP TO CHECK THE A/D CONVERTION.
I just commented out original lines for comparison ...
Hope it Helps
Alain
Bookmarks