Hello
The PBP manual says this about ADCIN
I want a value between 0-255 depending on the voltage (0-5V) on RA2 and was trying to set the registers without success and then I just tested the code below with Darrel Taylors ALLDIGITAL included and no additional register configurations and it works?Before ADCIN can be used, the appropriate TRIS register must be set to
make the desired pins inputs. The ADCON, ANCON and/or ANSEL
registers must also be set to assign the desired pins to analog inputs
But I wonder why it works without setting the registers, and should I set them even if the code works and why?
Maybe a dumb question but I want to know![]()
The PIC is an 16F886.
Code:DEFINE OSC 4 include "ALLDIGITAL.pbp" ; Darrel Taylors ALLDIGITAL DEFINE SHOWDIGITAL 1 ;----[16F886 Hardware Configuration]-------------------------------------------- ASM cfg1 = _INTRC_OSC_NOCLKOUT ; INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN cfg1&= _WDT_OFF ; WDT disabled and can be enabled by SWDTEN bit of the WDTCON register cfg1&= _PWRTE_ON ; PWRT enabled cfg1&= _MCLRE_OFF ; RE3/MCLR pin function is digital input, MCLR internally tied to VDD cfg1&= _CP_OFF ; Program memory code protection is disabled cfg1&= _CPD_OFF ; Data memory code protection is disabled cfg1&= _BOR_ON ; BOR enabled cfg1&= _IESO_OFF ; Internal/External Switchover mode is disabled cfg1&= _FCMEN_ON ; Fail-Safe Clock Monitor is enabled cfg1&= _LVP_OFF ; RB3 pin has digital I/O, HV on MCLR must be used for programming cfg1&= _DEBUG_OFF ; In-Circuit Debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins __CONFIG _CONFIG1, cfg1 cfg2 = _BOR21V ; Brown-out Reset set to 2.1V cfg2&= _WRT_OFF ; Write protection off __CONFIG _CONFIG2, cfg2 ENDASM ;===LCD Defines for EasyPIC5==================================================== DEFINE LCD_DREG PORTB ; Set LCD Data port DEFINE LCD_DBIT 0 ; Set starting Data bit (0 or 4) if 4-bit bus DEFINE LCD_RSREG PORTB ; Set LCD Register Select port DEFINE LCD_RSBIT 4 ; Set LCD Register Select bit DEFINE LCD_EREG PORTB ; Set LCD Enable port DEFINE LCD_EBIT 5 ; Set LCD Enable bit DEFINE LCD_BITS 4 ; Set LCD bus size (4 or 8 bits) DEFINE LCD_LINES 2 ; Set number of lines on LCD 'DEFINE LCD_COMMANDUS 1500 ; Set command delay time in us 'DEFINE LCD_DATAUS 44 ; Set data delay time in us ;------------------------------------------------------------------------------- Level var byte Main: ADCIN 2, Level LCDOUT $FE,1 LCDOUT $FE,1, "Level:", #Level pause 200 goto main




Bookmarks