Que lenguaje usar para programar Microcontroladores PIC


Es la primera pregunta que debemos contestarnos al querer programar un microcontrolador, frente a esta pregunta eres tu el que debe decidir el lenguaje de programación, en esta entrada expongo el porque he elegido hacerlo en CCS.
 ASSEMBLER
 En mi opinión este es el mejor lenguaje para comenzar a programar, esto si queremos saber exactamente que estamos haciendo con el microcontrolador.
Mi recomendación es comenzar con lenguaje ensamblador aprender a utilizar los puertos a configurar registros etc, todo lo básico. Y luego pasarse a un lenguaje de alto nivel como CCS o C18. Esto es opcional si quieres comenzar directamente con CCS puedes hacerlo.

Ventajas

 - Precisión: Controla totalmente la operación del microcontrolador y permite al programador precisión en las operaciones.
- Herramienta educacional: permite conocer a detalle la arquitectura interna del microcontrolador, el set de instrucciones, los registros y su funcionamiento interno.
- Tamaño: los compiladores  generan más código máquina del necesario; por ello, el programa ejecutable crece. Por lo tanto cuando es importante reducir el tamaño del ejecutable, optimizando el uso de la memoria y teniendo también beneficios en velocidad, puede convenir usar el lenguaje Ensamblador.

Al ser un lenguaje más primitivo, el Ensamblador tiene ciertas desventajas:

- Códigos mas complejos desde el punto de vista del programador: en assembler debemos declarar correctamente todo lo que usaremos a diferencia de los lenguajes basados en C, esto hace que veamos nuestro código mas extenso y complejo.
- Tiempo programando: Para aplicaciones complejas no recomendaría asembler ya que se debe  invertir una cantidad de tiempo muchísimo mayor que con otros lenguajes.
- Falta de potabilidad:  debido a que depende de la estructura interna del microcontrolador, el código de un microcontrolador no puede correr en otro de diferente arquitectura.

Ejemplo de código assembler
PROCESSOR 16f886            ;seleccionamos que microcontrolador usaremos
#INCLUDE <16f886.inc>       ;carga librería del microcontrolador

     ORG 0x00               ;origen de programa            

     bsf STATUS,RP0         ;acceso al banco 1 de la memoria
     movlw b'0001111'
     movwf TRISA            ;configura el puertoA como entrada
     clrf TRISB             ;configura el puertoB como salida
     bcf STATUS,RP0         ;RP0 a 0 para acceder al banco 0

inicio
    movf PORTA,W            ;mueve el contenido del PuertoA a W
    movwf PORTB             ;mueve el dato de W al puertoB
    goto inicio             ;salta a inicio y entra en un bucle
    END                     ;fin del código

EL LENGUAJE C
Ventajas:

 - Facilidad de uso: Los programas en C son más fáciles de mantener (revisar, modificar, ampliar).
Existen muchísimas librerías libremente disponibles para el uso de cualquier programador, lo cual facilita el desarrollo de una aplicación.
- Potabilidad: Generalmente un programa escrito para un tipo de microcontrolador puede correr con mínimas modificaciones en otro microcontrolador de diferente arquitectura.

- Eficiencia: Es más rápido y eficiente que otros lenguajes de alto nivel usados también para programar microcontroladores  y su uso está altamente difundido en aplicaciones profesionales. Con compiladores modernos puede llegar a ser tan rápido como el ensamblador dependiendo de la habilidad y los recursos del programador.


Desventajas: 
- El código escrito en C ocupa más memoria que el escrito en ensamblador. 
 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.
- Control:Con este lenguaje no se puede controlar del todo los tiempos y los registros bit a bit.

 

Compilador CCS PCW HD

 Este es un compilador de punto flotante que puede integrarse al ambiente MPLAB IDE de Microchip.

  Un dato importante de este compilador, es que abstrae del hardware, y con ello sacas muy rápido tus proyectos, no tienes que conocer tan finamente al microcontrolador  que programas y sus "modulos", ademas trae una cantidad de librerías y programas de ejemplos,esto acorta increíblemente los tiempos de aprendizaje y desarrollo de los proyectos.

A continuación veremos algunas características que presenta el compilador PCW CCS y que hacen de él una buena opción para elegirlo como compilador de C para programar Microcontroladores PIC
  1. Al compilar genera un código máquina muy compacto y eficiente.
  2. Se integra perfectamente con MPLAB y otros simuladores/emuladores como PROTEUS para el proceso de depuración.
  3. Incluye una biblioteca muy completa de funciones precompiladas para el acceso al hardware de los dispositivos (entrada/salida, temporizaciones, conversor A/D, transmisión RS-232,bus I2C….,etc.
  4. Tiene numerosas librerías ya integradas al compilador para dispositivos externos, tales como pantallas LCD, teclados numéricos, memorias EEPROM, conversores A/D, relojes en tiempo real, etc.
  5. Permite insertar partes de código directamente en Ensamblador, manteniendo otras partes del programa en C.

1 comentario: