Tengo un MSP430G2101 y necesito usar el Watchdog para activar una interrupción. El código que estoy tratando de usar es el siguiente:
#include <msp430.h>
#include <stdint.h>
unsigned int cycle = 0;
unsigned int pwmred = 1;
void main(void)
{
WDTCTL = WDT_MDLY_0_5; // WDT as interval timer (period 0,5 ms)
IE1 |= WDTIE; // Enable WDT interrupt
P1DIR |= BIT3 + BIT4 + BIT5;
_BIC_SR(GIE);
while(1)
{
}
}
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
cycle++;
if(cycle >= pwmred) {
P1OUT &= ~BIT3;
}
if (cycle >= 255)
{
if(pwmred > 0)
P1OUT |= BIT3;
cycle = 0;
}
}
La interrupción no se está activando, estoy verificando el uso del depurador y tampoco está actuando como expectativa. Estoy usando la última versión de Code Composer Studio. ¿Olvidé algo importante? Espero que se llame al método watchdog_timer cada 0,5 ms, pero eso no funciona.