Beruflich Dokumente
Kultur Dokumente
Nosotros iniciaremos esta primera experiencia enciendo y apagando un LED, nuestro equivalente al
Hola Mundo! de la programación clásica.
Usaremos para esto el compilador C18 y el entorno de programación (IDE) será MPLAB ambos se
descargan de manera libre desde el sitio de Microchip.
Se trata de un lenguaje denominado de medio nivel, pero con muchas características de bajo nivel.
Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de
construcciones del lenguaje que permiten un control a muy bajo nivel, C ha sido siempre por
excelencia el lenguaje para el Hardware con el podemos hacer las mismas cosas que en assembler
pero de manera menos confusa y con un código mas portable ya que cuando escribimos en C no
necesitamos conocer los códigos del assembler del micro que estamos usando esto implica que en
un momento resulta rentable por los costos del micro programar Microchip pero mas adelante puede
servir programar cualquier otro micro que tenga un compilador que siga los lineamientos del ANSI
C, solo cambiando los encabezados del programa (definiciones de registros y características propias
del hardware del micro) podemos portarlo a otras plataformas sin necesidad de conocer el assembler
de este nuevo micro.
En el caso del C para PIC´s ha sido siempre un tema de discusión, como un mantra que se repite
una y otra vez escuchamos que los PIC no son aptos para ser programados en C, escuchamos
muchas veces que lo mejor que existe para micros en general es assembler, y si, hace diez años eso
era verdad!!!!
Por ejemplo la serie 16xx de PIC no es adecuada para ser programada en C, su CPU no está
optimizada para eso y unas pocas líneas de código agotará su memoria sin embargo a partir de la
serie 18 de PIC´s lo primero que leemos en su manual es:
C Compiler Optimized Architecture, Optional extended instruction set designed to optimize re-entrant code.
Su CPU está preparada para ser programada en C y es una opción programarlos en assembler (lo
1
cual me lleva a pensar como seria programar una aplicación TCP/IP en assembler, o una aplicación
USB, o la simple acción de tomar cincuenta muestras en un canal analógico y promediarlas, un
verdadero dolor de cabeza).
2
Como instalar C18.
Debemos tener ya instalado el MPLAB IDE que nos permitirá manejar la mayoría de los detalles
del compilador, ensamblador y enlazador, quedando la tarea de escribir y depurar la aplicación
como foco principal del programador.
C18 es un compilador cruzado que se corre en un PC Windows y produce código que puede ser
ejecutado por la familia de microcontroladores de Microchip PIC18XXXX. Al igual que un
ensamblador, el compilador traduce las declaraciones humanas en unos y ceros para ser ejecutados
por el microcontrolador.
3
Ya descargado seguimos los pasos de instalación.
4
Estas dos ventanas son las que enlazaran el compilador al MPLAB IDE deben estar tildados los
items como se observa en las capturas.
Luego de todo esto el instalador lanzará la aplicación.
Al terminar debemos reiniciar Windows para validar los enlaces en el entorno (No olvidar).
5
Como crear un proyecto en MPLAB C18.
Esto inicia el asistente que nos guiará en la creación del proyecto completo.
6
Seleccionamos el dispositivo con el cual vamos a trabajar.
7
Recordar que MPLAB es un IDE, un entorno de desarrollo y con se puede trabajar con varios
compiladores, debemos escoger el que nos interesa por defecto MPLAB compila en assembler.
Observe la captura de pantalla, su configuración debe ser la misma para poder compilar con C18.
8
proyecto en particular y no alteramos el resto de nuestras aplicaciones.
Esto de clonar los archivos y librerías en cada proyecto puede parecer redundante y desperdiciar
espacio en nuestra computadora sin embargo estos archivos son todos pequeños y el sacrificio de
espacio es despreciable con los problemas que nos evitamos en el futuro.
9
Finalmente tendremos un proyecto construido pero que todavía no tiene utilidad ya que no hay
archivos en el para compilar. Para compilar utilizo la opción Buill All.
MPLAB no compila archivos sueltos, es decir no puedo tomar un archivo.c y convertirlo en un
ejecutable para un PIC, como tampoco puedo compilar un proyecto como el que te tenemos de
hecho si intento compilar este proyecto vacio se genera un error.
10
proyecto sea con la extensión c, debería quedar algo como mi_trabajo.c .
Para crear este archivo punto c puedo ir a File> New o haciendo click sobre la hojita en blanco
sobre el margen izquierdo de la paleta de herramientas.
Una vez que he creado mi archivo de trabajo y guardado dentro de la carpeta donde esta el proyecto
puedo incorporarlo al proyecto.
Para esto coloco el cursor sobre Source File +
botón derecho y en Add Files busco el archivo
que pretendo incorporar al proyecto.
11
proyecto.
Algunos detalles a observar.
El árbol de proyecto de MPLAB tiene varias carpetas, estas carpetas
son usadas para manejar las dependencias del proyecto con los
archivos asociados a el.
En cada una de estas carpetas se asocia un tipo de archivo, por
ejemplo en Source Files nuestros archivos c, en Header Files los
archivos de cabecera o archivos punto h, etc.
En rigor de verdad no es que en estas carpetas guardamos archivos
mas bien estas carpetas se usan como vínculos a los archivos que
vamos a asociar al proyecto.
Es muy importante trabajar prolijos y saber exactamente que archivos
estamos asociando a los proyectos puesto que suele pasar que
compilamos un proyecto que no hace lo esperado y en realidad
estamos compilando el proyecto correcto pero con el archivo fuente
(nuestro programa) equivocado.
Programar el PIC.
Para enviar nuestro código finalmente a la memoria del microcontrolador podemos usar cualquier
programador de PIC´s. El resultado de la compilación exitosa genera un archivo punto hex de igual
nombre que el proyecto y es este archivo el que finalmente enviamos a la memoria del controlador.
12
Si no tiene programador de PIC y quiere armar uno usted mismo puede solicitar el envío de la placa
programadora Firtec mas el firmware de control.
Comentarios Finales
A lo largo de los años hemos notado que cuando se toman cursos con microcontroladores los
alumnos se concentran en el micro y descuidan puntos que parecen ser menos importantes como la
prolijidad en el armado (solo importa que funcione) y la fuente de alimentación, con la cual
energizamos la electrónica que estamos probando.
Fuente de alimentación.
La alimentación del circuito es parte fundamental en lo que
estamos probando, en definitiva nuestra aplicación se está
alimentando desde esta fuente. Si observa la foto notará un
conector de alimentación montado sobre el mismo
protoboard, incluso se ha acoplado un switch para evitar
tener que conectar
y desconectar la aplicación desde el conector.
Esto último no es algo menor ya que si nos detenemos a
pensar que estamos hablando de un microcontrolador que
ejecuta comandos a velocidades muy altas (milésimas de
millonésimas de segundos) una conexión/desconexión
dudosa, cables enroscados, cables sueltos, fichas malas
pueden ocasionar un arranque del microcontrolador
errático.
Preste mucha atención a su fuente de alimentación y a sus
conexiones al protoboard, si utiliza fuentes switching
asegúrese que es del tipo adecuado para alimentar circuitos
digitales (No utilice las fuentes de cargadores para celulares o baterías en general).
13
Prolijidad en el armado.
El armado de los circuitos es cosa de considerar, haga costumbre el armado prolijo, usted debe estar
seguro que si algo no funciona es porque su código tiene un error, es muy molesto y complicado
andar lidiando con falsos contactos o ruidos en el protoboard, usted debe estar seguro que su
electrónica no tiene problemas para si concentrar su atención en el software que está escribiendo
para su aplicación.
Debe usted estar seguro que su electrónica no tiene problemas, si algo no funciona
sospechar que algo en el software que ha escrito no cumple con el tratamiento lógico del
problema pero descartar problemas en conexiones, alimentación, cables sueltos, etc.
14