SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Sistemas Basados en
   Microprocesadores

  Manejo de Interrupciones
Interrupciones
 Una interrupción es un evento que es identificado
 por el µcontrolador, y que interrumpe el proceso
 normal de un programa.
    Cuando finaliza la atención de la interrupción se continua
     en el punto donde se había interrumpido el programa.
 Los
    eventos o fuentes de interrupción son muchos y
 muy variados:
    Interrupción externa por flanco, por cambio de estado,
     por fin de temporización…




 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones (continuación…)
 Los µcontroladores PIC incluyen un sistema de
 interrupciones basado en dos niveles de prioridad.
    Una interrupción de alta prioridad puede interrumpir el
     tratamiento de una de baja prioridad pero no a la inversa.
 Porcompatibilidad, el sistema de interrupciones con
 prioridades está desactivado por defecto de forma
 que se trabaja sin prioridades.
    El bit IPEN del registro RCON habilita (1) o no (0) el
     sistema de prioridades de los PIC18.




 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones (continuación…)
 Cuando se produce una interrupción, se realiza una
 llamada automática a la rutina de interrupción.
    Las rutinas de interrupción tienen una posición específica
     dentro de la memoria de programa.
      0x0008 para la rutina de interrupción de alta prioridad.
      0x0018 para la rutina de interrupción de baja prioridad.




        Si no se usan prioridades, sólo existe un único vector y está
         situado en la posición 0x0008.

 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones (continuación…)
 Cada fuente de interrupción se controla por medio
 de 3 bits:
    Bit de prioridad: permite asignar a cada fuente de
     interrupción una prioridad alta (1) o baja (0).
        Siempre se llama xxIP (donde “xx” es el nombre de la fuente de
         interrupción).
    Bit de habilitación: permite habilitar (1) o no (0) cada
     fuente de interrupción.
        Siempre se llama xxIE
    Bit de señalización o “Flag”: informa que se ha detectado
     (1) o no (0) una interrupción.
        Siempre se llama xxIF




 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones (continuación…)
 Las interrupciones tienen un habilitador global
 además del habilitador individual de cada fuente de
 interrupción:
    El bit GIE/GIEH del registro INTCON:
      Si se usan prioridades (bit GIEH). habilita las interrupciones
       configuradas como de alta prioridad.
      Si no se usan prioridades (bit GIE), habilita todas las
       interrupciones que tenga su habilitador individual activado.
    El bit PEIE/GIEL del registro INTCON:
      Si se usan prioridades (bit GIEL), habilita las interrupciones
       configuradas como de baja prioridad.
      Si no se usan prioridades (bit PEIE), habilita las interrupciones
       relacionadas con periféricos del µcontrolador.

 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones (continuación…)
 Loshabilitadores globales se ponen a 0 cuando se
 produce una interrupción.
                                                        Se pone a 1 con la
    Si no hay prioridades sólo el bit GIE.              instrucción retfie

    Si hay prioridades, el bit GIEH o el GIEL, dependiendo de
     la prioridad de la interrupción generada.
 Losflags individuales se ponen a 1 cuando se
 produce su interrupción correspondiente.
    Es necesario ponerlos a 0 manualmente para que no
     salte de nuevo la interrupción (sin haberse producido).
    Aunque la interrupción no esté habilitada, el flag se pone
     a 1 cuando sucede el evento, pero no salta la
     interrupción.

 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones (continuación…)
 Instrucciones      de control
    retfie: regreso de interrupción con habilitación (pone a 1
     los bits GIE, GIEH o GIEL según corresponda)

         Tipo de evento                           Bits afectados
         No hay prioridades                             GIE
         Hay prioridades y se ha generado una
                                                        GIEH
         interrupción de alta prioridad
         Hay prioridades y se ha generado una
                                                        GIEL
         interrupción de baja prioridad




 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones de E/S
 Hay dos tipos de interrupciones de E/S diferentes en
 los PIC18:
    3 interrupciones externas independientes (INT0 con la
     línea RB0, INT1/RB1 e INT2/RB2).
      Se produce al detectar un flanco, ascendente o descendente,
       configurable por medio del bit INTEDGx.
      Se puede utilizar para el control de interruptores, pulsadores o
       cualquier dispositivo que genere un señal digital.
      La interrupción INT0 no dispone del bit de prioridad, y se
       considera siempre como de prioridad alta.
    Interrupción por cambio de estado en <RB4:RB7>.
      Se produce cuando cambia el estado (pasar de „0‟ a „1‟ o de „1‟
       a „0‟) de cualquiera de las 4 líneas.
      Se utiliza principalmente para el control de teclados matriciales.



 http://paginaspersonales.deusto.es/jonathan.garibay/
Interrupciones de E/S (continuación…)
 Trabajo    personal:
    Diferenciar entre la E/S programada y la E/S por
     interrupción.




 http://paginaspersonales.deusto.es/jonathan.garibay/
Registros de Manejo de Interrupciones

                                Habilitadores          Flags
                                individuales
Habilitadores
  globales
                                                Depende del valor
                                                  del bit IPEN




http://paginaspersonales.deusto.es/jonathan.garibay/
Registros de Manejo de Interrupciones
(Continuación…)




                             Prioridades




                    Bits de configuración
                     específicos de una
                         interrupción




 http://paginaspersonales.deusto.es/jonathan.garibay/
Registros de Manejo de Interrupciones
(Continuación…)



                    …




                    …




 http://paginaspersonales.deusto.es/jonathan.garibay/
Ejemplo de funcionamiento
                    org      0x00
   0x0000 inicio    goto     inicio                              Pila
   …                                              PC
                                                            31
   0x0008           btfss    INTCON,RB0IF
                                                            30
   0x000A           retfie
   0x000C           bcf      INTCON,RB0IF                   29
   0x000E           incf     PORTA, F                       …
   0x0010           retfie                                   0
   …
   0x003A inicio    clrf     TRISA                 INTCON
   0x003C           movlw    0xF0
   0x003E           movwf    TRISB
   0x0040           clrf     PORTA                 PORTA     PORTB
   0x0042           bsf      INTCON,RBIE
   0x0044           bcf      INTCON,RBIF
   0x0046           bsf      INTCON,GIE
   0x0048 bucle     goto     bucle
   …

http://paginaspersonales.deusto.es/jonathan.garibay/
Resumen
 Cuando     se produce una interrupción:
    Se pone a „1‟ el bit de flag de la interrupción causante.
    Se pone a „0‟ el bit global de habilitación.
      Si no hay prioridades, se pone a „0‟ el bit GIE.
      Si hay prioridades, se pone a „0‟ el bit GIEH o GIEL, según
       corresponda.
    Se carga en el PC la dirección del vector de interrupción.
      Si no hay prioridades, se carga la dirección 0x0008.
      Si hay prioridades, se carga la dirección 0x0008 o 0x0018,
       según corresponda.




 http://paginaspersonales.deusto.es/jonathan.garibay/
Resumen (Continuación…)
 Para   atender una interrupción:
    Se busca la interrupción causante mirando el bit de flag.
    Se va a la rutina de interrupción específica:
      Se pone a „0‟ el bit de flag de la interrupción.
      Se atiende la interrupción.
      Se finaliza la rutina con la instrucción retfie.

    Si no se encuentra la interrupción se finaliza la rutina con
     la instrucción retfie.
                                        Si se da este caso, esto
                                         nos indica que hay un
                                       error en la programación.




 http://paginaspersonales.deusto.es/jonathan.garibay/

Mais conteúdo relacionado

Mais procurados

Lecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binariaLecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binaria
nica2009
 
Ss cap9 - diezmado e interpolacion
Ss   cap9 - diezmado e interpolacionSs   cap9 - diezmado e interpolacion
Ss cap9 - diezmado e interpolacion
kevinXD123
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
Luis Zurita
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
Gustavo Davila
 

Mais procurados (20)

Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlab
 
Lecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binariaLecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binaria
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Tia portal MANUAL
Tia portal MANUALTia portal MANUAL
Tia portal MANUAL
 
Rectificadores no controlados
Rectificadores no controladosRectificadores no controlados
Rectificadores no controlados
 
Ss cap9 - diezmado e interpolacion
Ss   cap9 - diezmado e interpolacionSs   cap9 - diezmado e interpolacion
Ss cap9 - diezmado e interpolacion
 
Modulacion am
Modulacion amModulacion am
Modulacion am
 
Practica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSKPractica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSK
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en Telecomunicaciones
 
Clase instrucciones PIC16F877A
Clase instrucciones PIC16F877AClase instrucciones PIC16F877A
Clase instrucciones PIC16F877A
 
RED NEURONAL Backpropagation
RED NEURONAL BackpropagationRED NEURONAL Backpropagation
RED NEURONAL Backpropagation
 
CONJUNTO DE INSTRUCCIONES PIC16F877A
CONJUNTO DE INSTRUCCIONES PIC16F877ACONJUNTO DE INSTRUCCIONES PIC16F877A
CONJUNTO DE INSTRUCCIONES PIC16F877A
 
Decodificador y codificador
Decodificador y codificadorDecodificador y codificador
Decodificador y codificador
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Flip flops
Flip flopsFlip flops
Flip flops
 
íNdice de modulación
íNdice de modulacióníNdice de modulación
íNdice de modulación
 

Destaque (16)

Interrupciones: Sistemas Operativos
Interrupciones: Sistemas OperativosInterrupciones: Sistemas Operativos
Interrupciones: Sistemas Operativos
 
Interrupciones de hardware
Interrupciones de hardwareInterrupciones de hardware
Interrupciones de hardware
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Excepciones del Microprocesador
Excepciones del MicroprocesadorExcepciones del Microprocesador
Excepciones del Microprocesador
 
8085 micro processor book
8085 micro processor book8085 micro processor book
8085 micro processor book
 
Procesadores segmentados arquitectura del computador
Procesadores segmentados arquitectura del computadorProcesadores segmentados arquitectura del computador
Procesadores segmentados arquitectura del computador
 
Interrupción informatica
Interrupción informaticaInterrupción informatica
Interrupción informatica
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
Procesamiento segmentado
Procesamiento segmentado   Procesamiento segmentado
Procesamiento segmentado
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Componentes De Un Sistema Computacional[1].
Componentes De Un Sistema Computacional[1].Componentes De Un Sistema Computacional[1].
Componentes De Un Sistema Computacional[1].
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadores
 
Jerarquía de Memoria
Jerarquía de Memoria Jerarquía de Memoria
Jerarquía de Memoria
 

Semelhante a 05.Manejo de interrupciones

MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2
Luis Zurita
 
Introducción pic 16 f 84 universidad de la marina mercante
Introducción pic 16 f 84   universidad de la marina mercanteIntroducción pic 16 f 84   universidad de la marina mercante
Introducción pic 16 f 84 universidad de la marina mercante
Daniel Remondegui
 

Semelhante a 05.Manejo de interrupciones (17)

PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdfPLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontrolador
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2
 
Cartilla pic16f877
Cartilla pic16f877Cartilla pic16f877
Cartilla pic16f877
 
Práctica05.Interrupciones en Arduino
Práctica05.Interrupciones en ArduinoPráctica05.Interrupciones en Arduino
Práctica05.Interrupciones en Arduino
 
Introduccion_a_los_Microcontroladores_v2.ppt
Introduccion_a_los_Microcontroladores_v2.pptIntroduccion_a_los_Microcontroladores_v2.ppt
Introduccion_a_los_Microcontroladores_v2.ppt
 
Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2
 
Lab 01 micro
Lab 01 microLab 01 micro
Lab 01 micro
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5
 
INTERRUPCIONES.ppt
INTERRUPCIONES.pptINTERRUPCIONES.ppt
INTERRUPCIONES.ppt
 
Introducción pic 16 f 84 universidad de la marina mercante
Introducción pic 16 f 84   universidad de la marina mercanteIntroducción pic 16 f 84   universidad de la marina mercante
Introducción pic 16 f 84 universidad de la marina mercante
 
G UÍ A R E G I S T R O S P I C16 F873
G UÍ A  R E G I S T R O S  P I C16 F873G UÍ A  R E G I S T R O S  P I C16 F873
G UÍ A R E G I S T R O S P I C16 F873
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de Interrupciones
 
02e.Memoria de programa
02e.Memoria de programa02e.Memoria de programa
02e.Memoria de programa
 
Interrupciones de la bios
Interrupciones de la biosInterrupciones de la bios
Interrupciones de la bios
 
Diapositiva de estudios: PPT - Microchip PIC18.pdf
Diapositiva de estudios: PPT - Microchip PIC18.pdfDiapositiva de estudios: PPT - Microchip PIC18.pdf
Diapositiva de estudios: PPT - Microchip PIC18.pdf
 
Flags de interrupciones
Flags de interrupcionesFlags de interrupciones
Flags de interrupciones
 

Mais de Jonathan Ruiz de Garibay

Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectos
Jonathan Ruiz de Garibay
 

Mais de Jonathan Ruiz de Garibay (20)

Vocaciones STEM
Vocaciones STEMVocaciones STEM
Vocaciones STEM
 
Configuraciones con transistores BJT
Configuraciones con transistores BJTConfiguraciones con transistores BJT
Configuraciones con transistores BJT
 
Amplificadores Multietapa
Amplificadores MultietapaAmplificadores Multietapa
Amplificadores Multietapa
 
Amplificación de señal con BJT
Amplificación de señal con BJTAmplificación de señal con BJT
Amplificación de señal con BJT
 
Recta de carga para señal
Recta de carga para señalRecta de carga para señal
Recta de carga para señal
 
Práctica09.Librerías
Práctica09.LibreríasPráctica09.Librerías
Práctica09.Librerías
 
Práctica08.Comunicaciones
Práctica08.ComunicacionesPráctica08.Comunicaciones
Práctica08.Comunicaciones
 
Práctica06.Controlando Motores
Práctica06.Controlando MotoresPráctica06.Controlando Motores
Práctica06.Controlando Motores
 
Práctica04.Programando Arduino
Práctica04.Programando ArduinoPráctica04.Programando Arduino
Práctica04.Programando Arduino
 
Práctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada SalidaPráctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada Salida
 
Programación Basada en Autómatas
Programación Basada en AutómatasProgramación Basada en Autómatas
Programación Basada en Autómatas
 
Introduccion a la Programación
Introduccion a la ProgramaciónIntroduccion a la Programación
Introduccion a la Programación
 
Fundamentos de los Microcontroladores
Fundamentos de los MicrocontroladoresFundamentos de los Microcontroladores
Fundamentos de los Microcontroladores
 
Polarización de los Transistores
Polarización de los TransistoresPolarización de los Transistores
Polarización de los Transistores
 
Programación en Arduino
Programación en ArduinoProgramación en Arduino
Programación en Arduino
 
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
 
Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectos
 
01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral
 
02.El Soporte Visual
02.El Soporte Visual02.El Soporte Visual
02.El Soporte Visual
 
Trabajo en equipo
Trabajo en equipoTrabajo en equipo
Trabajo en equipo
 

05.Manejo de interrupciones

  • 1. Sistemas Basados en Microprocesadores Manejo de Interrupciones
  • 2. Interrupciones  Una interrupción es un evento que es identificado por el µcontrolador, y que interrumpe el proceso normal de un programa.  Cuando finaliza la atención de la interrupción se continua en el punto donde se había interrumpido el programa.  Los eventos o fuentes de interrupción son muchos y muy variados:  Interrupción externa por flanco, por cambio de estado, por fin de temporización… http://paginaspersonales.deusto.es/jonathan.garibay/
  • 3. Interrupciones (continuación…)  Los µcontroladores PIC incluyen un sistema de interrupciones basado en dos niveles de prioridad.  Una interrupción de alta prioridad puede interrumpir el tratamiento de una de baja prioridad pero no a la inversa.  Porcompatibilidad, el sistema de interrupciones con prioridades está desactivado por defecto de forma que se trabaja sin prioridades.  El bit IPEN del registro RCON habilita (1) o no (0) el sistema de prioridades de los PIC18. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 4. Interrupciones (continuación…)  Cuando se produce una interrupción, se realiza una llamada automática a la rutina de interrupción.  Las rutinas de interrupción tienen una posición específica dentro de la memoria de programa.  0x0008 para la rutina de interrupción de alta prioridad.  0x0018 para la rutina de interrupción de baja prioridad.  Si no se usan prioridades, sólo existe un único vector y está situado en la posición 0x0008. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 5. Interrupciones (continuación…)  Cada fuente de interrupción se controla por medio de 3 bits:  Bit de prioridad: permite asignar a cada fuente de interrupción una prioridad alta (1) o baja (0).  Siempre se llama xxIP (donde “xx” es el nombre de la fuente de interrupción).  Bit de habilitación: permite habilitar (1) o no (0) cada fuente de interrupción.  Siempre se llama xxIE  Bit de señalización o “Flag”: informa que se ha detectado (1) o no (0) una interrupción.  Siempre se llama xxIF http://paginaspersonales.deusto.es/jonathan.garibay/
  • 6. Interrupciones (continuación…)  Las interrupciones tienen un habilitador global además del habilitador individual de cada fuente de interrupción:  El bit GIE/GIEH del registro INTCON:  Si se usan prioridades (bit GIEH). habilita las interrupciones configuradas como de alta prioridad.  Si no se usan prioridades (bit GIE), habilita todas las interrupciones que tenga su habilitador individual activado.  El bit PEIE/GIEL del registro INTCON:  Si se usan prioridades (bit GIEL), habilita las interrupciones configuradas como de baja prioridad.  Si no se usan prioridades (bit PEIE), habilita las interrupciones relacionadas con periféricos del µcontrolador. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 7. Interrupciones (continuación…)  Loshabilitadores globales se ponen a 0 cuando se produce una interrupción. Se pone a 1 con la  Si no hay prioridades sólo el bit GIE. instrucción retfie  Si hay prioridades, el bit GIEH o el GIEL, dependiendo de la prioridad de la interrupción generada.  Losflags individuales se ponen a 1 cuando se produce su interrupción correspondiente.  Es necesario ponerlos a 0 manualmente para que no salte de nuevo la interrupción (sin haberse producido).  Aunque la interrupción no esté habilitada, el flag se pone a 1 cuando sucede el evento, pero no salta la interrupción. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 8. Interrupciones (continuación…)  Instrucciones de control  retfie: regreso de interrupción con habilitación (pone a 1 los bits GIE, GIEH o GIEL según corresponda) Tipo de evento Bits afectados No hay prioridades GIE Hay prioridades y se ha generado una GIEH interrupción de alta prioridad Hay prioridades y se ha generado una GIEL interrupción de baja prioridad http://paginaspersonales.deusto.es/jonathan.garibay/
  • 9. Interrupciones de E/S  Hay dos tipos de interrupciones de E/S diferentes en los PIC18:  3 interrupciones externas independientes (INT0 con la línea RB0, INT1/RB1 e INT2/RB2).  Se produce al detectar un flanco, ascendente o descendente, configurable por medio del bit INTEDGx.  Se puede utilizar para el control de interruptores, pulsadores o cualquier dispositivo que genere un señal digital.  La interrupción INT0 no dispone del bit de prioridad, y se considera siempre como de prioridad alta.  Interrupción por cambio de estado en <RB4:RB7>.  Se produce cuando cambia el estado (pasar de „0‟ a „1‟ o de „1‟ a „0‟) de cualquiera de las 4 líneas.  Se utiliza principalmente para el control de teclados matriciales. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 10. Interrupciones de E/S (continuación…)  Trabajo personal:  Diferenciar entre la E/S programada y la E/S por interrupción. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 11. Registros de Manejo de Interrupciones Habilitadores Flags individuales Habilitadores globales Depende del valor del bit IPEN http://paginaspersonales.deusto.es/jonathan.garibay/
  • 12. Registros de Manejo de Interrupciones (Continuación…) Prioridades Bits de configuración específicos de una interrupción http://paginaspersonales.deusto.es/jonathan.garibay/
  • 13. Registros de Manejo de Interrupciones (Continuación…) … … http://paginaspersonales.deusto.es/jonathan.garibay/
  • 14. Ejemplo de funcionamiento org 0x00 0x0000 inicio goto inicio Pila … PC 31 0x0008 btfss INTCON,RB0IF 30 0x000A retfie 0x000C bcf INTCON,RB0IF 29 0x000E incf PORTA, F … 0x0010 retfie 0 … 0x003A inicio clrf TRISA INTCON 0x003C movlw 0xF0 0x003E movwf TRISB 0x0040 clrf PORTA PORTA PORTB 0x0042 bsf INTCON,RBIE 0x0044 bcf INTCON,RBIF 0x0046 bsf INTCON,GIE 0x0048 bucle goto bucle … http://paginaspersonales.deusto.es/jonathan.garibay/
  • 15. Resumen  Cuando se produce una interrupción:  Se pone a „1‟ el bit de flag de la interrupción causante.  Se pone a „0‟ el bit global de habilitación.  Si no hay prioridades, se pone a „0‟ el bit GIE.  Si hay prioridades, se pone a „0‟ el bit GIEH o GIEL, según corresponda.  Se carga en el PC la dirección del vector de interrupción.  Si no hay prioridades, se carga la dirección 0x0008.  Si hay prioridades, se carga la dirección 0x0008 o 0x0018, según corresponda. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 16. Resumen (Continuación…)  Para atender una interrupción:  Se busca la interrupción causante mirando el bit de flag.  Se va a la rutina de interrupción específica:  Se pone a „0‟ el bit de flag de la interrupción.  Se atiende la interrupción.  Se finaliza la rutina con la instrucción retfie.  Si no se encuentra la interrupción se finaliza la rutina con la instrucción retfie. Si se da este caso, esto nos indica que hay un error en la programación. http://paginaspersonales.deusto.es/jonathan.garibay/