You are on page 1of 20

Interrupciones

Arquitectura de Computadoras

Contenido
{

Tcnica Polling

Interrupciones

Interrupcin externa INT

Registros modificados por la interrupcin

Motivo de la interrupcin

{ Tcnica

Polling

Tcnica Polling
{

Comprobacin cclica por parte del


programa del estado de la entrada
correspondiente.
Tambin llamada por sondeo

Tcnica Polling
{
{
{
{
{

; La seccin "Principal" es de mantenimiento. Est leyendo constantemente


; la lnea de entrada mediante tcnica Polling.
Principal
btfss
call

Pulsador
IncrementaVisualiza

{
{
{
{
{

; Lee el pulsador.
; Si pulsa, salta a
;incrementar y
;visualizar el contador.

goto
Principal
;
; Subrutina "IncrementaVisualiza" --------------------------------------------;

Tcnica Polling
{

Es un mtodo sencillo para leer una


entrada
Presenta el inconveniente de una
prdida de eficacia
Ciclo permanente que permita leer
una entrada

Tcnica Polling
{

Desventajas
z

Preguntar a las entradas en cada ciclo


del programa

Al perifrico se le atiende despus de


realizar la consulta y no cuando solicita
la intervencin del microcontrolador

{ Interrupciones

Interrupciones
{

Consiste en un mecanismo por el


cual un evento interno o externo
puede interrumpir la ejecucin de
un programa en cualquier
momento.

Interrupciones
{

A partir de entonces se produce un


salto a la subrutina de atencin a la
interrupcin.
Se atiende el evento y luego la
ejecucin del programa retorna
exactamente donde estaba en el
momento de ser interrumpido.

Interrupciones
{

Ms eficiente que el polling ya que


no se invierte tiempo preguntando a
la lnea de entrada para leer el
estado.
Se atender en base a una solicitud
de interrupcin.

Interrupciones
{

Permiten la conexin con el exterior


ya que sincroniza la ejecucin de
programas con los acontecimientos
externos.
Una interrupcin se activa por un
mecanismo hardware

Interrupciones
{

Interrupciones en el PIC16F84:
z

Interrupcin externa INT. Pin RB0/INT

Interrupcin RBI. Por cambio de estado


en una o varias de las 4 lneas de ms
peso RB7:RB4 del puerto B

Interrupciones
{

Interrupciones en el PIC16F84:
z

Interrupcin T0I. Por desbordamiento


del Timer 0

Interrupcin EEI. Por la finalizacin de


la escritura en la EEPROM de datos

Interrupciones
{

Funcionamiento de una interrupcin:


z

1.- Salva el valor actual del contador de


programa PC en la pila

2.- El bit GIE (Global Interrupt Enable)


del registro INTCON es puesto a cero,
prohibiendo cualquier otra interrupcin.

Interrupciones
{

Funcionamiento de una interrupcin:


z

3.- El PC se carga con el valor 004h, que


es la posicin del vector de interrupcin

4.- Se ejecuta el programa de atencin a


la interrupcin que se encuentra a partir
de la direccin 004h

Interrupciones
{

Los bits de control localizados en el


registro INTCON habilitan y
configuran las interrupciones.
Cada causa de interrupcin acta con
dos flags.
Uno para sealizacin y otro para
permiso.

Interrupciones
{

Bandera de sealizacin indica si se ha


producido o no la interrupcin:
TOIF,INTF,RBIF y EEIF

Permiso o prohibicin de la interrupcin en


s:
TOIE,INTE,RBIE,EEIE y GIE

Interrupciones
{

Banderas relacionados con


interrupciones

Interrupciones

Interrupciones

Interrupciones
{

Instruccin REFIE
z

Se utiliza al final de la subrutina de


interrupcin y es idntica a un retorno
de subrutina return

Coloca a 1 el bit GIE volviendo a


habilitar las interrupciones

{ Interrupcin

externa INT

Interrupcin externa INT


{

Importante para atender eventos


externos en tiempo real

; La seccin "Principal" es de mantenimiento. Slo espera las interrupciones


; en modo de bajo consumo.
Principal

sleep
goto

Principal

; Pasa a
;modo de bajo consumo o reposo.

; Subrutina "ServicioInterrupcion" ---------------------------------------------------;


; Subrutina de servicio a la interrupcin. Incrementa un contador y lo visualiza.
;

Interrupcin externa INT


{

El tiempo en que el programa no es


interrumpido est en modo de bajo
consumo, con lo que se consigue un
importante ahorro de energa.

{ Registros

modificados por la
interrupcin

Registros modificados por la


interrupcin
{

Durante la interrupcin el nico


registro que se guarda en la pila es
el contador de programa.
Una subrutina de atencin a la
interrupcin puede modificar el
contenido de los registros del
microcontrolador.

Registros modificados por la


interrupcin
{

Microchip recomienda una secuencia


de cdigo que permite salvar y
restaurar los registros sin
modificarlos.

Registros modificados por la


interrupcin
{

Microchip recomienda una secuencia


de cdigo que permite salvar y
restaurar los registros sin
modificarlos.

Registros modificados por la


interrupcin

Registros modificados por la


interrupcin
{

La instruccin swapf STATUS,W


mueve los datos sin afectar al flag Z
del registro STATUS.
Si se empleara la instruccin movf
STATUS,W se modificara el bit Z

{ Motivo

de la interrupcin

Motivo de la interrupcin
{

Se realiza verificando las banderas


de interrupcin de cada una de las
fuentes habilitadas.
Determinando cual fue la que caus
la interrupcin y decidiendo que
accin tomar.

Motivo de la interrupcin

{ Etapas

de una interrupcin

Etapas de una interrupcin


{

1.-El programa debe habilitar las interrupciones


correspondientes mediante una instruccin en la
inicializacin.
2.-Cuando ocurre una interrupcin la bandera
correspondiente se activa. Si el bit de permiso
asociado y el bit GIE estn en 1 se produce la
interrupcin.

Etapas de una interrupcin


{

3.- Para evitar que se produzca otra interrupcin


mientras se est atendiendo a otra,el bit GIE se
pone en 0 va hardware.
4.- El valor del contador de programa (PC) se
guarda en la pila
5.- El PC se carga con el valor 004h, que es el
vector de interrupciones

Etapas de una interrupcin


{

6.-El programa debe comenzar la subrutina de


atencin a la interrupcin con un salto a la
posicin de memoria, donde se encuentran las
instrucciones correspondientes a la interrupcin.
7.- A continuacin el programa debe guardar
todos los registros que puedan ser modificados
por la subrutina de atencin a la interrupcin.
8.- Si estn habilitadas varias vas de interrupcin
el programa debe explorar el valor de las
banderas para determinar la causa de la
interrupcin.

Etapas de una interrupcin


{

9.-Una vez determinada la causa de la


interrupcin se salta hacia la subrutina
correspondiente.
10.-Terminado el tratamiento de la interrupcin
se deben devolver los valores que tenan los
registros antes de producirse la interrupcin.
11.- El programa debe borrar las banderas que
indican las fuentes de las interrupciones
(INTF,RBIF,TOIF EEIF) antes del retorno al
programa principal

Etapas de una interrupcin


{

12.-Al llegar a la ltima rutina de interrupcin


retfie, el contador de programa se carga con el
valor que se guard inicialmente en la pila y el bit
GIE se pone automticamente a 1

You might also like