Clase - Interrupciones

19
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras CLASE: INTERRUPCIONES EN LOS MICROCONTROLADORES PIC DE MICROCHIP 1 Clase: Arquitectura interna de microcontroladores PIC

description

Clase Interrupciones en microcontroladores PIC

Transcript of Clase - Interrupciones

Page 1: Clase - Interrupciones

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

CLASE: INTERRUPCIONES EN LOS MICROCONTROLADORES PIC DE

MICROCHIP

1Clase: Arquitectura interna de microcontroladores PIC

Page 2: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

2

Fuentes de Interrupciones

Una Interrupción es una rutina de programa que ejecuta la Unidad de Control (UC) cada vez que un periférico solicita la atención del mismo, (evento disparado por el hardware del circuito)

Cuando ocurre una petición de interrupción suceden los siguientes eventos:

• La UC finaliza la instrucción en curso y guarda en la pila (stack) la dirección de retorno, es decir la dirección de instrucción siguiente a la última ejecutada.

• El contador de programa (PC) se carga con la dirección del vector de interrupción, 0004H.

• Son deshabilitadas todas las interrupciones (GIE=0) para impedir un nuevo llamado.

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Page 3: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

3

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones

• Comienza la ejecución de la rutina de interrupción hasta que la UC encuentra el comando RETFIE.

• En ese momento, el PC se carga con la dirección de memoria guardada en la pila al ingreso a la rutina de interrupción.

• Son habilitadas nuevamente todas las interrupciones y se retorna a la ejecución normal del programa principal en el punto exacto en donde se dejó.

Page 4: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

4

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones: consideraciones

En una rutina de interrupción se deben tener en cuenta las siguientes consideraciones:

• Para que la petición sea atendida deben estar previamente habilitados todos los bits de habilitación de la interrupción considerada:

o interrupción global, bit GIE del registro INTCON.

o interrupción de periféricos, bit PEIE del registro INTCON.

o habilitación de la interrupción, bit xxIE de los registros PIE1 o PIE2.

• La primera acción de la rutina de interrupción es resguardar el actual valor de los registros W y STATUS para que al retornar el programa siga ejecutándose tal como se lo dejó al momento de la petición.

Page 5: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

5

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones: consideraciones

• La rutina de interrupción no debe ser un programa muy largo, solo debe limitarse a atender al periférico, dejando al programa principal la tarea central.

• Previo al retorno de la instrucción, la rutina debe resetear la bandera de interrupción del periférico que la solicitó, bits xxIF y recuperar los datos que estaban almacenados en los registros W y STATUS, resguardados al ingresar a la rutina.

Page 6: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

6

PIC16F84: Registro de interrupciones

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Bits de habilitación global de las interrupciones

Page 7: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

7

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones del PIC16F84

Page 8: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

8

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones del PIC16F84: descripción

• Interrupción externa: un circuito externa conectado al pin RB0 dispara la interrupción. Es posible seleccionar el flanco activo ascendente o descendente a través del bit INTEG del registro OPTION_REG. Bits INTE y INTF del registro INTCON.

• Timer 0: dispara la interrupción cuando la cuenta del temporizador 0 desborda de FFH a 00H. Bits T0IE y T0IF del registro INTCON.

• Cambio de estado en el puerto B: dispara la interrupción cuando se produjo un cambio en el estado de los puertos RB4 a RB7. Bits RBIE y RBIF del registro INTCON.

• Memoria interna EEPROM: dispara la interrupción cuando se ha terminado una operación de escritura en esta memoria. Bits EEIE y EEIF del registro INTCON.

Page 9: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC 9

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F84: Registros asociados a interrupciones

Page 10: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC 10

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones del PIC16F882

Page 11: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

11

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones del PIC16F882: descripción

• Interrupción externa: un circuito externa conectado al pin RB0 dispara la interrupción. Es posible seleccionar el flanco activo ascendente o descendente a través del bit INTEG del registro OPTION_REG. Bits INTE y INTF del registro INTCON.

• Timer 0: dispara la interrupción cuando la cuenta del temporizador 0 desborda de FFH a 00H. Bits T0IE y T0IF del registro INTCON.

• Cambio de estado en el puerto B: dispara la interrupción cuando se produjo un cambio en el estado de los puertos RB4 a RB7. Bits RBIE y RBIF del registro INTCON.

• Conversor A/D: dispara la interrupción cuando se ha finalizado la operación de conversión. Bits ADIE y ADIF de los registros PIE1 y PIR1 respectivamente.

• Módulo EUSART: dispara la interrupción cuando el puerto ha recibido un dato o finalizó una transmisión. Bits RCIE, TXIE del registro PIE1 y bits RCIF y TXIF del registro PIR1 respectivamente.

Page 12: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

12

Fuentes de Interrupciones del PIC16F882: descripción

• Puerto serie sincrónico: un evento asociado al pueerto SPI o I2C ocurrió y dispara la interrupción (finalizó una transmisión/recepción, una condición de Start o Stop, etc.) Bits SSPIE y SSPIF de los registros PIE1 y PIR1 respectivamente.

• Módulos captura/comparación/PWM: dispara la interrupción cuando la cuenta del Timer 1 alcanzó un valor preestablecido en los modos captura o comparación. Bits CCP1IE y CCP1IF de los registros PIE1 y PIR1 respectivamente y CCP2IE y CCP2IF de los registros PIE2 y PIR2 respectivamente.

• Timer 2: dispara la interrupción cuando la cuenta del registros TMR2 iguala el valor guardado en el registro PR2. Bits TMR2IE y TMR2IF de los registros PIE1 y PIR1 respectivamente.

• Timer 1: dispara la interrupción cuando desborda la cuenta del los registros TMR1H-TMR1L de 0FFFFH a 0000H. Bits TMR1IE y TMR1IF de los registros PIE1 y PIR1 respectivamente.

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Page 13: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

13

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuentes de Interrupciones del PIC16F882: descripción

• Sistema de reloj: dispara la interrupción cuando se detecta una falla en el oscilador. Bits OSFIE y OSFIF de los registros PIE2 y PIR2 respectivamente.

• Módulos comparadores analógicos: dispara la interrupción cuando se detecta un cambio en la salida de los comparadores. Bits C1IE y C2IE del registro PIE2 y C1IF y C2IF del registro PIR2.

• Memoria interna EEPROM: dispara la interrupción cuando se ha terminado una operación de escritura en esta memoria. Bits EEIE y EEIF de los registros PIE2 y PIR2 respectivamente.

• Puerto serie I2C: dispara la interrupción cuando se produce una colisión de datos en el bus. Bits BCLIE y BCLIF de los registros PIE2 y PIR2 respectivamente.

• Modo Ultra bajo consumo: se dispara la interrupción cuando se produce un evento que hace despertar al microcontrolador del modo de bajo consumo. Bits ULPWUIE y ULPWUIF de los registros PIE2 y PIR2 respectivamente.

Page 14: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC 14

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F882: Registros asociados a interrupciones

Page 15: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC 15

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F882: Registros asociados a interrupciones

Page 16: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC 16

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F882: Registros asociados a interrupciones

Page 17: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC 17

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F882: Registros asociados a interrupciones

Page 18: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC 18

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F882: Registros asociados a interrupciones

Page 19: Clase - Interrupciones

Clase: Arquitectura interna de microcontroladores PIC

19

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuente de información

• Hoja de datos de los microcontroladores PIC16F84 y PIC16F882 proporcionada por MICROCHIP en su página web.