Other Parts Discussed in Thread: MSP430F2272
I'm seeing somehting very weird. I'm using both USCIA (as UART) and USCIB as (I2C), basically my problem is that the program enters the IRQ and never leaves! even with all the interrupts serviced!.
This is basically my interrupt code:
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
if (IFG2 & UCA0RXIFG) {
// Asynch Receive char
char rx = UCA0RXBUF;
switch (gSerialRxState) {
// Lots of stuff here
}
} else {
if (IFG2 & UCB0RXIFG) {
USCIAB0RX_ISR();
}
}
}
Now the problem is that when I check the registers with my debugger this is the state of the special registers:
IE2
UCA0RXIE = 1
UCA0TXIE = 0
UCB0RXIE = 1
UCB0TXIE = 0
IFG2
UCA0RXIFG = 0
UCA0TXIFG = 1
UCB0RXIFG = 0
UCB0TXIFG = 0
So the interrupt flags are not set (probably because they were cleared the first time the interrupt code was executed), but the interrupt keeps entering inmeadiatly after it exeits, locking up the whole program.
Any help would be appreciatted.
Thanks,