6 Interrupciones

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Guía de laboratorio

UNIVERSIDAD MARIANA
FACULTAD DE INGENIERIA
INGENIERIA MECATRONICA

Asignatura Semestre Corte Docente


Sistema Microcontrolados 5 Segundo Jorge Andrés Chamorro Enríquez

No. Lab Nombre laboratorio Lugar Fecha Duración


6 Interrupciones 3 horas
Programación de
Tema Sub tema Manejo de interrupciones
microcontroladores con PIC C

Objetivo general Competencias esperadas


Incentivar al estudiante para que Identificar los componentes básicos que conforman un
1
se apasione por el desarrollo de sistema de procesamiento de información elemental
hardware y software enfocados Construir pequeños circuitos que fundamenten la
2
hacia la construcción de existencia de aparatos electrónicos comunes
dispositivos simples con la Motivar en el estudiante la capacidad de análisis y crítica
herramienta fundamental, 3 sobre la optimización de materiales y espacio en cuanto al
microcontrolador, diseño y construcción de sistemas electrónicos simples.
específicamente PIC18F4550 en Optimizar la programación en lenguajes de alto nivel como
conjunto con la programación en PIC C, para aprovechar las características que ofrece un
PIC C 4
sistema de cómputo simple y potente como lo es el
microcontrolador de la familia Microchip PIC18F4550

Teoría

1
Guía de laboratorio

¿Qué son las interrupciones?


Imagina que estás cocinando, ya colocaste agua a hervir, ya licuaste todo lo necesario y de repente
tocan el timbre de tu casa, te están interrumpiendo, entonces tu función en ese momento será ir a
abrir la puerta, atender a la persona y cerrar la puerta, cuando terminas, regresas a cocinar, pero
no vuelves a empezar, sino que sigues cocinando desde donde te quedaste.

Cuando se activa una interrupción, el microcontrolador dejará de hacer lo que está haciendo para
realizar la función de interrupción que se haya declarado anteriormente, para después regresar a
donde se había quedado.

Una interrupción puede verse como un aviso que puede ser activado tanto por algún proceso
específico del microcontrolador (final de conversión del ADC, recepción de datos del módulo
EUSART, desborde de timer, etc) o por un cambio externo al mismo (cambio en algún puerto
específico, cambio de un pin, etc.).

Interrupciones en PIC C Compiler


En la pestaña View del PIC C Compiler podremos encontrar una casilla que dice “Interrupts”, en ella
tendremos la información de las interrupciones con las que cuenta nuestro microcontrolador. Por
ejemplo, para el caso del PIC 18F4550 encontraremos la siguiente lista:

• AD: Conversión completa del ADC


• BUSCOL: Colisión del bus
• CCP1: Captura o comparación en la unidad 1
• CCP2: Captura o comparación en la unidad 2
• COMP: Evento de comparación
• EEPROM: Escritura completa
• EXT: Interrupción externa (RB0)
• EXT1: Interrupción externa (RB1)
• EXT2: Interrupción externa (RB2)
• LOWVOLT: Bajo voltaje detectado
• OSCF: Fallo en el sistema del oscilador
• RB: Cambios en el puerto B (RB4:RB7)
• RDA: Datos recibidos disponibles RS232
• RTCC: Desborde del timer0 (RTCC)
• SPP: Puerto de retransmisión paralelo Escritura/Lectura
• SSP: Actividad SPI / I2C
• TBE: Buffer de transmisión vacío RS232
• TIMER0: Desborde de timer0
• TIMER1: Desborde de timer1
• TIMER2: Desborde de timer2
• TIMER3: Desborde de timer3
• USB: Actividad USB

La forma de activar las interrupciones es muy similar en todos los casos, tenemos que “avisarle” al
compilador que la función por describir será de interrupción y posteriormente agregar la función
como si fuera cualquier otra. De la siguiente forma:

• #int_XXXXX
• void XXXXX_isr(){
• //Declaramos la función de interrupción
• }

2
Guía de laboratorio

• }
Las “XXXX” deberán ser sustituidas por el nombre la interrupción a utilizar (lo podemos encontrar
en la sección de View -> Interrupts), por ejemplo, para activar la función de interrupción externa
(RB0), tendremos que sustituir por “EXT”. Quedando de la siguiente forma:

• #int_EXT
• void ext_isr(){
• //Función de interrupción externa (RB0)
• }
• }
Dentro de nuestra función main, tenemos que activar las interrupciones con las siguientes líneas:

• enable_interrupts(GLOBAL); //Habilita interrupciones


• enable_interrupts(int_XXXX); //Habilita interrupción deseada
Siguiendo el caso de la interrupción externa:

• enable_interrupts(GLOBAL); //Habilita interrupciones


• enable_interrupts(int_EXT); //Habilita interrupción externa (RB0)

Niveles de interrupción
En muchas ocasiones nuestros programas necesitan realizar varias tareas y algunas pueden ser
más importantes que otras, es por eso que cuando trabajamos con interrupciones podemos declarar
diferentes prioridades para ellas, entre más alta sea su prioridad más importante es la tarea a
realizar, entonces si se activa una interrupción de alta prioridad, no importa lo que esté realizando
nuestro programa (incluso aunque esté realizando otra función de interrupción de baja prioridad)
saltará a la función correspondiente y después regresará a donde estaba.

Para activar los niveles de prioridad en PIC C Compiler es necesario agregar la siguiente línea al
inicio de nuestro código:

• #device HIGH_INTS=TRUE //Activamos niveles de prioridad


Posteriormente será necesario especificar cuál de las interrupciones querremos configurar como
alta prioridad, para esto tendremos que agregar “HIGH” después de que declaremos que se estará
usando una función de interrupción, de la siguiente forma:

• #int_EXT1 HIGH
• void ext_isr(){
• //Función de interrupción de alta prioridad
• }
• }1
Procedimiento

1
https://www.intesc.mx/uso-de-interrupciones-pic-c-compiler/
3
Guía de laboratorio

1. Interrupción externa

4
Guía de laboratorio

5
Guía de laboratorio

2. Prioridad de interrupciones

6
Guía de laboratorio

7
Guía de laboratorio

Forma de Fecha de
Materiales Instrumental
evaluación. entrega
Nombre Cant. Multímetro
PIC18F4550 1 Fuente de poder
CAPACITOR (22pf) 2
RESISTENCIA (220 Ω) 2
FUENTE (5 V) 1
OSCILADOR
1
CRYSTAL (4–10 MHZ)
PROTOBOARD 1
ALAMBRE CONEXIÓN 1 mt
DISPLAY DE CRISTAL
LIQUIDO
1 • Revisión
PULSADOR montaje
NORMALMENTE 2 • Funcionamiento
ABIERTO
montaje
POTENCIOMETRO
1
(100 K)
SENSOR LM35 2
LEDS 3
CAPACITOR
4
ELECTROLITICO (1uf)
MOTOR PASO A
1
PASO
DRIVER L293 1
TECLADO MATRICIAL
1
4X4

También podría gustarte