Sie sind auf Seite 1von 5

Hola Mundo!

en C18 (con
Bootloader
ELECTRNICA
etiquetas: tutoriales

http://www.neoteo.com/hola-mundo-en-c18-con-bootloader/
En la actualidad existe una enorme variedad de lenguajes de programacin para todo tipo de medios
electrnicos capaces de interactuar con un usuario. Para un ordenador, un telfono mvil, un
automatismo y, por supuesto, para un simple y sencillo microcontrolador. Dentro de este vasto
universo, siempre hay una etapa considerada el inicio del aprendizaje. La mayora de las
personas no comienzan sus experiencias desarrollando un programa capaz de controlar la ISS, sino
que intentan partir de un objetivo (o logro) mnimo para luego escalar en complejidad sus
conocimientos. En todo el mundo, a la primera experiencia en programacin se la conoce
como Hola Mundo!. Gracias a la colaboracin de Sebitronic y Jonbul (entre otros), iniciamos
nuestro camino en C18. Y t, qu esperas para sumarte?
Una pequea lmpara, un LED, un motor que gira gracias a una batera vieja que encontramos en
algn cajn de trastos, o un LCD, cualquier artefacto al que podamos darle vida o actividad se
transforma en nuestro Hola Mundo!, muchas veces, sin darnos cuenta. Ignorada por muchos, la
historia de esta clebre frase nace en los Laboratorios Bell en un tutorial de introduccin al
lenguaje B(que luego sera reemplazado por el lenguaje C que hoy conocemos) escrito por Brian
Kernighan en 1972. Por supuesto, todo esto en idioma ingls y con la frase hello world, escrita
con minsculas y sin los signos de admiracin. El mundo de la programacin la convirti en la
celebridad que es hoy y, como no poda ser de otra manera, en la programacin de los
microcontroladores tambin es muy comn encontrarla. Sin embargo, llegar a dominar una
visualizacin grfica o alfanumrica que exprese estas palabras no es una tarea sencilla. Debido a

esto, la tarea que puede realizarse y comprobarse con un microcontrolador durante los primeros
pasos del aprendizaje es encender un LED.

Lograr que un sencillo LED encienda y apague puede significar, para muchas mentes creativas, la
piedra basal de un imperio de industrias electrnicas dedicadas a la construccin de balizas, luces
intermitentes de advertencia y/o luces indicadoras de giro para cualquier tipo de vehculos. Es decir,
para muchos, lo que puede parecer poco quizs resulte todo lo que se necesita para triunfar. Pero
volviendo al mundo real, el mensaje que intentamos transmitirte es que, por ms que te parezca una
actividad menor o de poca importancia, lograr un Hola Mundo! puede llevarte tan lejos como
nunca has imaginado. Es por esto que, gracias a la ayuda de amigos del foro NeoTeo, vamos a dar
el primer paso en nuestro camino para aprender, practicar y progresar en este lenguaje de
programacin tan apasionante y poderoso como es C18. Asumimos, por supuesto, que ya has
instalado en tu ordenador la ltima versin de MPLAB IDE y la versin de evaluacin o estudiantil
del MPLAB C Compiler for PIC18 MCUs. Existen muchos tutoriales en la Web sobre cmo instalar
estos programas y, haciendo nuevamente referencia a los amigos del foro NeoTeo, puedes
descargar desde aqu el completoTutorial de C18 de Suky.

Caractersticas a destacar del compilador C18


El MPLAB C18 es el compilador especfico de Microchip para su lnea de
microcontroladores PIC18 y tiene una sintaxis similar al lenguaje C convencional, con la salvedad
de que se le han agregado diversas adaptaciones para transformarlo en una herramienta ms
apropiada para trabajar dentro del ambiente de programacin de los PIC. Este compilador se maneja
sin inconvenientes dentro del entorno visual del MPLAB, y sus caractersticas sobresalientes son:

Slo sirve y est optimizado para los PIC 18.

Posee las funciones estndar del lenguaje C.

Permite la inclusin de trozos de lenguaje ASM.

Soporta interrupciones.

Contiene libreras para comunicaciones SPI, I2C, USART, y perifricos externos como LCD
inteligentes.

Gracias a que utiliza el MPLAB, el entorno de programacin es similar al utilizado en ASM.

Posee una versin estudiantil gratuita. Slo basta con registrarse en la Web de Microchip para
obtenerla. Adems posee una versin de demostracin de 60 das de evaluacin.

Estas caractersticas convierten al compilador MPLAB C18 en una herramienta ideal para los
desarrollos que podamos realizar con los PIC de la lnea 18F y, en particular, el 18F2550 que
utilizamos en nuestra entrenadora NeoTeo. Al instalar el MPLAB C18 en el ordenador, este se
coloca por defecto en un directorio que el instalador genera y queda como C:/MCC18. Luego, se
crean, entre otras, las siguientes carpetas que contienen los archivos necesarios para utilizar el
compilador y que deben ser incluidos en los proyectos que intentemos construir:

h: Este directorio contiene los archivos de cabecera (Header Files) de la librera estndar de C y los
archivos con las especificaciones del procesador PIC seleccionado (en nuestro caso, el 18F2550).

lib: Contiene las libreras estndar del lenguaje C (clib.lib o clib_e.lib), las propias de los
microcontroladores PIC (p18xxx.lib o p18xxx_e.lib donde xxx especifica el dispositivo) y los mdulos
start-up (c018.lib, c018_e.lib, c018i.lib, c018i_e.lib, c018is.lib, c018iz_e.lib)

lkr: Contiene los archivos que utilizar el enlazador del lenguaje (Linker Script File).

mpasm: Contiene los archivos de cabecera que utiliza el ensamblador MPASM para los dispositivos
soportados por el compilador MPLAB C18.

Con qu vamos a trabajar?


Lo primero que debemos construir es una pequea placa que se pueda instalar de manera sencilla
en la entrenadora NeoTeo (en el espacio reservado para el puerto B) y que incorpore al menos 8
LEDs, uno por cada pin de salida del puerto. En nuestro desarrollo, como puedes ver en la imagen
superior, hemos incorporado, adems, 2 pulsadores para ser utilizados en programas y actividades
futuras, es decir, cuando comencemos a realizar rutinas ms complejas ya que, dentro de un mismo
puerto que encender LEDs, leeremos interruptores y aprovecharemos a darle ms accin al puerto.
Para facilitar el trabajo de carga y renovacin de programas sobre el PIC, utilizaremos el sistema
Bootloader, que ya hemos visto en artculos anteriores. Esto nos facilitar la tarea de realizar
ensayos a granel con la sola conexin USB de la entrenadora, que le brindar alimentacin y datos a
nuestras prcticas.
Partimos de un programa bsico
Para realizar las prcticas en C18 y comenzar con una base que funcione, te proponemos utilizar los
archivos que se encuentran al final de este artculo que, como puedes comprobar en los videos,
funcionan. A partir de ellos, t podrs realizar las reformas y ampliaciones que quieras hasta lograr
funcionamientos ms elaborados. Por ejemplo, puedes realizar un contador que, al pulsar sobre el
botn que se encuentra en la placa bootloader, provoque el cambio de LED que se encienda sobre la
placa de muestra, o tambin puedes intentar hacer desplazar de un lado a otro un LED encendido y,
por supuesto, encender todos los LEDs, apagar uno con el pulsador o hacer que uno apagado se
mueva de un lado a otro de manera automtica y miles de variantes que se te ocurran realizar
con 8 LEDs.
Dentro de los ejemplos que te dejamos al final del artculo para que puedas descargar, no debes
alterar las partes ubicadas al inicio del archivo main.c, donde se invoca la configuracin de los
fuses y el direccionamiento correcto de los vectores al usar el sistema bootloader. Si alteras alguno
de esos valores, el sistema puede adoptar un comportamiento impredecible y puede suceder
que debas cargar nuevamente el archivo bootloader para recomenzar el trabajo. Es decir,
puedes llegar a corromper el bootloader dentro del PIC y esto provocara una catstrofe que slo se
remedia comenzando todo de nuevo. No te alarmes si todo empieza a funcionar de manera
escandalosa o sin sentido. Vuelve todo atrs, revisa tus pasos previos y all encontrars el
error. Reinicia la carga de los archivos desde cero y todo vuelve a comenzar.
Por lo tanto, debes observar que hemos marcado de manera muy clara la lnea divisoria desde
donde puedes comenzar a trabajar. A partir de all comienza tu magia. Recuerda que tienes todo
un grupo de gente que est deseosa de ver tus avances y trabajos. En el foro NeoTeo hay un grupo
importante de amigos que esperan aprender este lenguaje y t puedes participar de manera activa
con tus cdigos. Observa bien lo que hemos hecho, cambia un bit de lugar, cambia un pulsador de
lugar, intenta construir un contador, avanza un paso, el que quieras, el que puedas y
comprtelo. Ensanos t a nosotros. Busca mejorar nuestro cdigo. Nuestro cdigo tiene
defectos? Cules, dnde, por qu? De eso se trata la idea, de avanzar poco a poco entre
muchos hasta lograr desarrollos importantes en este programa. Te recomendamos, como siempre,
que acompaes tus cdigos o ensayos con videos donde se pueda apreciar y demostrar que el
cdigo funciona. Ahora tienes ms herramientas: cuentas con el bootloader que te facilitar las
prcticas y tambin cuentas con dos programas de ejemplos para dar el paso inicial. Vamos amigo,
te seguimos!
Encender y Apagar un LED:Descarga
Intermitente o Blinker:Descarga
Circuito impreso:Descargar

Das könnte Ihnen auch gefallen