TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: aitopes en 26 de Agosto de 2008, 17:58:29
-
Hola amigos!
Tengo un problema, que seguramente tiene una solucion bien tonta, pero por lo pronto me ha tenido parado todo el dia.
En la instruccion setup_adc_ports(); quiero utilizar los conversores analogicos digitales 0,1 y 2 de un PIC 16F877A. Hasta ahora, por casualidad y afortunadamente, solo habia usado los dos primeros, y hacia esto:
setup_adc_ports(RA0_RA1_ANALOG);
y todo iba de maravillas.
Pero setup_adc_ports(RA0_RA1_RA2_ANALOG); no es válido. ¿Que esta pasando?
Gracias por adelantado!
-
Hola aitopes, nose si esto funcionará:
SETUP_ADC_PORTS(AN0_AN1_AN3);
-
Pues mira que si!!!
Al menos, el compilador no se ha quejado. Ahora lo pruebo y veo si las demas E/S del puerto estan como digitales o que.
GRACIAS!!!!!!
-
Pues funciona de maravillas...pero con AN0, AN1 y AN3.
Si hago
SETUP_ADC_PORTS(AN0_AN1_AN2);
es lo mismo que
setup_adc_ports(RA0_RA1_RA2_ANALOG);
El identificador no existe.
Y estoy seguro que el pin 4, es AN2 (ademas de VRef....vendra por ese lado?). Para colmo de males, descubro esto DESPUES de haber construido y armado la placa del proyecto. :(
A seguir buscando.
-
caray amigo, que mala suerte lo de la placa ya hecha con esas definiciones de pines
pero podes ver combinaciones de los pines en el archivo de definiciones del micro, osea en el 16f877a.h de la carpeta devices donde está instalado tu ccs, talvez una de las que este ahí pueda servirte
o podrias hacer otra placa :mrgreen: que si no hay salida no habrá de otra compadre :(
-
Ariel: mira la página 128 del Datasheet del 16F877A y verás las combinaciones posibles de configuración del A/D. No es un problema del CCS sino del PIC que no permite esa configuración en concreto de AN0_AN1_AN2 dejando el resto en digital.
(http://publi.garcia-cuervo.net/ADCON1_16F877_01.jpg)
(http://publi.garcia-cuervo.net/ADCON1_16F877_02.jpg)
-
si, eso merito :mrgreen:
y en la hoja de definiciones del ccs para ese micro (16F877A.H), figuran si no me equivoco todas esas combinaciones posibles
-
Hola amigos!
Lo resolvi inmediatamente despues de la sujerencia de Cryn. En las definiciones de CCS para ese PIC (que deberia haber mirado en primer lugar) no existia lo que yo queria. De ahi al datasheet y analizando bien, descubri lo que dice Diego: no hay conbinaciones de bits posibles para hacer cualquier combinacion de entradas analogicas y digitales. Afortunadamente, el valor 2, que corresponde a la constante AN0_AN1_AN2_AN3_AN4 me viene bien, ya que el pin A4 no lo uso para nada (casualidad pura y dura....el puerto A suelo no usarlo para otra cosa que los conversores A/D), asi que........ya está funcionando!
No pude postear antes por que no lograba entrar en el foro.
Gracias a ambos!!!!!!!!!!!!
-
que bueno que lo hayas conseguido aitopes!
entonces quedó salvada la PCB :-/