TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: kraneo_gt en 04 de Junio de 2018, 08:08:13
-
hola, es mi primer post en esta pagina, y me gustaria pedir de su ayuda
NECESITO HACER LECTURA DE VARIOS POTENCIOMETROS A LA VEZ PERO PROTEUS ME MANDA MENSAJE DE QUE NO HE DECLARADO COMO ENTRADA ANALOGICA EL PUERTO A
LES COMPARTO MI CODIGO
{...
_______________________________________________________________
#use delay(CLOCK=4MHZ)
#use rs232 (BAUD =9600 , XMIT=PIN_C6 , RCV=PIN_C7, BITS=8, STOP=1, PARITY=N) //RC6->Tx, RC7->Rx, activar rs232
#use standard_io (a,b,c,d)
#byte trisa=0x85
#byte porta=0x05
long int val1,val2,val3,val4;
float voltaje1,voltaje2,voltaje3,voltaje4;
Void main()
{
setup_adc(ADC_CLOCK_INTERNAL); //configuramos el conversor A/D con el reloj interno
setup_adc_ports(AN0_AN1_AN3); //configuramos los pines que serviran como analógico
do
{
set_adc_channel(0); //canal a especificar por la funcion read_adc
delay_us(60);
val1=read_adc(); //almacenamos en la variable val con funcion read_adc
voltaje1=val1*(1); /*realizamos la conversión del valor obtenido, multiplicándolo por el voltaje de referencia que es 4.98 voltios y lo dividimos entre 1024.*/
printf("\nVoltaje 1: %1.2f\r\n",voltaje1);
set_adc_channel(1);
delay_us(60);
val2=read_adc();
voltaje2=val2*(1);
printf("\nVoltaje 2: %1.2f\r\n",voltaje2);
set_adc_channel(2);
delay_us(60);
val3=read_adc();
voltaje3=val3*(1);
printf("\nVoltaje 3: %1.2f\r\n",voltaje3);
}
While(1);
}
___________________________________________________
...}
-
creo que te hace falta #device adc=8 al inicio