Part Number: TMS320F28069M
Other Parts Discussed in Thread: MOTORWARE, C2000WARE, CONTROLSUITE
Tool/software: TI C/C++ Compiler
What is the best way to prioritize interrupt execution using the motorware libraries..
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: TMS320F28069M
Other Parts Discussed in Thread: MOTORWARE, C2000WARE, CONTROLSUITE
Tool/software: TI C/C++ Compiler
What is the best way to prioritize interrupt execution using the motorware libraries..
We have some information on interrupt nesting/prioritization on the C28x here: http://processors.wiki.ti.com/index.php/Interrupt_Nesting_on_C28x
There is also an example in C2000Ware (or controlSUITE) called sw_prioritized_interrupts that demonstrates it. If you want to use the MotorWare drivers, you'll need to find the equivalent functions for the various registers accesses, but the idea is the same.
Whitney
Thanks Whitney,
I have a follow-up question regarding the motorware PIE.c library and interrupts. It looks like there is a bug in the PIE_enableExtInt function. Can you check this. See below.
void PIE_enableExtInt(PIE_Handle pieHandle, const CPU_ExtIntNumber_e intNumber)
{
PIE_Obj *pie = (PIE_Obj *)pieHandle;
uint16_t index;
uint16_t setValue;
if(intNumber < CPU_ExtIntNumber_3)
{
index = 0;
setValue = 1 << (intNumber + 3);
}
else
{
index = 10; <<<<<<<<<<<<< I believe this index should be 11, not 10. The XINT3. See Table 1-119 in SPRUH18G Jan 2011 Rev 4/2017.
setValue = 1 << 0;
}
// set the value
pie->PIEIER_PIEIFR[index].IER |= setValue;
// set the bits
pie->XINTnCR[intNumber] |= PIE_XINTnCR_ENABLE_BITS;
return;
} // end of PIE_enableExtInt() function