MSP:ISR

Manejo de interrupciones de los MSP430 con CCS4
Para entender toda la esta configuración se recomienda visitar primero el ejemplo MSP:Blink a Led. Este ejemplo hace de la tarjeta eZ430RF2500T, esta tarjeta tiene un pulsador conectado al puerto P1.2 sin resistencia de pull-up externa. De igual manera tiene un led conectado al puerto P1.1.

Configuración y programa principal
Para esto se debe configurar el pin 1 del puerto 1 como salida P1DIR |= 0x01; por defecto los demás pines se encuentran configurados como entradas. Para configurar las interrupciones se debe:
 * Configurar el flanco de la interrupción para esto se usa el registro P1IES (P1 Interrupt Edge Set) con el valor de 0x04 (1 en el bit 2) con esto se habilita la interrupción por flanco de subida. (0= flanco de bajada, 1= flanco de subida)
 * Habilitar la interrupción del puerto 1 para el pin 2, esto se logra mediante la escritura del valor 0x04 en el registro P1IE (P1Interrupt Enable)
 * Habilitar la resistencia de pull-up interno mediante el registro P1REN (P1 Resistor ENable)
 * Por seguridad deshabilitar la bandera de interrupción para el pin 2 del puerto 1. P1IFG (P1 Interrupt FlaG)
 * Habilitar el vector general de interrupciones, esto se puede hacer mediante la función __enable_interrupt.

Por último se debe crear un ciclo infinito donde el procesador deberá realizar la tarea principal. Para este caso hacer nada, por esto se envía a modo de bajo consumo 3 (ver modos de consumo dentro de la hoja de datos del procesador MSP430).

Rutina de interrupción
Para crear la rutina de interrupción se debe definir una directiva del preprocesador llamada pragma con el parametro vector= esto permite definir que vector de interrupciones será el asignado para esta función, para este ejemplo se utiliza el vector de interrupción PORT1_VECTOR. A continuación se declara la función o rutina de interrupción como __interrupt void Nombre_de_la_función.

En esta rutina de interrupción se ralizan las siguientes acciones:
 * Cambiar de estado el valor del LED y borrar la bandera de la interrupción en cuestión.

El proyecto completo se puede descargar de