Part Number: LAUNCHXL-F280049C
Other Parts Discussed in Thread: C2000WARE
Hello
It seems C2000 default interrupt handler (Interrupt.h) fails to remove CPU timers 1 and 2 when ever they are registered by the application. Otherwise CPU timers may be enabled IE but there is no vectoring of application to either one. Yet when Timer 0 is enabled as PIE interrupt interferes with Group 1 channel interrupts timing on clear ACK Group 1 from either registered vector different interrupt source. How to fix this issue or was there an update to interrupt.h to fix this issue?
The TI project does not have a vector table but uses CPU Timer 0 for another experiment not in this application. Enabling unused timer 0 I discovered it interferes with another registered interrupt handler in Group1, the reason to use CPU timer 2 for 100ms reloads. Note CPU Timer1 and Timer TRB register is never togged 1 via register continuous refresh.

//*****************************************************************************
//
//! \internal
//! The default interrupt handler.
//!
//! This is the default interrupt handler. The Interrupt_initVectorTable()
//! function sets all vectors to this function. Also, when an interrupt is
//! unregistered using the Interrupt_unregister() function, this handler takes
//! its place. This should never be called during normal operation.
//!
//! The ESTOP0 statement is for debug purposes only. Remove and replace with an
//! appropriate error handling routine for your program.
//!
//! \return None.
//
//*****************************************************************************
static void Interrupt_defaultHandler(void)
{
uint16_t pieVect;
uint16_t vectID;
//
// Calculate the vector ID. If the vector is in the lower PIE, it's the
// offset of the vector that was fetched (bits 7:1 of PIECTRL.PIEVECT)
// divided by two.
//
pieVect = HWREGH(PIECTRL_BASE + PIE_O_CTRL);
vectID = (pieVect & 0xFEU) >> 1U;
//
// If the vector is in the upper PIE, the vector ID is 128 or higher.
//
if(pieVect >= 0x0E00U)
{
vectID += 128U;
}
//
// Something has gone wrong. An interrupt without a proper registered
// handler function has occurred. To help you debug the issue, local
// variable vectID contains the vector ID of the interrupt that occurred.
//
ESTOP0;
for(;;)
{
;
}
}



