Mi punto de vista:
1- Personalmente, el C lo emplearía para proyectos demasiado grande, largo y PIC que contenga mucha RAM y Flash. El ASM para proyectos pequeños y PIC muy pero que muy pequeño que nunca se podría usar en C porque te genera el código más grande que directamente en asm.
2- Me gusta mucho el ASM, aunque en un principio lo veía y aún veo complicado, de fácil no tiene nada sobre si trabajas en proyectos grandes.
3- Hoy en día, elegir un lenguaje más bien las personas lo hacen por gustos que por necesidades. En mi caso porque tengo sólo un libro que te enseña sólo ASM y es bueno saber ASM para programar cualquier PIC hasta los PIC32.
Lenguaje C:
Ventajas:
* Es un lenguaje de alto nivel mas cercano a la máquina.
* Puedes construir rutinas matemáticas fácilmente.
* Puede ser de ayuda al combinarlo con Ensamblador sobre todo en la gama alta.
* Se pueden crear macros con este lenguaje, para después simplificar el código en diferentes desarrollos.
* Es aceptado por la empresa fabricante Microchip, incluso ellos tienen algunos compiladores C.
Desventajas:
* Los programas al compilarlos pueden resultar un poco extensos y pesados por ello debe tenerse en cuenta la capacidad de memoria de programa del PIC a utilizar.
* Con este lenguaje tampoco se puede controlar del todo los tiempos y los registros bit a bit.
Para este lenguaje existen también varias casas que producen software y compiladores para este lenguaje entre ellas las más importantes son:
www.microchip.com con sus compiladores C18 para la gama alta y C30 para los dsPIC, ambos Como otras herramientas de esta marca, se puede incluir en el entorno gratuito MPLAB IDE, y permite a los desarrolladores, llevar a cabo su aplicación en un lenguaje de alto nivel.. No son del todo gratuitos.
www.ccsinformación.com Sus herramienta más conocidas, son la serie de compiladores para las distintas familias de microcontroladores Microchip PIC® MCU: PCW IDE, PCWH IDE y PCWHD IDE. Ofrecen la posibilidad de que el usuario pueda elegir el compilador concreto para la familia que va a utilizar, y compilar en modo linea de comandos, tanto para Microsoft Windows, como para Linux. Para los usuarios de Microsoft Windows, también existe la posibilidad de utilizar su potente entorno de desarrollo PCWHD IDE, que incluye además de los compiladores para todas las familias de PICs y dsPICs, entre otras cosas, un editor de código con reconocimiento de comandos, un depurador ICD, y un Wizard que en base a lo que el usuario le indique, generará la mayor parte del código para inicializar el microcontrolador. Además incluyen una gran cantidad de librerías muy útiles para asociar con la rutina que estamos desarrollando. Este compilador también puede integrarse con MPLAB IDE. No es gratuito.
www.htsoft.com (HI-TECH) Sus herramientas más conocidas son PICC y PICC18. No son gratuitos.
Ejemplo: rutina que hace parpadear un led en el pin cero del puerto B cada 200 milisegundos en lenguaje C empleando el software de CCS PCW IDE:
Lenguaje Ensamblador:
Ventajas:
* Es el lenguaje de bajo nivel natural de la línea PIC tanto para gama baja, media o alta.
* Con el se tiene un aprovechamiento eficiente de los recursos del PIC.
* Se pueden crear macros con este lenguaje, para después simplificar el código en diferentes desarrollos.
* Con el se pueden controlar los tiempos y los registros bit a bit.
* Excelente para manejar interrupciones simultáneas.
* Cuando se genera el archivo .hex éste es completamente optimizado.
Desventajas:
* Tiempo en desarrollo de un proyecto.
* Los programas hecho de un PIC específicos no te funcionan a otro PIC o a otro microcontroladores como AVR, Motorola, Z80, PIC32. Hay casos que entre PIC se puede con ligera modificación.
* Difícil detectar fallos si es muy grande el proyecto, también se complica la organización de bloques de códigos en algunos casos.
El compilador para este lenguaje es el MPLAB IDE el cual se consigue totalmente gratuito en la página de Microchip y constantemente están sacando nuevas versiones, debe aclararse que este solo funciona bajo ambiente Windows. Para Linux existe un versión alternativa llamada: Piklab la cual presenta simuladores, editores, ensambladores y soporta una gran cantidad de compiladores C para PIC.
Ejemplo: rutina que hace parpadear un led en el pin cero del puerto B cada 200 milisegundos en lenguaje Ensamblador empleando el software de Microchip MPLAB IDE:
CONCLUSIONES:
Después de haber analizado los diferentes aspectos que envuelven la programación de PICs en cuanto a los lenguajes,para trabajos profesionales se aconseja lo siguiente:
* Lo ideal es manejar el lenguaje ensamblador para los rangos de gama baja, media y alta por versatilidad y mejor aprovechamiento de recursos del PIC.
* Si usted va a comenzar con la programación de PICs debería primero dominar el lenguaje Ensamblador, no le aconsejaría el lenguaje BASIC. Una vez haya dominado el lenguaje Ensamblador para gama baja y media puede iniciarse con el lenguaje C.
* El Lenguaje C es un lenguaje de alto nivel y puede resultar útil combinándolo con el lenguaje Ensamblador ya que nos puede ahorrar tiempo de programación, depuración y simulación sobre todo en la gama alta y en los dsPIC.
* Puede emplear el Lenguaje C o el Ensamblador para crear macros que le simplifiquen desarrollos futuros.
1- Personalmente, el C lo emplearía para proyectos demasiado grande, largo y PIC que contenga mucha RAM y Flash. El ASM para proyectos pequeños y PIC muy pero que muy pequeño que nunca se podría usar en C porque te genera el código más grande que directamente en asm.
2- Me gusta mucho el ASM, aunque en un principio lo veía y aún veo complicado, de fácil no tiene nada sobre si trabajas en proyectos grandes.
3- Hoy en día, elegir un lenguaje más bien las personas lo hacen por gustos que por necesidades. En mi caso porque tengo sólo un libro que te enseña sólo ASM y es bueno saber ASM para programar cualquier PIC hasta los PIC32.
Lenguaje C:
Ventajas:
* Es un lenguaje de alto nivel mas cercano a la máquina.
* Puedes construir rutinas matemáticas fácilmente.
* Puede ser de ayuda al combinarlo con Ensamblador sobre todo en la gama alta.
* Se pueden crear macros con este lenguaje, para después simplificar el código en diferentes desarrollos.
* Es aceptado por la empresa fabricante Microchip, incluso ellos tienen algunos compiladores C.
Desventajas:
* Los programas al compilarlos pueden resultar un poco extensos y pesados por ello debe tenerse en cuenta la capacidad de memoria de programa del PIC a utilizar.
* Con este lenguaje tampoco se puede controlar del todo los tiempos y los registros bit a bit.
Para este lenguaje existen también varias casas que producen software y compiladores para este lenguaje entre ellas las más importantes son:
www.microchip.com con sus compiladores C18 para la gama alta y C30 para los dsPIC, ambos Como otras herramientas de esta marca, se puede incluir en el entorno gratuito MPLAB IDE, y permite a los desarrolladores, llevar a cabo su aplicación en un lenguaje de alto nivel.. No son del todo gratuitos.
www.ccsinformación.com Sus herramienta más conocidas, son la serie de compiladores para las distintas familias de microcontroladores Microchip PIC® MCU: PCW IDE, PCWH IDE y PCWHD IDE. Ofrecen la posibilidad de que el usuario pueda elegir el compilador concreto para la familia que va a utilizar, y compilar en modo linea de comandos, tanto para Microsoft Windows, como para Linux. Para los usuarios de Microsoft Windows, también existe la posibilidad de utilizar su potente entorno de desarrollo PCWHD IDE, que incluye además de los compiladores para todas las familias de PICs y dsPICs, entre otras cosas, un editor de código con reconocimiento de comandos, un depurador ICD, y un Wizard que en base a lo que el usuario le indique, generará la mayor parte del código para inicializar el microcontrolador. Además incluyen una gran cantidad de librerías muy útiles para asociar con la rutina que estamos desarrollando. Este compilador también puede integrarse con MPLAB IDE. No es gratuito.
www.htsoft.com (HI-TECH) Sus herramientas más conocidas son PICC y PICC18. No son gratuitos.
Ejemplo: rutina que hace parpadear un led en el pin cero del puerto B cada 200 milisegundos en lenguaje C empleando el software de CCS PCW IDE:
Lenguaje Ensamblador:
Ventajas:
* Es el lenguaje de bajo nivel natural de la línea PIC tanto para gama baja, media o alta.
* Con el se tiene un aprovechamiento eficiente de los recursos del PIC.
* Se pueden crear macros con este lenguaje, para después simplificar el código en diferentes desarrollos.
* Con el se pueden controlar los tiempos y los registros bit a bit.
* Excelente para manejar interrupciones simultáneas.
* Cuando se genera el archivo .hex éste es completamente optimizado.
Desventajas:
* Tiempo en desarrollo de un proyecto.
* Los programas hecho de un PIC específicos no te funcionan a otro PIC o a otro microcontroladores como AVR, Motorola, Z80, PIC32. Hay casos que entre PIC se puede con ligera modificación.
* Difícil detectar fallos si es muy grande el proyecto, también se complica la organización de bloques de códigos en algunos casos.
El compilador para este lenguaje es el MPLAB IDE el cual se consigue totalmente gratuito en la página de Microchip y constantemente están sacando nuevas versiones, debe aclararse que este solo funciona bajo ambiente Windows. Para Linux existe un versión alternativa llamada: Piklab la cual presenta simuladores, editores, ensambladores y soporta una gran cantidad de compiladores C para PIC.
Ejemplo: rutina que hace parpadear un led en el pin cero del puerto B cada 200 milisegundos en lenguaje Ensamblador empleando el software de Microchip MPLAB IDE:
CONCLUSIONES:
Después de haber analizado los diferentes aspectos que envuelven la programación de PICs en cuanto a los lenguajes,para trabajos profesionales se aconseja lo siguiente:
* Lo ideal es manejar el lenguaje ensamblador para los rangos de gama baja, media y alta por versatilidad y mejor aprovechamiento de recursos del PIC.
* Si usted va a comenzar con la programación de PICs debería primero dominar el lenguaje Ensamblador, no le aconsejaría el lenguaje BASIC. Una vez haya dominado el lenguaje Ensamblador para gama baja y media puede iniciarse con el lenguaje C.
* El Lenguaje C es un lenguaje de alto nivel y puede resultar útil combinándolo con el lenguaje Ensamblador ya que nos puede ahorrar tiempo de programación, depuración y simulación sobre todo en la gama alta y en los dsPIC.
* Puede emplear el Lenguaje C o el Ensamblador para crear macros que le simplifiquen desarrollos futuros.