top of page
Adal

MPLAB X 2 Botón de Interrupciones

Hoola!

Con esta practica, utilizaremos el botón S2 de la Xpress Board para encender y apagar un Led de la placa cada que se presione un botón, todo esto mediante Interrupciones y no Polling


Después de crear un New Proyect (Ctrl+Mayus+N) y acceder a MCC, del lado izquierdo en Device Resourses, tenemos que buscar Ext_Interrupt y darle en el mas verde que esta al lado de EXT_INT


Después nos enviara a una ventana para configurar las Interrupciones, donde dice Edge Detect, la cambiaremos de rising edge a Falling Edge, esto es porque en el Hardware de la placa, ese pin siempre esta "Viendo" 3.3v, entonces queremos que nuestro cambio suceda cuando presionamos el bototon, es decir cuando el micro leea 0V, es decir un flanco de bajada


En el Pin Manager ponemos el candadito en RA5 a la Function INT, mientras que RA0-RA3 los ponemos como GPIO´s de salida. Generamos los archivos del MCC y nos salimos del MCC


Ahora en el archivo ext_int.c que nos creo el MCC, buscaremos una funcion llamada INT_ISR, dentro de esta escribiremos después de borrar la bandera (esto lo genera automáticamente MCC y es el comando EXT_INT_InterruptFlagClear(); ), lo que queremos que pase en la interrupción, en mi caso solamente quiero que cambie de estado cada que presiono el boton, es por eso que utilizare un Toggle del esto del bit, LATAbits.LATA0=!LATAbits.LATA0;


Regresando a Main.c, tenemos que habilitar las Interrupciones Globales, esto es así por la arquitectura del Microcontrolador, solamente con descomentar la linea INTERRUPT_GlobalInterruptEnable(); es suficiente para hiablitar las Interrupciones Externas.

Yo solamente enciendo el Led D5 como testigo de que el micro si quedo programado, pero eso no tiene nada que ver con lo que queremos que haga nuestro micro con las interrupciones


Finalmente compilamos y subimos el archivo .Hex a la Xpress Board (este paso esta más detallado en la entrada 1 Hola Mundo), y si todo sale bien, nuestro Led D2 debería de estar prendiendo y apagando, cada que presionamos el botón S2





13 visualizaciones0 comentarios

Entradas recientes

Ver todo

Comments


bottom of page