Ayuda COnfiguracion Entradas Analogas pic16f873

#1
Hola, Lo que pasa esque estoy haciendo un programa en c que me envia una trama de informacion a un puerto via rs232 para ser mostrada en un pc. Entonces para ello necesito supervisar 3 entradas analogas y moverlas a 3 registros distintos para posteriormente enviarlos via rs232. Bueno esto lo logre con una sola entrada analoga pero ahora no se como hacerlo para 3 aqui escribo el codigo usado:

#include <16F877a.h>
#fuses XT,NOWDT,PUT
#device adc=10
#use delay(clock=4M)
#use rs232(baud=2400,xmit=Pin_C6,rcv=Pin_C7)
#byte TrisB=0x86
#bit Led=0x06.0
void main(){
int16 Vd0; //variable entera para contener valor digital
float32 Va0;//variable análoga para contener valor análogo
TrisB=0x00;
Led=0;
setup_adc_ports(RA0_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
delay_us(10);



inicio:

Vd0=read_adc();// AQUI HACE LA LECTURA DEL PUERTO DONDE TENGO UN POTENCIOMETRO
// QUE SUBE Y BAJA EL VOLTAJE DE 0 A 5V
Va0 = Vd0 * 5;//DE AQUI EN ADELANTE ES EL FILTRADO Y ENVIO DE LA TRAMA AL PUERTO
va0= va0/1023;
delay_ms(20);
printf("$ %lu @",Vd0);// TRAMA A ENVIAR
goto inicio;
}


Por favor quiero que me expliquen como configuro los pines ra0, ra1, y ra2 como analogos y como los leo independientemente para contenerlos en tres registros distintos. De Antemano Muchas gracias!!!
 
#2
Ante de ----> Vd0=read_adc();// AQUI HACE LA LECTURA DEL PUERTO DONDE TENGO UN POTENCIOMETRO
tenes que seleccionar el puerto adc que vas a leer ---> set_adc_channel(0);

ejemplo
set_adc_channel(0);
A=read:adc();
delay_us(50);
set_adc_channel(1);
B=read:adc();
delay_us(50);
.
. etc

saludos
 

Temas similares

Arriba