6 Interrupciones
6 Interrupciones
6 Interrupciones
UNIVERSIDAD MARIANA
FACULTAD DE INGENIERIA
INGENIERIA MECATRONICA
Teoría
1
Guía de laboratorio
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.).
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:
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:
• #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