Autor Tema: Duda respecto a diferentes compiladores  (Leído 9191 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Limbo

  • PIC10
  • *
  • Mensajes: 44
Duda respecto a diferentes compiladores
« en: 17 de Junio de 2013, 16:55:07 »
Buenas,

Llevo exactamente dos dias investigando el tema y no saco nada en claro en cuanto a los lenguajes de programacion en C, me refiero, todos los compiladores usan directivas y funciones diferentes..¿que sentido tiene? Significa que tengo que centrarme en un compilador unicamente? He probado mikroC y me compila perfecto, lo he montado en proto y perfecto, pero luego CCS es absolutamente diferente a mikroC en cuanto a codigo. Ahora mismo estoy probando el XC8 y me da que es diferente a los otros dos, porque no me compila, me da errores por todos lados..

¿Que podeis aconsejarme? ¿Por donde empiezo? Sé programar en C y en asembler..
MikroC lo descarto porque tiene un bug con la { y me sale comentario en la misma linea.

La cuestion es que este año haré en clase programacion en C para pics, y por eso me preocupa aprender algo que no me sirva despues en clase..

Gracias.
Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Duda respecto a diferentes compiladores
« Respuesta #1 en: 17 de Junio de 2013, 17:10:43 »
XC8 es la continuación de PICC y el que ahora soporta Microchip.

Es arriesgado, porque es muy nuevo y no existe todavía mucho soporte para el, pero se parece mucho al PICC y al C18 (antiguo compilador C de microchip)
Cualquiera de estos es un compilador "serio" que te servirá para futuros desarrollos (por ejemplo son los únicos con los que podrás utilizar los sistemas operativos de tiempo real, RTOS, más conocidos). Además tienen versiones Freeware por las que no tienes que pagar.


CCS te sirve para programar rápido porque tiene muchas librerías para empezar con todo ya hecho, pero no es un c tan estandar como el de los anteriores y al parecer tiene bastantes bugs. Además es de pago.


Saludos.

Desconectado gab163

  • PIC16
  • ***
  • Mensajes: 111
Re: Duda respecto a diferentes compiladores
« Respuesta #2 en: 17 de Junio de 2013, 18:20:34 »
Concuerdo con picuino, yo en particular recomendaría xc8 ya que es a donde se encamina microchip además que tiene la versión gratuita, ccs es bueno tambien pero es poco portátil tiene bugs y es de paga, xc8 trabaja con Ansi C ósea se estándar que es mas portable, además xc8 es mas profesional. Mi opinión.
Saludos

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 209
Re: Duda respecto a diferentes compiladores
« Respuesta #3 en: 17 de Junio de 2013, 18:33:50 »
Hola Limbo, mira, tambien anduve en la mísma situación que Vos, me decidi por el CCS, por que al principio era el único que me funcionaba, hoy no lo cambio...
Hay un dato importante de este compilador, es que te abstrae del hardware, y con ello sacas muy rápido tus proyectos, no tenés que conocer tan finamente al micro que programas y sus "modulos". Efectivamente como te indicaron trae una cantidad de librerias y programas de ejemplos, acorta increiblemente los tiempos de aprendizaje y desarrollo de los proyectos, es como un "arduino".

Los demás compiladores, intentan ser compiladores apegandose a un estandard, con esto logras portabilidad, pero en su afan de esta "portabilidad", debes empezar a conocer de cerca el hardware que estas programando.

Si Vos conoces Assembler, es fácil de entender lo que te decimos, personalmente con el CCS, me pongo loco por no tener el control de las interrupciones por ejemplo. Pero en desarrollos simples, sale airoso, sin transmitirte dudas.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda respecto a diferentes compiladores
« Respuesta #4 en: 17 de Junio de 2013, 18:59:37 »
XC8 es la continuación de PICC y el que ahora soporta Microchip.

Es arriesgado, porque es muy nuevo y no existe todavía mucho soporte para el, pero se parece mucho al PICC y al C18 (antiguo compilador C de microchip)
Cualquiera de estos es un compilador "serio" que te servirá para futuros desarrollos (por ejemplo son los únicos con los que podrás utilizar los sistemas operativos de tiempo real, RTOS, más conocidos). Además tienen versiones Freeware por las que no tienes que pagar.


CCS te sirve para programar rápido porque tiene muchas librerías para empezar con todo ya hecho, pero no es un c tan estandar como el de los anteriores y al parecer tiene bastantes bugs. Además es de pago.


Saludos.

El XC8 es identico al C18 solo que con otro nombre (y algunas otras modificaciones nuevas que le habran puesto), lo mismo ocurre con todos los compiladores de microchip c30 = xc16, c32=xc32... ambos son copias identicas solo que le habran puesto las mejoras que le hubiesen puesto a los viejos compiladores si no les hubiesen "cambiado el nombre". Todo esto lo digo porque cuando salieron las nuevas versiones compile y el codigo era exactamente identico.

Sobre la cuestion del creador del tema:
-Yo empece con CCS pero no me gusto mucho, como dices no tiene nada que ver con el resto, ademas, tampoco controlas mucha parte del codigo ya que la mayoria lo hace por funciones.
-Luego me pase a mikroC y me gusto bastante mas, sin embargo necesitaba algo mas, soy de los que le gusta controlar todo la parte del codigo asi que me pase a los compiladores de microchip, aparte que puedes complicar cualquier pic por muy nuevo que sea de cualquier familia, sin embargo en los demas compiladores tendrias que esperar a que saliese la nueva version para poder usar los pics nuevos que hayan salido, incluso ni eso.
-XC8, XC16, XC32: sin duda, lo mejor que he probado para los pics, es un poco complejo al principio, pero una vez te acostumbras es muy sencillo y tienes el 100% del control del codigo, sin bugs ni nada.

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 209
Re: Duda respecto a diferentes compiladores
« Respuesta #5 en: 17 de Junio de 2013, 19:19:01 »
tendría que haberme cruzado con esta página hace un par de meses....
http://www.cursomicros.com/pic/programacion-de-microcontroladores-pic.html

Desconectado Limbo

  • PIC10
  • *
  • Mensajes: 44
Re: Duda respecto a diferentes compiladores
« Respuesta #6 en: 17 de Junio de 2013, 23:25:23 »
Primero que todo, gracias por las contestaciones.
Bueno, por lo que leo, el control total lo tienes con los compiladores de microchip (Me gusta no dejar cabos sueltos), ahora bien, el C18 solo puedes programar serie 18 o puedes programar tambien 12 y 16?
Estoy trabajando con el 16F886 y el año que viene seguiremos trabajando con ese, si no vale el C18, ¿Cual uso? ¿Hi tech?

Estoy como una lechuga en un matadero, perdido totalmente.. :D Aunque avanzo poco a poco.. a ver si saco algo en claro..

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda respecto a diferentes compiladores
« Respuesta #7 en: 18 de Junio de 2013, 06:53:06 »
Primero que todo, gracias por las contestaciones.
Bueno, por lo que leo, el control total lo tienes con los compiladores de microchip (Me gusta no dejar cabos sueltos), ahora bien, el C18 solo puedes programar serie 18 o puedes programar tambien 12 y 16?
Estoy trabajando con el 16F886 y el año que viene seguiremos trabajando con ese, si no vale el C18, ¿Cual uso? ¿Hi tech?

Estoy como una lechuga en un matadero, perdido totalmente.. :D Aunque avanzo poco a poco.. a ver si saco algo en claro..

El C18 ya digamos que se quedo "obsoleto" ahora se utiliza el XC8, con este podras usar cualquier pic de la familia de 8bits (10f,12f,16f,18f....), anteriormente el C18 era solo para pic18 para lo demas se usaba hitech

Desconectado Limbo

  • PIC10
  • *
  • Mensajes: 44
Re: Duda respecto a diferentes compiladores
« Respuesta #8 en: 18 de Junio de 2013, 11:02:55 »
Lei mas arriba que XC8y C18 son practicamente iguales, entonces ¿Puedo usar un manual de C18 para XC8?

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda respecto a diferentes compiladores
« Respuesta #9 en: 18 de Junio de 2013, 12:18:18 »
Si, pero porque no mejor usar un manual de XC8??  :lol:

http://ww1.microchip.com/downloads/en/DeviceDoc/52053B.pdf

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Duda respecto a diferentes compiladores
« Respuesta #10 en: 18 de Junio de 2013, 13:17:56 »
Primero que todo, gracias por las contestaciones.
Bueno, por lo que leo, el control total lo tienes con los compiladores de microchip (Me gusta no dejar cabos sueltos), ahora bien, el C18 solo puedes programar serie 18 o puedes programar tambien 12 y 16?
Estoy trabajando con el 16F886 y el año que viene seguiremos trabajando con ese, si no vale el C18, ¿Cual uso? ¿Hi tech?

Estoy como una lechuga en un matadero, perdido totalmente.. :D Aunque avanzo poco a poco.. a ver si saco algo en claro..


Ten en cuenta que para PIC pequeños, como los PIC16 y series menores, se programa siempre en ensamblador, por cuestión de espacio, además el XC8 gratuito no activa la optimización, con lo que el tamaño del objeto puede llegar a ser el doble del que tendría optimizado. Te vas a dar de bruces si tratas de programar en C  los PIC16, salvo que lo quieras para hacer cuatro chuminadas caseras, como encender un LED y similares.

O te pasas a PIC18, o compras la versión profesional de XC8 para programar los PIC16, y aún así, yo no lo haría, la diferencia de tamaño del objeto programando la misma aplicación en ensamblador o en C, es considerable, eso se puede obviar cuando trabajas con 128K o más de flash, pero esos tamaños de flash no los vas a encontrar en un pic16. De hecho la serie de compiladores de Microchip, C18, C30 y C32, no contemplaba los PIC16 e inferiores, por algo sería.

Con PIC18, también podrías bajarte una versión full del C18, de emule, y trabajar con la optimización activada, o compras el XC8 que es barato, por 495 dólares lo tienes en MicrochipDirect. Desgraciadamente los que trabajamos con PIC32, lo tenemos más crudo, el XC32 cuesta nada menos que 1445 dólares, yo sigo con C32 que también se puede usar desde MPLAB-X y tan feliz.




Desconectado Limbo

  • PIC10
  • *
  • Mensajes: 44
Re: Duda respecto a diferentes compiladores
« Respuesta #11 en: 18 de Junio de 2013, 14:04:48 »
La idea de pasarme ha programar en C viene porque en ensamblador controlar LCD es mas complicado, y con mikroC lo hice en un momento..

Os explico, estoy haciendo un superior de electronica y en este curso hemos programado ensamblador usando el pic16f886, al acabar el curso nos dijeron que en segundo año se haria programacion en C para los pics, y queria adelantar un poco materia a la vez que sacio la ansiedad  :-/ :-/ No sé ni que pic usaremos, ni que compilador... Deduje que usariamos el pic16f886 porque es el que hemos estado usando hasta ahora e ensamblador.. por eso estoy con los 16F, no por nada mas..

De momento quiero aprender a programar pics en C, hacer ejercicios y eso, sobretodo para contorlar una LCD y con XC8 puedo trabajar con pics de 8bits, asi que me servira si subo a la serie 18..
La idea era aprender C para programar pics de manera generica, pero esto es un desastre de estandarizacion, hay mil y un compiladores..

Sigo sin aclararme  :oops: :? Pero creo que continuaré con xc8, aunque tengo en cuenta lo de la memoria... para lo que quiero hacer, que son programas de aprendizaje me vendra bien, creo...

Merlinz me refiero a un tutorial de aprendizaje de C18 usarlo con XC8
« Última modificación: 18 de Junio de 2013, 14:09:28 por Limbo »

Desconectado gab163

  • PIC16
  • ***
  • Mensajes: 111
Re: Duda respecto a diferentes compiladores
« Respuesta #12 en: 18 de Junio de 2013, 15:29:36 »
Por aquí en el foro busca mini curso xc8 no te pongo el link porque estoy desde un móvil pero ahí están poniendo varios ejemplitos con xc8

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Duda respecto a diferentes compiladores
« Respuesta #13 en: 18 de Junio de 2013, 16:07:35 »
Programar en asm para ahorrar espacio de programa sólo merece la pena si vas a ahorrarte mucho dinero en los pic (por ejemplo si vas a programar cientos de micros iguales) porque el trabajo extra que lleva programar en asm no compensa un ahorro de uno o dos euros que cuesta un microcontrolador mayor.

También para ciertas rutinas muy específicas, puede ser útil programar en asm para que sean más rápidas o que tengan mayor control sobre el micro. Son raras excepciones y se pueden combinar sin problemas con C.

En el resto de ocasiones, el C sin dudas es la mejor opción.

El compilador gratuíto que mejor optimiza, de todos los que conozco para PIC16, es el CC5X: http://www.bknd.com/cc5x

No es ANSI C, pero eso es en ocasiones una ventaja. Por ejemplo las funciones no son reentrantes, utilizan variables estáticas y eso hace que sean muy rápidas y se ejecuten con poco código. No necesitan el manejo de pila que utilizan otros compiladores y que aumentan el tamaño de programa y ralentizan el programa.

En cuanto a la optimización de la RAM, sin duda el C vuelve a ser la mejor opción.

Saludos.
« Última modificación: 18 de Junio de 2013, 16:09:48 por Picuino »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Duda respecto a diferentes compiladores
« Respuesta #14 en: 18 de Junio de 2013, 17:29:55 »
La idea de pasarme ha programar en C viene porque en ensamblador controlar LCD es mas complicado, y con mikroC lo hice en un momento..
Os explico, estoy haciendo un superior de electronica y en este curso hemos programado ensamblador usando el pic16f886, al acabar el curso nos dijeron que en segundo año se haria programacion en C para los pics, y queria adelantar un poco materia a la vez que sacio la ansiedad  :-/ :-/ No sé ni que pic usaremos, ni que compilador... Deduje que usariamos el pic16f886 porque es el que hemos estado usando hasta ahora e ensamblador.. por eso estoy con los 16F, no por nada mas..

Las series pequeñas se suelen trabajar en ensamblador, por cuestiones de espacio, en 1K, 2K, 4k  poco vas a poder meter si te pones a programar en C, y encima con la versión gratuita de XC8 que no optimiza el objeto. Lo lógico será que si empezais a programar en C, os pongan al menos los PIC18, ya lo verás.


Citar
De momento quiero aprender a programar pics en C, hacer ejercicios y eso, sobretodo para contorlar una LCD y con XC8 puedo trabajar con pics de 8bits, asi que me servira si subo a la serie 18..

Para hacer prácticas sencillas, te vale la versión gratuita.


Citar
La idea era aprender C para programar pics de manera generica, pero esto es un desastre de estandarizacion, hay mil y un compiladores..

No hay tantos, los de Microchip, el de Mikroelektronika y el CCS.
Si lees el foro, verás que la gente que trabaja con CCS, se queja de la cantidad de bugs que tiene ese compilador.

Los productos de Mikrolektronika, yo los distribuí en España hace unos años (en 2004-2005 creo recordar), las placas entrenadoras, las vendía bastante a escuelas de Formación Profesional, de los compiladores vendí algunos de C y Pascal, en general son buenos productos, pero yo prefiero los originales de Microchip. La mayoría de la web de Mikroelektronika en español, se las traduje yo, hasta ese momento lo tenían todo en inglés y no tenían distruidor en España (y ahora siguen sin tenerlo desde que yo dejé la distribución).


Citar
Sigo sin aclararme  :oops: :? Pero creo que continuaré con xc8, aunque tengo en cuenta lo de la memoria... para lo que quiero hacer, que son programas de aprendizaje me vendra bien, creo...

Pues no es tan dificil, para la serie pequeña hasta PIC16, usa XC8, siempre y cuando sea para cosas sencillas, o compra la versión profesional para optimizar el tamaño del objeto, se reduce casi a la mitad con la optimización al máximo nivel, tienes un nivel superior de optimización que aumenta algo el tamaño pero mejora el rendimiento.

Para PIC18, puedes trabajar con C18, tienes versiones full en Emule, con las que puedes activar la optimización.
Para PIC24 y PIC32, los compiladores XC son muy caros, prefiero usar C30 y C32, usar el XC gratuito para estas series es absurdo, salen unos objetos enormes en comparación a la compilación optimizada.