TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: aitopes en 26 de Agosto de 2008, 17:58:29

Título: CCS: problemas con setup_adc_ports();
Publicado 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!
Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: Cryn en 26 de Agosto de 2008, 18:17:29
Hola aitopes, nose si esto funcionará:

SETUP_ADC_PORTS(AN0_AN1_AN3);
Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: aitopes en 26 de Agosto de 2008, 18:20:23
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!!!!!!
Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: aitopes en 26 de Agosto de 2008, 18:25:00
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.
Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: Cryn en 26 de Agosto de 2008, 18:28:55
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 :(
Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: RedPic en 26 de Agosto de 2008, 18:43:01
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)

Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: Cryn en 26 de Agosto de 2008, 19:02:17
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
Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: aitopes en 26 de Agosto de 2008, 22:27:24
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!!!!!!!!!!!!

           
Título: Re: CCS: problemas con setup_adc_ports();
Publicado por: Cryn en 27 de Agosto de 2008, 12:27:16
que bueno que lo hayas conseguido aitopes!

entonces quedó salvada la PCB :-/