interrupciones externas

5
Curso de Microcontroladores Introducción Interrupciones PIC18FXXX Ing. Germán Jesús Pereira Muñoz 02/08/10 1 Ing. Germán Pereira Muñoz Microprocesador PIC Familia 40 pin Registros Interrupciones Externas 0 1 2 TRISB Bit = 1 PORTB Bit como entrada TRISB Bit = 0 PORTB Bit como salida 02/08/10 3 Ing. Germán Pereira Muñoz Ejemplo de Inicializacion del PORTB como I/O Digital PORTB = 0x00; // Limpiando los latches de salida del PORTB (PORTB = 0) LATB = 0x00; // Metodo alternativo para limpiar los latches de salida ADCON1 = 0x0F; // Configurando A/D para entrada digital CMCON = 0x07; // Configurando los comparadores como entrada digtal TRISB = 0xCF; // Ej de Configuracion del PORTB( RB<3:0> y RA<6:7> como entrada // RB<5:4> como salida )

description

interrupciones externas

Transcript of interrupciones externas

Page 1: interrupciones externas

Curso de Microcontroladores

Introducción Interrupciones PIC18FXXX

Ing. Germán Jesús Pereira Muñoz

02/08/10 1Ing. Germán Pereira Muñoz

• Microprocesador

PIC

• Familia 40 pin

Registros Interrupciones Externas 0 1 2

• TRISB Bit = 1 PORTB Bit como entrada

• TRISB Bit = 0 PORTB Bit como salida02/08/10 3Ing. Germán Pereira Muñoz

Ejemplo de Inicializacion del PORTB como I/O Digital

PORTB = 0x00; // Limpiando los latches de salida del PORTB (PORTB = 0)

LATB = 0x00; // Metodo alternativo para limpiar los latches de salida

ADCON1 = 0x0F; // Configurando A/D para entrada digital

CMCON = 0x07; // Configurando los comparadores como entrada digtal

TRISB = 0xCF; // Ej de Configuracion del PORTB( RB<3:0> y RA<6:7> como entrada // RB<5:4> como salida )

Page 2: interrupciones externas

Registros PORTB, TRISB y

LATBPart I

02/08/10 4Ing. Germán Pereira Muñoz

Lógica de Interrupciones

02/08/10 5Ing. Germán Pereira Muñoz

Vectores de Interrupcion en la

memoria de programa

02/08/10 6Ing. Germán Pereira Muñoz

Vector de Reset

Vector de Interrupcion alta Prioridad

Vector de Interrupcion baja Prioridad

Page 3: interrupciones externas

Registro RCON (Reset Control Register)

02/08/10 7Ing. Germán Pereira Muñoz

– IPEN: Bit de habilitación de prioridades en las interrupciones

* IPEN=‘0’: Sistema de prioridad en las interrupciones deshabilitado* IPEN=‘1’: Sistema de prioridad en las interrupciones habilitado

Registro INTCON (Part1)

02/08/10 8Ing. Germán Pereira Muñoz

– GIE/GIEH: Bit de habilitación global de las interrupciones. Su función depende del valor de IPEN:

IPEN=‘0’:* GIE=‘0’: Interrupciones deshabilitadas a nivel global* GIE=‘1’: Interrupciones habilitadas a nivel global

IPEN=‘1’:* GIEH=‘0’: Interrupciones de alta prioridad deshabilitadas a nivel global* GIEH=‘1’: Interrupciones de alta prioridad habilitadas a nivel global

– PEIE/GIEL: Bit de habilitación global de las interrupciones de periféricos. Su función depende del valor de IPEN:

IPEN=‘0’:* PEIE=‘0’: Interrupciones de periféricos deshabilitadas a nivel global* PEIE=‘1’: Interrupciones de periféricos habilitadas a nivel global

IPEN=‘1’:* GIEL=‘0’: Interrupciones de baja prioridad deshabilitadas a nivel global

* GIEL=‘1’: Interrupciones de baja prioridad habilitadas a nivel global

02/08/10 9Ing. Germán Pereira Muñoz

– TMR0IE: Bit de habilitación de la interrupción de desbordamiento del Temporizador 0* TMR0IE=‘0’: Interrupción de desbordamiento del Temporizador 0 deshabilitada* TMR0IE=‘1’: Interrupción de desbordamiento del Temporizador 0 habilitada

– INT0IE: Bit de habilitación de la interrupción externa 0* INT0IE=‘0’: Interrupción externa 0 deshabilitada* INT0IE=‘1’: Interrupción externa 0 habilitada

– RBIE: Bit de habilitación de la interrupción por cambio en el Puerto B* RBIE=‘0’: Interrupción por cambio en el Puerto B deshabilitada* RBIE=‘1’: Interrupción por cambio en el Puerto B habilitada

– TMR0IF: Flag de la interrupción de desbordamiento del Temporizador 0* TMR0IF=‘0’: No se ha producido desbordamiento del Temporizador 0* TMR0IF=‘1’: Se ha producido desbordamiento del Temporizador 0

– INT0IF: Flag de la interrupción externa 0* INT0IF=‘0’: No se ha producido un flanco en la línea RB0/INT0* INT0IF=‘1’: Se ha producido un flanco en la línea RB0/INT0

– RBIF: Flag de la interrupción por cambio en el Puerto B* RBIF=‘0’: No se ha producido ningún cambio en ninguna de las líneas RB7..RB4* RBIF=‘1’: Se ha producido ningún cambio en ninguna de las líneas RB7..RB4

Registro INTCON (Part2)

Page 4: interrupciones externas

02/08/10 10Ing. Germán Pereira Muñoz

Registro INTCON2

– RBPU: Bit de habilitación de las resistencias de pull-up del Puerto B:* RBPU=‘0’: Las resistencias de pull-up del Puerto B están activadas* RBPU=‘1’: Las resistencias de pull-up del Puerto B están desactivadas

– INTEDG0: Bit de selección de flanco de la interrupción externa 0:* INTEDG0=‘0’: La interrupción externa 0 se dispara por flanco de bajada* INTEDG0=‘1’: La interrupción externa 0 se dispara por flanco de subida

– INTEDG1: Bit de selección de flanco de la interrupción externa 1:* INTEDG1=‘0’: La interrupción externa 1 se dispara por flanco de bajada* INTEDG1=‘1’: La interrupción externa 1 se dispara por flanco de subida

– INTEDG2: Bit de selección de flanco de la interrupción externa 2:* INTEDG2=‘0’: La interrupción externa 2 se dispara por flanco de bajada* INTEDG2=‘1’: La interrupción externa 2 se dispara por flanco de subida

• Flanco de disparo de la interrupción 0 1 y 2

• El Pin RB0, RB1 y RB2 debe ser configurado como entrada

Flanco Ascendente

Flanco Descendente

02/08/10 11Ing. Germán Pereira Muñoz

– INT2IP: Bit de selección de prioridad de la interrupción externa 2* INT2IP=‘0’: Prioridad baja para la interrupción externa 2* INT2IP=‘1’: Prioridad alta para la interrupción externa 2

– INT1IP: Bit de selección de prioridad de la interrupción externa 1* INT1IP=‘0’: Prioridad baja para la interrupción externa 1* INT1IP=‘1’: Prioridad alta para la interrupción externa 1

– INT2IE: Bit de habilitación de la interrupción externa 2* INT2IE=‘0’: Interrupción externa 2 deshabilitada* INT2IE=‘1’: Interrupción externa 2 habilitada

– INT1IE: Bit de habilitación de la interrupción externa 1* INT1IE=‘0’: Interrupción externa 1 deshabilitada* INT1IE=‘1’: Interrupción externa 1 habilitada

– INT2IF: Flag de la interrupción externa 2* INT2IF=‘0’: No se ha producido flanco en la línea RB2/INT2* INT2IF=‘1’: Se ha producido flanco en la línea RB2/INT2

– INT1IF: Flag de la interrupción externa 1* INT1IF=‘0’: No se ha producido flanco en la línea RB1/INT1* INT1IF=‘1’: Se ha producido flanco en la línea RB1/INT1

Registro INTCON3

02/08/10 Ing. Germán Pereira Muñoz 12

Circuito de aplicación de la Int Ext

Page 5: interrupciones externas

02/08/10 Ing. Germán Pereira Muñoz 13

Programa de Interrupción (Part1)

02/08/10 Ing. Germán Pereira Muñoz 14

Programa de Interrupción (Part2)

02/08/10 Ing. Germán Pereira Muñoz 15

Programa de Interrupción (Part3)