It is clear in sample code and explanation that we can use TAIV to recognize the source of timer interrupt, ie. capture/compare or timer overflow. Tried several times, and found that TAIV always reset to zero in its Interrupt Service Routine. So the following code does not work.
>> // Timer A1 interrupt service routine #pragma vector=TIMERA1_VECTOR
>> __interrupt void Timer_A1 (void){
>>
>> switch (TAIV) {
>> case TAIV_TAIFG:
>> Event |= ev_timer;
>> break;
>> default:
>> break;
>> }
>>
Any other techniques like copying TAIV to variable, also did not work. Debugging with Code Composer Studio, reveals that after step executing just one assembly line code in Timer ISR, TAIV is reset from 0x000A to 0x0000, which make it useless.
Please find attached screen capture. I am not sure what had gone wrong.