TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: falflores en 09 de Marzo de 2011, 16:08:29

Título: C18???, CCS???, que hay de diferente?
Publicado por: falflores en 09 de Marzo de 2011, 16:08:29
Hola amigos de todopic, tengo una consulta que hacerles:

Yo uso el CCS para programar, lo hago por medio de un plugin que me permite programar desde MPlab, este lenguaje soporta los PICs 12,16,18,24,32 y DSPICs, por lo que no he tenido problemas con algun PIC.

Hace algún tiempo me entere de un lenguaje llamado C18, el cuál es muy parecido a la sintaxis del CCS, me llama la atención, pero la verdad no logro comprender las diferencias entre el CCS de toda la vida y el C18, alguien me podría decir cuales son?, ya que algunas personas dicen que el C18 es más potente.

Me conviene aprender este lenguaje?, es que todo lo que me he propuesto lo he logrado por medio del CCS, pero si el C18 optimiza más el código o tiene más control sobre el PIC, no dudaría en cambiarme.

otra pregunta...Puedo tener tanto el CCS como el C18 al mismo tiempo en MPLAB y escoger uno u otro cuando la ocasión lo amerite?, así tengo el CCS y el ASM dentro del MPLAB.

Muchas gracias por su tiempo.
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: LABmouse en 09 de Marzo de 2011, 16:24:06
te respondiste con la diferencia.

Citar
C18 optimiza más el código o tiene más control sobre el PIC
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: bigluis en 09 de Marzo de 2011, 18:09:17
Tengo entendido que C18 es un poco más complicado que CCS, ya que este ultimo te permite utilizar funciones para manejar los perifericos bastantes simples, por ejemplo si quieres configurar el ADC CCS trae una funcion que se llama Setup_ADC() y luego ingresas todos los parametros del ADC, mientras que en C18 debes modificar los registros uno por uno para lograr configurar el ADC a como desees.

te respondiste con la diferencia.

Citar
C18 optimiza más el código o tiene más control sobre el PIC

De eso yo no estoy muy seguro, ya que una vez realice un código en el que realizaba la multiplicación por 4 de un número, la forma más eficiente de hacer esto es desplazando el número 2 veces, cosa que CCS entendió a la perfección sin necesidad de haberle indicado que lo realizara, mientras que en C18 era necesario indicarle el desplazamiento para que realizara la multiplicación por 4.

Es muy probable que C18 sea un poco más eficiente porque fue hecho por los mismos fabricantes de los PIC, pero tambien existe otra desventaja y es que C18 solo funciona para PIC18 segun entiendo mientras que CCS funciona para los PIC que ya mencionaste.

:? al final siempre es necesario saber utilizar mas de un Compilador y mas de un tipo de Microcontrolador, como dice en uno de estos foros "No solo de PIC vive el Hombre"
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: bmb en 09 de Marzo de 2011, 20:32:30
te respondiste con la diferencia.

Citar
C18 optimiza más el código o tiene más control sobre el PIC

Hola, de acuerdo con LABmouse en ese punto, pero también estoy de acuerdo con bigluis. Es cierto que C18 optimiza más el código y es un compilador bastante 'ANSI', pero para el usuario común, el CCS es bastante cómodo de usar por la cantidad de instrucciones propias que lo hacen ser un poco más de 'alto nivel', mientras que en el C18 debes utilizar directamente los registros haciendo su uso algo 'parecido' al assembler obviamente exceptuando por la sintaxis de cada uno.  De hecho y si lo quieres, puedes declarar los registros en CCS y utilizarlo de manera muy parecida al C18.

Saludos!
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: Suky en 09 de Marzo de 2011, 21:50:33
C18-> ANSI C  :mrgreen: Con eso creo que digo todo  :D Librerías de código abierto, versión estudiantil, ect . Aaa! y lo mejor de todo es que fuerza al programador a usar el bocho  :D

CCS -> 10000000000 versiones diferentes, con parches para solucionar un bug que generan otros bugs  :D

Estoy de acuerdo con bigluis, no se fijen es un solo compilador, sino varios pero que sean ANSI C  :)


Saludos!
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: Nocturno en 10 de Marzo de 2011, 02:15:19
Si lo que buscas es aprender rápido e incrementar la productividad, entendiéndola como obtener grandes resultados en el menor tiempo posible: CCS.

Si quieres compatibilidad a toda costa, aunque se incremente la dificultad: C18.

A pesar de que en su historia CCS ha demostrado tener muchos bugs, también es verdad que las últimas versiones vienen bastante depuradas y a mi modo de ver tienen más ventajas que inconvenientes. ¡Ojo!, siempre que no pongas en la balanza el tema de la compatibilidad, que a mí personalmente me da lo mismo.
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: falflores en 10 de Marzo de 2011, 02:24:24
Gracias a todos por sus respuestas muchachos, otra cosa, saben si hay un equivalente de C18, pero para la familia 16?
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: ASTROCAR en 10 de Marzo de 2011, 06:42:28
hola buenos dias, leyendo la opinion de cada uno, en si cada quien tiene su grado de verdad y es asi como lo exponen; cada diseñador tiene que ajustarse a sus necesidades y algo importante a sus conocimientos claro esta que el deseo de avnzar es bueno y tiene que ser asi pero en momento importa rapides seguriidad y lograr el objetivo asi que la diferencia de cada compilador la pone es el diseñar a mi modo de ver las cosas pero de que se puede lograr los objetivos con ambos compiladores se puede ahora en cuando a la optimizacion de c18 es un buen punto a favor y muy malo lo de los bugs para ccs pero son detalles de compiladores que a futuro se resuelve solo hay que dar opiniones para seguri adelante.

Ahora en cuanto a  familia 16 no he visto nada solo c18, c30 y c32.

Saludos.
Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: AngelGris en 10 de Marzo de 2011, 09:44:59
  También existe el compilador HiTech, que para los 12 y 16 es libre en su versión lite y para la familia 18 hay un período de prueba, aunque a mi se me pasó dicho tiempo y sigo compilando sin problemas.
  Creo que con este compilador sería muy fácil migrar de un pic16 a un pic18. Pongo un ejemplo más que sencillo, pero que se puede compilar para ambas familias sin problema. Por supuesto hay que tener en cuenta que puede haber diferencias en la configuración de los periféricos del PIC y que obviamente las habrá en cuanto a los bits de configuración de cada PIC

Código: C
  1. #include <htc.h>
  2.  
  3. #define _XTAL_FREQ  10000000  //cristal 10MHz, esto es para poder usar las rutinas de delay
  4.  
  5. void main(void)
  6. {
  7.   TRISAB = 0; //todo el puerto b como salida
  8.   PORTB = 1;
  9.   while (1)
  10.   {
  11.     if (RB7 == 0) PORTB = PORTB << 1;
  12.     else
  13.       PORTB = 1;
  14.     __delay_ms (50);
  15.   }
  16. }
Título: Re: C18???, CCS???, que hay de diferente?
Publicado por: marvicdigital en 24 de Julio de 2011, 23:16:59
Aprovecho este hilo para hacer una pregunta, el compilador C18 para el MPLAB tiene alguna lisencia de caducidad, o limitaciones, y cuales son? o es libre?
Aclaro que uso el MAPLAB X en Linux, y no vi nada de caducidad de 60 días o algo por el estilo

Gracias y saludos