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.

[参考译文] LP-MSPM0L2228:如何对 TIMG12电流计数器值进行32位读取

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1395272/lp-mspm0l2228-how-to-do-a-32-bit-read-of-timg12-current-counter-value

器件型号:LP-MSPM0L2228
主题中讨论的其他器件:MSPM0L2228

工具与软件:

如何执行 TIMG12或 TIMG13的32位读取? 计数器值寄存器只有一个16位值、而用于读取寄存器的 SDK 功能强制进行16位读取。 我假设需要以某种方式执行两次16位读取。

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

    根据 docs、driverlib 函数返回一个32位值

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

    CTR 的位16-31被保留;当前计数值在位0 - 15中返回。 用于读取 CTR 的 SDK 函数会屏蔽位16 - 31。

    __static_inline uint32_t DL_Timer_getTimerCount (GPTIME_Regs *gptimer)

    返回(gptimer->COUNTERREGS. CTR 和 GPTIMER_CTR_CCTR_MASK);

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

    这可能是一个错误-您可以直接读取它-但高字保留用于*writing*,而不是*reading*

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

    实际上、掩码扩展为:

    #define GPTIMER_CTR_CCTR_MASK           ((uint32_t) 0xFFFFFFFFU)     /*!<当前计数器值*/
    根本没有什么面具!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我所拥有的 SDK 的掩码定义为:

    #define GPTIMER_CTR_CCTR_MASK ((uint32_t) 0x0000FFFFU)/*!<当前计数器值*/

    此定义位于: \ti\devices\msp\peripherals\hw_gptimer.h 中

    我拥有的 SDK 为:mspm0_sdk_2_00_01_00

    MSPM0L 参考手册我拥有: 文献编号:SLAU847D 2022年10月–2024年5月修订

    对于 TIMx CTR、它显示了以下内容。

    我在调试器中检查了 DL_Timer_getTimerCount 函数的反汇编:

    通过 uxth 指令应用掩码。

    你得到的东西和我得到的东西之间存在某种类型的失配。 我们使用的 MCU 选择符号是:__MSPM0L2228__。 我们在软件中还没有太多的功能、但我们拥有的是可以操作的——包括一个自由运行的16位定时器 TIMG0。 不确定两个掩码定义之间不匹配的来源是什么。 我还没有尝试使用 TIM12 (32位计数器)进行构建、似乎它不起作用、这正是我最初提出问题的原因。

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

    我刚刚将 Resource Explorer 设置到 MSPM0L2228 Launchpad 后拉出了计时器示例。

    您的 TRM 参考与我的相同。 到目前为止、我认为我们需要 TI 的评论。

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

    我还检查了较新版本的 SDK。 该版本中的掩码为0xFFFFFFFFU。 看上去已校正。 非常感谢您的帮助。