Tutorial Code Warrior
Tutorial Code Warrior
Tutorial Code Warrior
Introducción
Metrowerks y Motorola han dejado disponible al público una edición especial del entorno
de desarrollo para microcontroladores HC08: CodeWarrior v2.0, la cual es libre y puede
compilar hasta 4Kbytes de código C. Una de las ventajas importantes de esta nueva versión
es que adiciona el simulador de P&E Microcomputer Systems Inc., el cual cuenta con una
máquina virtual que permite simular la CPU, periféricos e interrupciones de todos los
microcontroladores HC08 actuales, lo que facilita el proceso de depuración de las
aplicaciones desarrolladas en lenguaje C.
El instalador completo de CodeWarrior v2.0 se puede obtener por ftp (anónimo) desde el
servidor del grupo de Microelectrónica: ftp://microe.udea.edu.co
ingresando al directorio: pub/embebidos/codewarrior
y descargando los archivos:
hc08codewarrior20.exe (Programa instalador) y license_specialv2.0.zip (Archivo de
licencia)
Este tutorial es una introducción rápida para crear proyectos en lenguaje C, utilizando el
compilador Metrowerks CodeWarrior v2.0 y el simulador ICS de PEMICRO. Para el
tutorial se desarrolló un programa en C para el microcontrolador HC08GP32, el código
fuente esta disponible en http://microe.udea.edu.co/cursos/ieo-944/files/demoHC08
Cuando presione Aceptar, aparecerá otra ventana para escoger el tipo de sistema de
desarrollo que va a utilizar (Stationery), como se desea utilizar la simulación de
PEMICRO se escoge PEDebug y el microcontrolador correspondiente. Este modo es por
defecto sólo para lenguaje ensamblador, por lo que solo aparece la opción de Asm.
Figura 2.
Cuando presione OK Codewarrior creará una carpeta con el nombre que le dio a su
proyecto y creará un proyecto de ejemplo en lenguaje ensamblador.
En la figura 4 se observa como debe aparecer el proyecto después de agregar estos archivos
El siguiente paso es agregar todos los archivos fuente correspondientes al proyecto. Para
esto puede utilizar el menú File | New… como se muestra en la figura 7, o adicionar
archivos ya existentes con Proyect | Add Files…
Como en todo programa C, debe existir una función main(). En la figura 8 se muestra una
plantilla mínima para el programa.
El proyecto de ejemplo es un sistema el cual prende y apaga un Led, donde los intervalos
de encendido y apagado son programables por el puerto serial utilizando una aplicación
tipo terminal. En la figura 9 se muestran todos los archivos fuente del proyecto en la
carpeta sources y en la figura 10 el aspecto general del proyecto luego de adicionar los
archivos. Estos archivos están disponibles en la página
http://microe.udea.edu.co/cursos/ieo-944/files/demoHC08
En esta aplicación se utiliza una interrupción de Output Compare para medir el tiempo de
encendido y apagado del LED. Para implementar la rutina de interrupción se deben realizar
dos pasos.
1. Se define la rutina de interrupción como una función que no recibe parámetros y que no
retorna resultados (void). Justo antes de la definición de la función se debe agregar la línea
#pragma TRAP_PROC. Esto le indica al compilador que esta función es una rutina de
interrupción. En la figura 11 se observa este procedimiento
2. El siguiente paso es agregar esta función en los vectores de interrupción, para esto en el
archivo default.prm se agrega, por cada rutina de interrupción, la línea:
Para el ejemplo anterior el archivo default.prm quedaría como se observa en la figura 12.
Además, se debe asegurar que el enlazado de este archivo se de antes que el de la librería
estándar ansi.lib. Para hacer esto, en la ventana Link order se arrastra con el mouse la
librería hasta la última posición tal como se ve en la figura 13.
Después de tener todos los archivos del proyecto y actualizado los vectores de interrupción
en el archivo default.prm se procede a compilar y enlazar el proyecto. Para esto seleccione
Proyect | Make.
Figura 15.