Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pre-Lab
Como primer paso en la realizacin de este laboratorio nos enfocamos en realizar las partes de las guas
que nos ayudaran a resolver los ejercicios propuestos en laboratorio.
Estimular 1
1. D tres ejemplos de dispositivos de E/S para los que las interrupciones se podran utilizar para
sincronizar el microcontrolador con las E/S.
Tres ejemplos seran: dispositivos seriales de E/S, convertidores de Anlogos-Digitales y
controladores para motores paso a paso.
2. Suponga que usted est diseando sistemas de microcontrolador a utilizar en una aplicacin
automotriz. Da tres ejemplos de eventos importantes que se prestan a ser implementadas en un
microcontrolador utilizando un sistema de interrupcin.
Tres eventos importantes seran: despliegue de las bolsas de aire, sistema de frenos antibloqueo
y el control de inyeccin de combustible.
Explora 1
1. Dnde en la documentacin podemos encontrar los lugares vectoriales (o direcciones de
vectores) para las interrupciones?
En el captulo 1 del Manual de Referencia para Usuarios MC9S12C, especficamente la seccin
de la revisin de dispositivos. Las direcciones de los vectores est dado por las siguientes tablas:
2. Como su microcontrolador
a. permite que ocurran eventos asncronos y que sean reconocidos?
A travs de la comprobacin de banderas y seales externas que indican que se ha
producido un evento. Esto se hace antes de que la siguiente instruccin sea buscada en la
secuencia normal.
b. pasa a la rutina de servicio de interrupcin correcta?
Se utiliza un sistema de vectores donde cada fuente de interrupcin tiene un lugar de
memoria especfica en la cual la direccin de la ISR (interrupcin) es guardada.
Computadoras Digitales Juan Navarro 20-70-1999
Cdigo 6314 Giacomo Echevers 8-878-1829
c. vuelve al programa interrumpido en el punto en que se interrumpi?
Antes que la interrupcin (ISR) sea ingresada, el contador de programa es empujado hacia
la pila de retorno. Este contador contiene la direccin de la siguiente instruccin.
d. permite al programador globalmente habilitar y deshabilitar todas las interrupciones?
Una mscara de bits es usada para habilitar o deshabilitar todas las fuentes de interrupcin.
e. permite que el programador active y desactive las alarmas seleccionadas?
Esta activacin o desactivacin se da gracias a que existe un bit de habilitacin para cada
subsistema de interrupcin.
f. desactiva subsecuentes interrupciones por lo que el primero puede dar mantenimiento sin
ser interrumpido?
Cuando una interrupcin ocurre todas las dems interrupciones son deshabilitadas con la
mscara de bit correspondiente.
g. hace frente a las mltiples fuentes de interrupciones?
Mltiples fuentes pueden ser manejadas por cada fuente que tiene su propio vector, es decir,
cada fuete tiene su vector propio con el cual se trabaja.
h. hace frente a mltiples interrupciones simultneas?
Mltiples fuentes simultaneas pueden ser manejadas a travs de un sistema de prioridad.
Explora 2
1. Revise la documentacin de su microcontrolador y haga una tabla que muestre todas las fuentes
de interrupcin. Un buen lugar para buscar esto ser en la tabla de vectores de interrupcin.
Incluya en su tabla una indicacin de si la fuente es una solicitud generada de una interrupcin
interna o externa. Tambin incluya la direccin del vector.
Estimular 2
1. Siempre hay un retraso entre la solicitud de interrupcin y cuando la CPU comienza a ejecutar la
rutina de servicio de interrupcin. Esto se conoce como la latencia de interrupcin. D tres
componentes que provocan la latencia de interrupcin.
Tres procesos que causan una interrupcin que a su vez genera latencia son: empujar registros a
la pila de retorno, la determinacin de la direccin de la ISR, y la bifurcacin que ocurre hacia el
ISR.
3. Su microcontrolador empuja todos los registros en la pila al entrar en una rutina de servicio de
interrupcin?
Casualmente, el HCS12 si empuja todos los registros a la pila antes de entrar al ISR.
Explora 3
1. Cmo hace su sistema de desarrollo de software para inicializar el vector de interrupcin que se
va a utilizar?
En el simulador CodeWarrior, el cual es el software que usamos para trabajar con el
microcontrolador HCS12, la direccin de la rutina de servicio de interrupcin (ISR) se establece
justo en el tiempo del enlace y la localizacin del vector se establece en un nmero o direccin
que se encuentra en el archivo de parmetros del enlace. Dicho archivo se usa para programar la
memoria flash que contiene las direcciones correctas en las locaciones de vectores correctas.
Explora 4
1. Su compilador soporta rutinas de interrupcin de servicio? Si es as, cmo se manifiesta al
compilador que una funcin se debe tratar como un manejador o rutina servicio de interrupcin?
Para el software CodeWarrior, si se pueden manejar rutinas de interrupcin de servicio, y
adems la palabra clave interrupt se usa en la definicin de la funcin para indicar que dicha
funcin debe manejarse como rutina de servicio de interrupcin.
Estimular 3
1. Qu hace que un manejador de interrupciones o rutina de servicio sea diferente a una funcin
"ordinario"?
Un manejador de interrupcin o un servicio de rutina son diferentes que una funcin ordinaria
por la necesidad de preservar el estado de la mquina, incluyendo registros, direcciones, etc y
por otra parte la necesidad de restaurar dicho estado despus que la rutina de interrupcin haya
finalizado. Tambin, toda la data transferida entre las funciones y el manejador de interrupcin
deben ser declaradas como data global.
Informe
Procedimiento y Resultados
Se procedi a desarrollar las partes indicadas en la gua del laboratorio, usando la siguiente
figura.
Computadoras Digitales Juan Navarro 20-70-1999
Cdigo 6314 Giacomo Echevers 8-878-1829
Problema 1
Usted y su pareja de laboratorio deben demostrar que ustedes entienden cmo escribir software usando
las capacidades de interrupcin de su microcontrolador. Ustedes deben hacer esto en varios pasos,
porque cuando los estudiantes tratan de hacer demasiado en su primer programa de interrupcin, el
problema puede llegar a ser demasiado complejo y difcil de verificar y depurar.
2. Inspeccione su kit de aprendizaje para encontrar una interrupcin externa que se pueda controlar.
Su hardware podra tener un interruptor conectado a un pin IRQ o algn otro pin del puerto.
Cuando haya elegido una fuente de interrupcin, investigar la documentacin de su
microcontrolador para determinar que registros necesitan ser inicializados para permitir que las
interrupciones trabajen.
El HCS12 tiene dos interrupciones de hardware: IRQ y XIRQ. Se pueden utilizar como
interrupciones de hardware externos. El IRQ es una seal de entrada a la CPU que puede ser
enmascarado (ignorado) y desenmascarado a travs del uso de las instrucciones CLI y SEI. Sin
embargo, XIRQ, que es tambin una seal de entrada a la CPU, no puede ser enmascarado y
desenmascarado utilizando las instrucciones CLI y SEI y por sta razn se le una interrupcin no
enmascarable (NMI). Para nuestro caso usaremos la interrupcin IRQ.
3. Disee una rutina de interrupcin de un fondo que haga algo til y demostrar que cuando se hace
la solicitud de interrupcin se ejecuta la rutina de servicio de interrupcin.
4. Su siguiente tarea es disear una tarea en segundo plano que puede ser interrumpida.
Inspeccione su kit de aprendizaje de manera que la tarea en segundo plano puede hacer algo til
para que usted pueda demostrar que est funcionando correctamente y sin errores cuando ms
adelante aade una rutina de servicio de interrupcin o de trabajo en segundo plano.
5. Demostrar que su tarea en segundo plano funciona correctamente cuando no hay interrupciones.
(Qu vas a hacer en su programa para asegurarse de que no se produzcan interrupciones?)
Conclusiones
Las interrupciones son eventos importantes que deben ser reconocidas y atendidas (llamada de servicio)
por nuestro programa. El microcontrolador cuenta con caractersticas de hardware y software que
permiten estos importantes eventos. Las interrupciones son un activo importante al escribir aplicaciones
de alto rendimiento. Usted puede utilizarlos en sistemas integrados para sincronizar el microcontrolador
con E/S lentas. En algunas aplicaciones con un sistema operativo en tiempo real, las interrupciones se
utilizan para llevar a cabo todas las tareas de procesamiento.
Para cada interrupcin, debe de haber una rutina de servicio de interrupcin (ISR), o un manejador de
interrupcin. Cuando una interrupcin es invocada, el microcontrolador corre la rutina de servicio de
interrupcin. Por cada interrupcin, hay una localidad fija en memoria que mantiene la direccin de
inicio de la ISR. Al grupo de localidades de memoria separadas para mantener las direcciones de los
ISRs se llama Tabla de Vectores de Interrupcin.