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.

TMS320F280049: LIN_disableSCIInterrupt() bug in F28004x Support Library?

Part Number: TMS320F280049
Other Parts Discussed in Thread: C2000WARE

referring to F28004x Support Library v1.11.00.00 or C2000Ware_MotorControl_SDK_4_00_00_00

In c2000ware/driverlib/f28004x/driverlib/lin.h the function LIN_disableSCIInterrupt() contains the following line:

HWREG_BP(base + LIN_O_SCICLEARINT) |= intFlags;

The read-modify-write will first read the current state (1 means enabled). Writing 1 to any bit then disables the associated interrupt.
So this function disables all enabled interrupts, not only the ones specified by intFlags as supposed.

It should be:

HWREG_BP(base + LIN_O_SCICLEARINT) = intFlags;

Similarly for LIN_enableSCIInterrupt(), but here it just re-enables already enabled interrupts.