あなたの質問に対する一般的な答えは、現在呼び出されている割り込みを検出する直接的な方法はありません。ただし、各割り込みには独自の割り込みフラグがあるため、割り込みの各フラグを確認できます。実際に呼び出された割り込みを処理していることを確認するために、フラグを有効にする必要があります。また、MSP430 のタイマーには、A1 ハンドラーで何を処理するかを指示できるベクトル TAIV があります。TAIV のケース 0 は、A1 ハンドラーの割り込みがなかったため、A0 ハンドラーであると想定できます。
私は次のようなことをします。
#pragma vector=TIMERA0_VECTOR
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A (void)
{
switch (TAIV) // Efficient switch-implementation
{
case TAIV_NONE: // TACCR0 TIMERA0_VECTOR
break;
case TAIV_TACCR1: // TACCR1 TIMERA1_VECTOR
break;
case TAIV_TACCR2: // TACCR2 TIMERA1_VECTOR
break;
case TBIV_TBIFG: // Timer_A3 overflow TIMERA1_VECTOR
break;
default;
break;
}
ServiceWatchdogTimer();
}