You are on page 1of 6

Prctica No 1 de Computadoras Digitales

Tutoriales de CodeWarrior HSC12


Introduccin
Este curso es sobre el funcionamiento, diseo e implementacin de la computadora
digital. No obstante la enorme variedad de situaciones que pueden ser resueltas o
controladas por una computadora digital estas poseen una estructura fsica interna
con pocas variaciones entre una y otra. Las diferencias realmente radican en la
programacin y en el tipo de perifricos o puertos utilizados en su diseo, los
cuales dependen estrechamente del tipo de aplicacin.
Dos son los elementos esenciales que componen a una computadora digital, uno es el
hardware y otro el software. El hardware es bastante convencional y est formado
por todos los elementos fsicos que conforman a la computadora y que a su vez
implementan tres secciones elementales: el microprocesador o a veces llamado
CPU (Unidad Central de Procesamiento), la memoria y los perifricos. El software
es el conjunto de programas conformados por las instrucciones que controlan el
quehacer de la computadora y los datos que estos requieren para su operacin.
Tanto los datos como los programas residen en la memoria de manera permanente
algunos (programas monitores y/o sistemas operativos) y temporal otros.
Una variante o ms bien una extensin del microprocesador es el microcontrolador
MCU el cual integra en un solo dispositivo las tres secciones mencionadas con el
objetivo de realizar alguna aplicacin de control, de all el trmino MCU.
El objetivo principal del curso es el estudio del hardware, del software y de sus
variantes enfocados en el diseo y programacin de una computadora tipo
genrica. Aunque es posible describir el hardware de una computadora sin hablar
del software llegar el momento en el que hay que probar su implementacin. La
nica forma de hacerlo es programar funciones bsicas que prueben el
funcionamiento correcto de todas sus partes, es aqu en donde el software es
importante. Para lograr este objetivo se ha seleccionado una plataforma especfica
integrada por el MC98S12C128 como elemento fsico parte del hardware y el
CodeWarrior como interfaz de desarrollo para su programacin (software).
Esta prctica y las subsiguientes estn orientadas al estudio de estos elementos,
inicialmente es necesaria la familiarizacin con el IDE o Entorno Integrado de
Desarrollo (Integrated Development Enviroment) de CodeWarrior para tal fin siga el
siguiente procedimiento.
Procedimiento
1. Instale el CodeWarrior1
2. Ejectelo y en el Startup Dialog seleccione Run Getting Started Tutorial. La
mejor forma de aprender a utilizar un nuevo IDE es ejecutando los tutoriales que le
acompaan. Los tutoriales son sencillos y pueden realizarse con poco esfuerzo de
su parte.
3. En el panel izquierdo de la ventana de ayuda se presenta un grupo de siete
tutoriales. Ejecute los tutoriales siguiendo las indicaciones presentes en el propio
tutorial pero tomando en cuenta las consideraciones que a continuacin se listan.
C Tutorial:
Paso 1 hgalo tal cual. Clic en el botn de Create a New Project en la
ventana de inicio. Si el Code Warrior ya est corriendo, invoque un nuevo
proyecto usando File New Project
Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de
1 El procedimiento de instalacin de CodeWarrior no difiere del de instalacin de otros
programas similares, existe un CD con el programa y los datos necesarios para su
instalacin.
Ing. M. Logreira V. A.

Prctica No 1 de Computadoras Digitales


Tutoriales de CodeWarrior HSC12
MC9S12DP256 ya que este no se provee y aquel s. Opte por Full Chip
Simulation
Paso 3 ubique su proyecto en un directorio en la raz de su disco y con el
nombre del grupo de laboratorio (Las primeras silabas de los apellidos de los
integrantes s y ubquelo en un directorio en la raz del Disco. Por ejemplo:
c:\CWPRJ12\LOJOCRUZx\TutoC Grupo formado por Lpez, Jolie y Cruz).
Paso4 hgalo tal cual.
Paso5 hgalo tal cual.
Paso 6 abra el archivo MCS9S12C128.h en el directorio includes y dele un
recorrido visual rpido y observe que en el archivo se declaran todos los
smbolos que corresponden a los registros de configuracin de los recursos
con los que cuenta el mcu 12C128. Haga un listado con los primeros diez (el
Puerto B incluido) recursos que se listan en este archivo, los recursos se
especifican como comentarios en color rojo y aparecen entre los indicadores
de comentario de C /***
PORTA ... ***/ esta es la nica parte del recurso
que se requiere aparezca en el listado.
- PORTAB - Port AB Register; 0x00000000
- PORTA - Port A Register; 0x00000000
- PORTB - Port B Register; 0x00000001
- PORTE - Port E Register; 0x00000008
Paso 7 Despus de realizar el COPY and PASTE cambie DDRB = 1 por DDRB =
0x80 y PORTB_BIT0 = ~PORTB_BIT0 por PORTB_BIT7 = ~PORTB_BIT7 este
cambio es para apreciar el LED.
Paso 8 hgalo tal cual
Paso 9 hgalo tal cual
Paso 10 recuerde que se cambi el bit 0 por el bit 7 as en vez de variar entre
0 y 1 variar entre 0 y 80 conforme se ejecuta el paso a paso sealado
Paso 11 hgalo tal cual
Paso 12 conecte el APS12C128 proporcionada en el almacn y seleccione
TBDML en vez de P&E Multilink/Cyclone Pro para activar el modo de
Depuracin en el Trasfondo siga el resto de las indicaciones.
Paso 13 hgalo tal cual
Paso 14 cuando realice la ejecucin continua el LED permanece encendido y
no se nota el parpadeo. Cuando realice el paso a paso note que el LED se
ilumina cada dos clics.
Paso 15 hgalo tal cual
Esta parte culmina con el primer tutorial, haga una recopilacin de los
recursos utilizados del MCU y de los comandos del Code Warrior que utilizo.
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
_________________.
Liste al menos 5 tareas que aprendi a hacer en el Code-Warrior en este
tutorial:
1. Crear un nuevo proyecto; 2.
__________________________________________________; 3.
____________________________________; 4. __________________________________; 5.
____________________________________.
a. Relocatable Assembly Tutorial, en este tutorial se trabaja en assembler en vez de C
pero se crean programas que pueden ser dispuestos en cualquier lugar de la
memoria por eso el adjetivo de relocalizable
Paso 1 hgalo tal cual.
Ing. M. Logreira V. A.

Prctica No 1 de Computadoras Digitales


Tutoriales de CodeWarrior HSC12
Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de MC9S12DP256
ya que este no se provee y aquel s.
Paso 3 seleccione el mismo directorio anterior base pero cambie el nombre del
proyecto TutAsm1 para que no se mezcle con el del tutorial anterior, ejemplo
c:\CWPRJ12\LOJOCRUZx\TutAsm1, recuerde marcar y desmarcar lo que se pide.
Paso 4 hgalo tal cual.
Paso 5 Traduzca al espaol el prrafo que detalla el paso 5:
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Paso 6 abra el archivo MCS9S12C128.inc en el directorio includes y dele un
recorrido visual rpido y observe que en el archivo se declaran todos los smbolos
que corresponden a los registros de configuracin de los recursos con los que
cuenta el mcu 12C128. Haga un listado con los primeros diez (el Puerto B incluido)
recursos que se listan en este archivo, los recursos se especifican como
comentarios en color rojo y aparecen entre los indicadores de comentario de C /***
PORTA ... ***/ esta es la nica parte que atae al recurso que se requiere
aparezca en el listado.
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Paso 7 posterior al copy and paste cambie las instrucciones LDAA #$01 por LDAA
#$80 ya que se utilizar el LED conectado al pin 7 del PORTB
Paso 8 hgalo tal cual.
Paso 9 hgalo tal cual.
Paso 10 hgalo en la segunda parte dele clic derecho con el cursor ubicado en la
ventana Data y en el men que aparece Add Expresion... y luego escriba PORTB.
Paso 11 hgalo tal cual.
Paso 12 conecte el APS12C128 proporcionada en el almacn y seleccione TBDML
en vez de P&E Multilink/Cyclone Pro para activar el modo de Depuracin en el
Trasfondo siga el resto de las indicaciones.
Paso 13 hgalo tal cual.
Paso 14 cuando realice la ejecucin continua el LED permanece encendido y no se
nota el parpadeo. Cuando realice el paso a paso note que el LED se ilumina cada
dos clics.
Paso 15 antes de cerrar el depurador haga un listado de las instrucciones utilizadas
en el mainLoop incluyendo una descripcin de la operacin que realiza c/u:
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Esto culmina este tutorial, liste al menos 4 tareas que aprendi a hacer en el CodeWarrior en este tutorial:
1. ______________________________________; 2.
________________________________________; 3. ______________________________________;
4. _________________________________________
b. Absolute Assembly Tutorial
Se espera que este tutorial pueda realizarlo por usted corrigiendo en donde sea
necesario los pasos de manera similar al tutorial anterior. Se sugiere TutAsm2.mcp
para el nombre.
Ing. M. Logreira V. A.

Prctica No 1 de Computadoras Digitales


Tutoriales de CodeWarrior HSC12
Cul es la diferencia entre relocatable y absolute assembly:
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Cul es la direccin donde se ubica el programa _Startup:
___________________________________
c. Processor Expert Tutorial para facilitar el uso del MCU el codewarrior cuenta con
esta caracterstica que nos permite en un ambiente grfico amigable configurar los
diferentes registros que controlan el funcionamiento de los perifricos con que
cuenta el MCU. Active este tutorial y siga los pasos del instructivo.
Paso 1 hgalo tal cual.
Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de MC9S12DP256
ya que este no se provee y aquel s.
Paso 3 hgalo tal cual. Note que ahora usa el botn de Siguiente en vez de
Finalizar como en los tutoriales anteriores.
Paso 4 hgalo tal cual.
Paso 5 hgalo tal cual. En este paso es donde se selecciona el Processor Expert.
Paso 6 hgalo tal cual. Se recomienda usar la animacin. Use las flechas ubicadas
en la lnea superior para moverse de pregunta en pregunta del asistente.
Paso 7 hgalo tal cual no atienda el error, posteriormente ser subsanado
Paso 8 hgalo tal cual. Use la animacin. Aqu se trabaja con un concepto
avanzado llamado interrupcin. En realidad nuestros LEDs son verdes.
Paso 9 recuerde que en nuestro board PB0 no tiene LED, el que tiene es PB7 as
que use PB7_ADDR7_DATA7 en vez del que se pide, la direccin sigue siendo
salida. (Use la animacin si tiene dudas).
Paso 10 hgalo tal cual. En los mtodos del Beam solo permita generacin de
cdigo para SetDir y NegVal.
Paso 11 hgalo tal cual. Use la animacin. Se selecciona el canal que produce la
interrupcin y el periodo entre interrupciones en medio segundo.
Paso 12 hgalo tal cual aparece en la animacin.
Paso 13 hgalo tal cual aparece en la animacin.
Paso 14: o GreenLed depende del paso 8.
Paso 15: hgalo tal cual.
Paso 16 siga las instrucciones pero recuerde seleccionar TBDML en lugar de Full
chip simulation y que el CPU del que disponemos es el C128. Luego active la
simulacin y ejecute con la flecha verde.
Presente el resultado de su trabajo al instructor para que le firme en el espacio
sealado esto le da derecho a la primera
Nota:__________________________________________
Qu se espera como comportamiento en la tarjeta cuando ejecuta esta aplicacin
usando la flecha verde?
___________________________________________________________________________________.
Liste lo aprendido en este tutorial:
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
d. C with Device Initialization Tutorial la inicializacin del dispositivo permite realizar
la configuracin inicial de los recursos (perifricos) en un ambiente grfico
amigable. Ejecute este tutorial y siga los pasos que se indican.
Paso1: hgalo tal cual.
Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de MC9S12DP256
ya que este no se provee y aquel s.
Ing. M. Logreira V. A.

Prctica No 1 de Computadoras Digitales


Tutoriales de CodeWarrior HSC12
Paso 3: hgalo tal cual, pero recuerde ubicar su proyecto en el directorio de trabajo
prestablecido.
Paso 4: hgalo tal cual.
Paso 5: hgalo tal cual.
Paso 6: hgalo tal cual.
Paso 7: hgalo tal cual.
Paso 8: habilite el Pin 7 en vez del 0 ya que este es el que tiene LED en nuestra
tarjeta.
Paso 9: este paso cambia, haga clic en CPU y expanda Clock setting y luego
Input clock, en Clock type seleccione External clock source, en Clock
frecuency escriba 4 <Intro> y verifque la frecuencia interna del MCU
______________________, finalmente seleccione Ok.
Paso 10 antes de hacer lo que se indica, haga clic en la opcin TIM, luego expanda
Clock settings y en el Prescaler seleccione Bus Clock / 32 para obtener la
frecuencia de 62.5 KHz que sugiere el paso anterior, a partir de aqu siga el
instructivo del paso tal cual.
Paso 11: hgalo tal cual, tenga en cuenta el mensaje que sale al final y corrija lo
que se indica en caso que sea necesario.
Paso 12: solo para lectura.
Paso 13 Recuerde que el terminal que tiene LED es PORTB7, el archivo MCUinit.c se
puede acceder en la estructura a la izquierda en el grupo Generated Code y la
seccin del programa que hay que modificar es:
__interrupt void LEDtimer (void)
{
// enter your code here
}
Paso 14: hgalo tal cual (recuerde cambiar el modo de simulacin a TBDML).
Paso 15: haga un listado de lo aprendido en este tutorial:
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Muestre al instructor su trabajo y la tarjeta con el LED que debe estar destellando.
_______________________________________
Firma del Instructor.
4. Breakpoints y su uso: como ya experiment el IDE de CodeWarrior Freescale
posee herramientas que son muy tiles que nos ayudan a programar en cdigo
assembler, en cdigo c y con ayuda del Processor Expert y Device Initialization nos
permite manejar perifricos en forma un tanto independiente de los detalles
propios de esta tarea. una herramienta que no ha sido puesta en prctica es el uso
de los breakpoints para corregir este detalles hagamos lo siguiente:
a. En la sesin del simulador de la ltima parte del tutorial anterior, active la ventana
Source y en la barra de mens haga clic en Source luego en Open Source File...
y luego seleccione el archivo MCUinit.c para que aparezca en la ventana.
b. Ubique en este archivo la entrada donde aparece la ISR _interrupt void LedTimer
(void), apntele con el cursor a la instruccin que hace el complemento del bit 7
del puerto B (PORTB_BIT7=~PORTB_BIT7) y haga clic derecho. Note que la primera
opcin es Set Breakpoint sela y note la marca que aparece en la instruccin.
Los breakpoints son tiles durante la depuracin de un programa ya que permite la
ejecucin en tiempo real del cdigo hasta el punto donde se estableci el mismo,
quedando el estado de los registros y de todos los recursos que utiliza el
programa, disponibles para su inspeccin.

Ing. M. Logreira V. A.

Prctica No 1 de Computadoras Digitales


Tutoriales de CodeWarrior HSC12
c. Pruebe usando el comando de ejecucin continua del Debugger u oprima la tecla
F5.
Note como el procesador detiene la ejecucin y queda resaltada la instruccin
donde se ubic el breakpoint, en este momento podemos inspeccionar el estado
de los registros de las banderas y de los recursos.
d. En la ventana Data 2 haga clic derecho y seleccione la opcin Add Expresion
luego escriba el nombre del recurso PORTB para desplegar su valor en la ventana
de datos.
e. Ejecute nuevamente el programa y verifique como cambia el valor en la salida
PORTB.
Anote los valores que se obtienen en PORTB cuando realiza este punto
repetitivamente:
_____________________________________________________________________________
Preguntas: (Las respuestas a estas preguntas determinan el 25% de la nota de la gua)
1. Cul es el principal aspecto en el que una computadora digital se diferencia de
otra?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
2. Cules de los siguientes elementos pueden ser catalogados como hardware o
software: El archivo que constituye esta gua, la pantalla en la que se refleja la
informacin, el teclado usado para captarlo, la memoria en la que reside?
____________________________________________________________________________________
____________________________________________________________________________________
___________________________________________________________________________________
3. Cul es la diferencia entre un microprocesador y un MCU?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
4. Cules elementos conforman la base prctica de este curso?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
5. Cul es la funcin de los comandos Make y Debug del IDE del CodeWarrior?
(cada uno por separado)
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
6. Cul es la diferencia entre el usar Full Chip Simulation y TBDML a la hora de
crear nuestro proyecto?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
7. Cul es el nombre del MCU usado en esta prctica?
____________________________________________
8. Presente un listado de los registros que contiene el MCU del curso?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Presente esta gua con los espacios completados.

Ing. M. Logreira V. A.

You might also like