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.

[参考译文] API-AM263X:用于 EPWM_setActionQualifierShadowLoadMode 的 MCU-PLUS-SDK 不工作?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1391531/mcu-plus-sdk-am263x-api-for-epwm_setactionqualifiershadowloadmode-not-working

器件型号:MCU-PLUS-SDK AM263X

工具与软件:

API ePWM_setActionQualifierShadowLoadMode 是否实际工作正常?  我使用的是 SDK 9.01版。

我在使用 CMPA 和 CMPB 寄存器同时更新 ePWM AQCTLA 寄存器时遇到了一些问题。  所以我深入到了 API 中。

当我在在线编译器中尝试该代码时、我得到的输出为0x0、而当它应该为0x10以指示影子加载模式时。  请检查。

uint16_t aqModule = 0;
uint16_t syncModeOffset;
uint16_t shadowModeOffset;
uint16_t my_out;
syncModeOffset = 0x0008U + aqModule;
shadowModeOffset = 0x0004U + aqModule;
my_out =(((0x0000U 和((~(0x0003U << aqModule)|(0x0003U << syncModeOffset)))|(0x0001U << shadowModeOffset)))|((((0U >> 2U)<< syncModeOffset)|((0U 和0x0003U)<< aqModule)))))));
printf ("result 0x%x"、my_out);

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

    我尚未检查更旧的代码、但与8.06相比有变化:

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

    Daniel、您好!

    我能够重现此问题、并与软件团队联系以解决此问题。

    我会在收到一些信息后立即更新您的信息!

    此致、
    Akshit

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

    直接修复。  我注意到、LDAQASYNC 有一个掩码变量、但 SHADOWAQAMODE 没有、即使在其他文件中定义了该变量。
    引用 CSL_EPWM_AQCTL_LDAQASYNC_MASK。
    CSL_ePWM_AQCTL_SHDWAQAMODE_MASK 不是。

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

    Daniel、您好!

        HW_WR_REG16((base + CSL_EPWM_AQCTL),
            ((HW_RD_REG16(base + CSL_EPWM_AQCTL) &
            (~((CSL_EPWM_AQCTL_LDAQAMODE_MASK << (uint16_t)aqModule) |
            (CSL_EPWM_AQCTL_LDAQASYNC_MAX << (uint16_t)syncModeOffset))) |
            (CSL_EPWM_AQCTL_SHDWAQAMODE_MAX << shadowModeOffset)) |
            ((((uint16_t)loadMode >> 2U) << syncModeOffset) |
            (((uint16_t)loadMode & CSL_EPWM_AQCTL_LDAQAMODE_MASK) <<
            (uint16_t)aqModule))));

    这个错误似乎在括号里,我已经修复了,请尝试一下。  

    您可以看到 AQCTL 寄存器中的 ShadowMode 位已设置。

    如果这对你有用,让我知道!

    此致、
    Akshit

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

    方法。  您能告诉我 SDK 的哪个未来版本将修复此问题吗? 我知道9.0和8.6都是正确的。

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

    Daniel、您好

    MCU 和 SDK 10.00.00将进行此修复。 该版本计划在下个月发布。

    此致、
    Akshit