Fases de interrupción

Solo disponible en BuenasTareas
  • Páginas : 3 (543 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de septiembre de 2010
Leer documento completo
Vista previa del texto
FASES DE UNA INTERRUPCIÓN

Como resumen de todo lo explicado hasta ahora, pasamos a enumerar las acciones que realiza automáticamente el microcontrolador y las que el diseñador debe tener encuenta a la hora de confeccionar el programa:

1° El programa debe habilitar las interrupciones correspondientes mediante una instrucción en la inicialización similar a la siguiente:

movlw b'10111000' ; Activa interrupción del TMR0 (TOIE), por flanco en RBO (INT)
movwf INTCON ; por cambio en líneas del Puerto B (RBIE) y la general (GIE).

2° Cuando ocurre una interrupción elflag correspondiente (TOIF, INTF o RBIF) se activa. Si el bit de permiso correspondiente (TOIE, INTE o RBIE) está a "1" y el bit de habilitación de todas las interrupciones GIE está a "1", se producela interrupción.

3° Para evitar que se produzca otra interrupción mientras se está atendiendo a otra anterior, el bit GIE se pone automáticamente a "0" por hardware.

4° El valor del contadorde programa (PC) se guarda en la pila.

5° El PC se carga con el valor 004h, que es el vector de interrupciones.

6º El programa debe comenzar la subrutina de atención a la interrupción con unsalto a la posición de memoria, donde se encuentra las instrucciones correspondientes a la interrupción.

ORG 0 ; Dirección de comienza del programa.
goto Inicio
ORG 4 ; Vector de interrupción.goto ServicioInterrupcion

7° Seguidamente el programa debe guardar todos los registros que puedan ser modificados por la subrutina de atención a la interrupción.

CBLOCK Guarda_WGuarda_STATUS '
Guarda_RegistroA
Guarda_RegistroB

8º Primero preserva los valores que tenían W y STATUS antes de producirse la interrupción. No se puede utilizar la instrucción "mov STATUS.W" porquecorrompe el contenido del STATUS.

ServicioInterrupcion
movwf Guarda_W
swapf STATUS,W
movwf Guarda_STATUS
movf RegistroA,W
movwf Guarda_RegistroA
movf...
tracking img