Ret 4

Solo disponible en BuenasTareas
  • Páginas : 38 (9358 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de noviembre de 2010
Leer documento completo
Vista previa del texto
1
1.1

Manejo de Interrupciones y temporizadores
Introducción

Con este documento se pretende introducir al lector en el manejo de las interrupciones y los temporizadores en la plataforma ENT2004CF. Este documento esta estructurado en 3 grandes partes: En primer lugar se aborda el estudio de los temporizadores y su gestión para generar interrupciones periódicas en tiempo real, que son lasutilizadas para llevar un control del tiempo en los sistemas. En segundo lugar realizaremos un ejemplo en el que se captura una interrupción externa producida por un flanco de subida en uno de los terminales de entrada de interrupción. En tercer lugar programaremos que se produzca una interrupción interna cuando se cumpla un tiempo establecido (fin de temporización) posterior a la detección de unflanco de subida en una entrada de captura de entrada. En los tres casos abordaremos el desarrollo del tutorial centrándonos en un programa desarrollado en ensamblador al que le faltan ciertas partes de algunas instrucciones, que debemos ir completando a medida que avancemos por el tutorial. 1.2 Tutorial para el manejo de temporizadores e interrupciones en tiempo real

Figura 1. Ejemplo deejecución del programa InterrTimer.asm

En esta parte vamos a desarrollar un programa que, tras escribir una frase de comienzo (“COMIENZA EL PROGRAMA”), va escribiendo letra a letra el mensaje “CADA SEGUNDO ESCRIBO UNA LETRA”. Entre escritura de letras consecutivas, se realiza una pausa de 1 segundo aproximadamente. Este tiempo de espera se configura mediante un temporizador

y una interrupciónasociada a dicho temporizador. En la Figura 1 vemos un ejemplo de la ejecución del programa. Comenzará el tutorial realizando una copia del código fuente del ejemplo (InterrTimer.asm), en su directorio de trabajo. Esta copia será la que utilice a lo largo del tutorial, para ir modificando las instrucciones incompletas. A continuación, abra dicho fichero con el editor de textos. 1.2.1 Estructura delprograma InterrTimer.asm

Observará que este fichero está estructurado en 4 zonas principales: Una primera zona en la que se definen las constantes que vamos a utilizar a lo largo del programa (DEFINICIÓN DE CONSTANTES). Entre las constantes definidas se encuentran las direcciones de memoria donde están los registros que nos van a permitir configurar tanto el temporizador como la interrupcióninterna generada (MCFSIM_*). Además de estas direcciones de memoria, aparecen las constantes SISTEMA y OUT que contienen respectivamente los valores del número de la TRAP del sistema (15 en nuestro caso), y el código asociado con la salida de un carácter en la pantalla del ordenador ($13). A continuación, tenemos las constantes asociadas a la dirección de comienzo del programa y de las variables, ylas asociadas a los vectores de interrupción. Un detalle importante que hay que tener siempre en cuenta es que la definición de constantes no ocupa ningún espacio en memoria por ser una directiva del ensamblador. La segunda zona (DEFINICIÓN DE VARIABLES) contiene las posiciones de memoria donde vamos a guardar cierta información a lo largo del programa y que actúan como variables. Esta zona estáestablecida a partir de la posición $30000 en memoria (ORG DIR_VARIABLES). La tercera parte lo constituye el propio programa en sí (COMIENZO DEL PROGRAMA). Esta zona comienza a partir de la posición DIR_PROGRAMA ($20000) en memoria. Como se puede observar, este programa siempre comienza en la etiqueta PPAL y debe terminar en un bucle infinito que se queda esperando a que se produzca algunainterrupción externa. En nuestro caso, el bucle está comprendido entre la etiqueta BUCLE y la instrucción BRA BUCLE. Todos los programas que desarrollaremos deben terminar en un bucle infinito o bien ser ellos mismo un bucle infinito. De no ser así el contador de programa PC seguiría avanzando hasta salirse de la zona de memoria donde está alojado el programa, produciendo un error de ejecución. La...
tracking img