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:DriverLib 中的 ASysCtl_selectCMPHPMUX 和 ASysCtl_selectCMPLPMUX 函数

Guru**** 2522770 points
Other Parts Discussed in Thread: C2000WARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/679557/tms320f280049-asysctl_selectcmphpmux-and-asysctl_selectcmplpmux-functions-in-driverlib

器件型号:TMS320F280049
主题中讨论的其他器件:C2000WARE

大家好、香榭丽舍、

我的客户在 C2000Ware 中使用 F28004x 和 driveilib (v1_00_04_00)。

他们发现的一个问题是、ASysCtl_selectCMPHPMUX 和 ASysCtl_selectCMPLPMUX 函数中的操作似乎不正确。

由于要在这2个函数中操作的寄存器是32位的、而定义的宏不是默认为32位的、因此当移位运算结果超过65535时、将会出现错误、因此下面的代码:

(ASHSCTL_CMPLPLXSEL_CMP1LPMXSEL_M <<(uint32_t)选择)

应修改为:

(((uint32_t) ASYSCTL_CMPLXSEL_CMP1LPMXSEL_M <<(uint32_t)选择)

您能否检查它是否为真、或者我们是否将在将来的版本中进行更正?

此致、

张卫健

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Ricky,

     当换档操作使结果超过65535时、他们是否看到错误?

    使用以下参数进行尝试时、结果可在 RESP 寄存器中看到。

    ASysCtl_selectCMPLPMUX (ASYSCTL_CMPLPMUX_SELECT_7、4); ->结果 -> 200000
    ASysCtl_selectCMPLPMUX (ASYSCTL_CMPLPMUX_SELECT_7、2);->结果-> 100000

    与 ASysCtl_selectCMPHPMUX 类似。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Meghana、

    我向客户询问了这个问题、但他们没有对其进行测试、还向我提供了反馈。

    我想没有报告错误、但他们很怀疑结果会溢出、然后就会错误。

    此致、

    张卫健

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Ricky,

    即使移位操作使结果超过65535且为逻辑左移、结果也是正确的。
    问题是它们删除了先前配置的数据。
    我们将在未来的版本中解决此问题。

    此致。