Interrup

3
2.2 Interrupciones 2.2.1Descripción general Uno de los recursos de gran aplicación de los procesadores embebidos son las interrupciones. Éstas forman parte de un mecanismo de que disponen los dispositivos e incluso los procesos para hacerle saber a la CPU de la aparición de alguna circunstancia que requiera su intervención. De este modo, los dispositivos pueden provocar que la CPU deje por el momento la tarea que estaba realizando y atienda la interrupción. Una vez atendida, seguirá con su labor anterior. Si no existiesen las interrupciones, el controlador debería estar continuamente comprobando el estado del dispositivo para atenderlo cuando éste lo necesite. Todo el tiempo consumido por el controlador en realizar el sondeo del estado de los dispositivos, es tiempo que se desperdicia en la realización de tareas principales de procesamiento, disminuyendo así el rendimiento del sistema. Cuando al controlador le llega un pedido de interrupción, lo atiende inmediatamente poniendo una pausa en la ejecución del programa que está corriendo mientras ejecuta una función de interrupción denominada rutina de servicio de interrupción (ISR). Una vez terminado el tratamiento de la interrupción, el controlador vuelve al lugar donde fue interrumpido y retoma la ejecución . Para ello el microcontrolador guarda el contenido del contador de programa (PC) en una pila; y de esta forma, al terminar la rutina de interrupción se restaura dicho valor. Interrupciones por Hardware Son aquellas que son provocadas por dispositivos externos al procesador. Su característica es que no son programadas, esto es, pueden ocurrir en cualquier

description

Avr

Transcript of Interrup

Page 1: Interrup

2.2 Interrupciones2.2.1Descripción generalUno de los recursos de gran aplicación de los procesadores embebidos son lasinterrupciones. Éstas forman parte de un mecanismo de que disponen los dispositivose incluso los procesos para hacerle saber a la CPU de la aparición de algunacircunstancia que requiera su intervención. De este modo, los dispositivos puedenprovocar que la CPU deje por el momento la tarea que estaba realizando y atienda lainterrupción. Una vez atendida, seguirá con su labor anterior.Si no existiesen las interrupciones, el controlador debería estar continuamentecomprobando el estado del dispositivo para atenderlo cuando éste lo necesite. Todo eltiempo consumido por el controlador en realizar el sondeo del estado de losdispositivos, es tiempo que se desperdicia en la realización de tareas principales deprocesamiento, disminuyendo así el rendimiento del sistema.Cuando al controlador le llega un pedido de interrupción, lo atiende inmediatamenteponiendo una pausa en la ejecución del programa que está corriendo mientras ejecutauna función de interrupción denominada rutina de servicio de interrupción (ISR). Unavez terminado el tratamiento de la interrupción, el controlador vuelve al lugar donde fueinterrumpido y retoma la ejecución . Para ello el microcontrolador guarda el contenidodel contador de programa (PC) en una pila; y de esta forma, al terminar la rutina deinterrupción se restaura dicho valor.

Interrupciones por HardwareSon aquellas que son provocadas por dispositivos externos al procesador. Sucaracterística es que no son programadas, esto es, pueden ocurrir en cualquiermomento del programa. Existen dos clases de interrupciones por hardware:Enmascarables: aquellas que el usuario decide si quiere o no ser interrumpido. (Ej.Timer1 Overflow).No enmascarables: aquellas que siempre interrumpen el programa. (Ej. vector reset):Las interrupciones por hardware pueden ser útiles para procesar eventos esporádicos,tales como pulsadores o entradas de alarmas. También pueden ser útiles ensituaciones donde se requiera una baja latencia fija, como por ejemplo, cuando seprocesan entradas desde un encoder.2.2.2 Vectores de interrupción en el ATmega328El Atmega328 puede ser interrumpido desde varias fuentes de interrupción diferentes.Cada una de estas fuentes de interrupción tiene asociada una dirección en el espaciode memoria del programa. Estas direcciones se conocen con el nombre de vectores deinterrupción.La dirección más baja por defecto le corresponde al vector de interrupción por RESET.Todas las interrupciones tienen asignadas un bit individual de habilitación Para habilitaruna interrupción dicho bit y el bit Global Interrupt Enable (I) del Status Register (SREG)deben estar en uno.En la tabla siguiente aparece la lista de las 26 fuentes de interrupción del Atmega328.La lista está ordenada por nivel de prioridad. Cuanto menor es la dirección de unainterrupción mayor es su prioridadCuando ocurre una interrupción se pone a cero el bit I y todas las interrupciones sondeshabilitadas.El programador puede escribir un uno en el bit I durante la ejecución de la ISRpermitiendo el anidado de interrupciones. Todas las interrupciones habilitadas pueden

Page 2: Interrup

entonces interrumpir la ISR en ejecución