Manejo de Interrupciones Tarjeta Alteri PIC18F4550 Compilador C18

 

En este apartado mostraremos una plantilla de guía para implementar un programa utilizando interrupciones con la placa Alteri y el compilador C18. La única diferencia al implementar interrupciones con la placa Alteri es el remapeo de vectores de interrupción debido al Bootloader que reside en el microcontrolador. Dicho remapeo de vectores es necesario para que el programa del usuario no traslape el Bootloader. 

Normalmenre en un PIC18F4550 sin Bootloader los vectores de interrupción se encuentran ubicados en las siguientes direcciones de memoria:

interrupciones pic18f4550

interrupciones pic18f4550

El Bootloader de la placa Alteri ocupa el espacio de memoria de la dirección 0000h hasta la dirección 1000h del microcontrolador. Para utilizar interrupciones es necesario realizar un “Offset” de dichos vectores para así respetar las direcciones de memoria ocupadas por el Bootloader. En la siguiente imagen se observan las nuevas direcciones de memoria para los vectores de interrupción:

interrupciones pic18f4550

interrupciones pic18f4550

Ahora el vector de Alta Prioridad corresponde a la dirección 1008h y el vector de Baja Prioridad a la dirección 1018h. A continuación se muestra un programa plantilla para utilizar interrupciones con la placa Alteri. En dicha plantilla se realiza el remapeo de vectores a sus direcciones correspondientes respetando el área del Bootloader.

En esta plantilla se considera que se encuentran activadas las prioridades de interrupción. Si en su aplicación no utiliza prioridades puede eliminar las líneas de código relacionadas con los vectores y funciones de baja prioridad, quedando como único vector de interrupción la dirección de memoria 1008h.

Nota: El vector de Reset se encuentra remapeado a la dirección 1000h en el archivo Alteri.h. Visite librería Alteri.h para más información.