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.

Compiler/TMS320F28069M: TMS320F28069M

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..

  • Robert,

    I've assigned you post to a C2000 expert, due to the US holiday we will reply back to you no later than July 8th end of day US Central time.

    Best,

    Matthew

  • 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