“¡Hola Mundo!” en C18 (con Bootloader) | |||||
En la actualidad existe una enorme variedad de lenguajes de programación para todo tipo de medios electrónicos capaces de interactuar con un usuario. Para un ordenador, un teléfono móvil, 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 mayoría de las personas no comienzan sus experiencias desarrollando un programa capaz de controlar la ISS, sino que intentan partir de un objetivo (o logro) mínimo para luego escalar en complejidad sus conocimientos. En todo el mundo, a la primera experiencia en programación se la conoce como “¡Hola Mundo!”. Gracias a la colaboración de Sebitronic y Jonbul (entre otros), iniciamos nuestro camino en C18. Y tú, ¿qué esperas para sumarte? |
|
||||
Una pequeña lámpara, un LED, un motor que gira gracias a una batería vieja que encontramos en algún cajón 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 célebre frase nace en los Laboratorios Bell en un tutorial de introducción al lenguaje B (que luego sería reemplazado por el lenguaje C que hoy conocemos) escrito por Brian Kernighan en 1972. Por supuesto, todo esto en idioma inglés y con la frase “hello world”, escrita con minúsculas y sin los signos de admiración. |
|||||
El mundo de la programación la convirtió en la celebridad que es hoy y, como no podía ser de otra manera, en la programación de los microcontroladores también es muy común encontrarla. Sin embargo, llegar a dominar una visualización gráfica o alfanumérica 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. |
|||||
|
La cartelería luminosa es un ¡Hola Mundo! multiplicado por decenas de veces |
||||
Lograr que un sencillo LED encienda y apague puede significar, para muchas mentes creativas, la piedra basal de un imperio de industrias electrónicas dedicadas a la construcción de balizas, luces intermitentes de advertencia y/o luces indicadoras de giro para cualquier tipo de vehículos. Es decir, para muchos, lo que puede parecer poco quizás resulte todo lo que se necesita para triunfar. Pero volviendo al mundo real, el mensaje que intentamos transmitirte es que, por más 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 programación tan apasionante y poderoso como es C18. Asumimos, por supuesto, que ya has instalado en tu ordenador la última versión de MPLAB IDE y la versión de evaluación o estudiantil del MPLAB C Compiler for PIC18 MCUs. Existen muchos tutoriales en la Web sobre cómo instalar estos programas y, haciendo nuevamente referencia a los amigos del foro NeoTeo, puedes descargar desde aquí el completo Tutorial de C18 de Suky. |
|||||
El Tutorial de C18 de Suky es una ayuda fundamental durante los primeros pasos en C18 |
|||||
|
Características a
destacar del compilador C18 |
||||
|
|||||
|
Estas características
convierten al compilador MPLAB C18 en una herramienta ideal para los
desarrollos que podamos realizar con los PIC de la línea 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: |
||||
|
Circuito del módulo de LEDs e interruptores |
||||
¿Con qué vamos a
trabajar? |
|||||
Partimos de un programa
básico |
|||||
Dentro de los ejemplos que te dejamos al final del artículo para que puedas descargar, no debes alterar las partes ubicadas al inicio del archivo “main.c”, donde se invoca la configuración 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 provocaría una catástrofe que sólo se remedia comenzando todo de nuevo. No te alarmes si todo empieza a funcionar de manera escandalosa o sin sentido. Vuelve todo atrás, revisa tus pasos previos y allí encontrarás el error. Reinicia la carga de los archivos desde cero y todo vuelve a comenzar. |
|||||
tener siempre a mano un sistema de iluminación de emergencia. |
|||||
En este artículo vamos a descubrir que podemos escuchar mucho más que un poco de música en algunas estaciones de FM. |
Por lo tanto, debes
observar que hemos marcado de manera muy clara la línea 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 códigos. 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 compártelo. Enséñanos tú
a nosotros. Busca mejorar nuestro código. ¿Nuestro código tiene
defectos? ¿Cuáles, dónde, 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 acompañes tus códigos o
ensayos con videos donde se pueda apreciar y demostrar que el código
funciona. Ahora tienes más herramientas: cuentas con el bootloader que
te facilitará las prácticas y también cuentas con dos programas de
ejemplos para dar el paso inicial. ¡Vamos amigo, te seguimos!
|
||||
Indice de montajes | |||||