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

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorLuis Zurita
 
Ejercicios logosoft con diagramas
Ejercicios logosoft con diagramasEjercicios logosoft con diagramas
Ejercicios logosoft con diagramasJacqueline Brioso
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4Luis Zurita
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"Diego Rojas Ruiz
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosEduardo Henriquez
 
Reporte de practica sumador binario
Reporte de practica sumador binarioReporte de practica sumador binario
Reporte de practica sumador binarioDiego Ramírez
 
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...SANTIAGO PABLO ALBERTO
 
Contadores a y s síncronos
Contadores a y s síncronosContadores a y s síncronos
Contadores a y s síncronosDiego Ayala
 
2 bit comparator (Digital Electronics)
2 bit comparator (Digital Electronics)2 bit comparator (Digital Electronics)
2 bit comparator (Digital Electronics)Shail Nakum
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisFabio Souza
 
direccionamiento microcontroladores pic
direccionamiento microcontroladores picdireccionamiento microcontroladores pic
direccionamiento microcontroladores piczfsasfasd
 

Mais procurados (20)

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensamblador
 
Mapeo de memoria
Mapeo de memoriaMapeo de memoria
Mapeo de memoria
 
Ejercicios logosoft con diagramas
Ejercicios logosoft con diagramasEjercicios logosoft con diagramas
Ejercicios logosoft con diagramas
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Unidad aritmética lógica (ALU)
Unidad aritmética  lógica (ALU)Unidad aritmética  lógica (ALU)
Unidad aritmética lógica (ALU)
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
 
Control de sistemas no lineales
Control de sistemas no linealesControl de sistemas no lineales
Control de sistemas no lineales
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
La aplicación e importancia de los circuitos, del algebra Booleana
La aplicación e importancia de los  circuitos, del algebra BooleanaLa aplicación e importancia de los  circuitos, del algebra Booleana
La aplicación e importancia de los circuitos, del algebra Booleana
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
Reporte de practica sumador binario
Reporte de practica sumador binarioReporte de practica sumador binario
Reporte de practica sumador binario
 
Señales con arduino y DAC
Señales con arduino y DACSeñales con arduino y DAC
Señales con arduino y DAC
 
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Electrónica digital: Comparadores
Electrónica digital: ComparadoresElectrónica digital: Comparadores
Electrónica digital: Comparadores
 
Contadores a y s síncronos
Contadores a y s síncronosContadores a y s síncronos
Contadores a y s síncronos
 
2 bit comparator (Digital Electronics)
2 bit comparator (Digital Electronics)2 bit comparator (Digital Electronics)
2 bit comparator (Digital Electronics)
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas Digitais
 
Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
direccionamiento microcontroladores pic
direccionamiento microcontroladores picdireccionamiento microcontroladores pic
direccionamiento microcontroladores pic
 

Destaque

Interrupciones de hardware
Interrupciones de hardwareInterrupciones de hardware
Interrupciones de hardwareSpiderHal
 
Interrupciones
InterrupcionesInterrupciones
Interrupcionesjcarlosl
 
Interrupciones
InterrupcionesInterrupciones
Interrupcionesmatrix1979
 
Interrupciones
InterrupcionesInterrupciones
Interrupcioneshandresrm
 
Excepciones del Microprocesador
Excepciones del MicroprocesadorExcepciones del Microprocesador
Excepciones del MicroprocesadorCarlos David
 
Procesadores segmentados arquitectura del computador
Procesadores segmentados arquitectura del computadorProcesadores segmentados arquitectura del computador
Procesadores segmentados arquitectura del computadorRene Sosa
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersmarco calderon layme
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativospeterluis04
 
Componentes De Un Sistema Computacional[1].
Componentes De Un Sistema Computacional[1].Componentes De Un Sistema Computacional[1].
Componentes De Un Sistema Computacional[1].Gerardo González
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazXavi Flores
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadoresDavid Narváez
 
Jerarquía de Memoria
Jerarquía de Memoria Jerarquía de Memoria
Jerarquía de Memoria yarbin
 

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

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.pdfSistemadeEstudiosMed
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontroladorPablo Ramos Garcia
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2Luis Zurita
 
Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2Gonzalo Gomez
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5Luis 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 mercanteDaniel Remondegui
 
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 F873Luis Zurita
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesJaime E. Velarde
 
Interrupciones de la bios
Interrupciones de la biosInterrupciones de la bios
Interrupciones de la biosCésar Salazar
 
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.pdfjorgejvc777
 

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
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Práctica05.Interrupciones en Arduino
Práctica05.Interrupciones en ArduinoPráctica05.Interrupciones en Arduino
Práctica05.Interrupciones en Arduino
 
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

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 DevelopmentJonathan 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 proyectosJonathan 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/