Hola a todos, estoy intentando utilizar el modulo ADC del PIC,estoy simulando con el proteus, y consigo que utilizando el instrumento virtual del proteus el Virtual Terminal, que me muestre el valor de tension que toma por la patilla RA0, esto lo necesito para controlar el valor de V,de carga/descarga de una Bateria.
Mi problema es con el vitual terminal me aprece el resultado correctamente y con el hiperterminal me sale solo un simbolo extraño,o se desplaza el cursor sin mostrar valor alguno, este el valor que este en RA0, siempre es el mismo simbolo, he probado la configuracion del hiperterminal con otros programas y funciona,con esta configuracion---BAUD=9600, BITS=8 ,PARITY=N, XMIT=PIN_C6, RCV=PIN_C7--- lo que quiero es utilizar solo el pin RA0 para que me tome el valor, y lo muestre en pantalla,no quiero tener que utilizar otros dos pines como referencia por arriba y referencia por abajo como he visto en otros ejemplos....os adjunto el codigo por si me podeis ayudar.
Gracias.
#include <16F886.h>
#device adc=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES RC //Resistor/Capacitor Osc with CLKOUT
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES BROWNOUT //Reset when brownout detected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES LVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V
#use delay(clock=2000000)
#use RS232(BAUD=9600, BITS=8 ,PARITY=N, XMIT=PIN_C6, RCV=PIN_C7) //Configuracion de Rs232
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
int16 valor;
void main()
{
setup_adc_ports(sAN0|VREF_VREF); //AKI SOLO KIERO USAR RA0
setup_adc(ADC_CLOCK_DIV_32);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
// setup_wdt(WDT_18MS);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
do{
delay_ms(100);
valor = read_adc();
printf("\r\n Valor: %s",valor);
printf("\r\n Valor: %c",valor);
printf("\r\n Valor: %x",valor);
//HE PORBADO CON OPCIONES DE PRINTF (%Ld.%u,%Lu) Y NADA
}while(TRUE);
}