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.

[参考译文] MSPM0G3507:计时器捕获模式

Guru**** 2535150 points
Other Parts Discussed in Thread: MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1566682/mspm0g3507-timer-capture-mode

器件型号:MSPM0G3507


工具/软件:

我将使用该timx_timer_mode_capture_edge_capture_LP_MSPM0G3507_nortos_ticlang示例进行边沿捕获。

读取捕获值后、我想将捕获/比较值 (CC_01) 复位回零。 我尝试使用该DL_Timer_getCaptureCompareValue()函数、但它不起作用。

是否有办法在读取捕捉/比较值 (CC_01) 后将其复位为零?

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

    据我所知、CC 寄存器在捕获模式下是可写的。 我希望您可以使用以下类似工具:

    > DL_Timer_setCaptureCompareValue (CAPTURE_0_INST、0、DL_TIMER_CC_0_INDEX);

    请记住、这将引入一场比赛、您将失去在此期间到达的边缘的捕获值。 而且、这样做的价值并不明显。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“47378" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1566682/mspm0g3507-timer-capture-mode/6032058

    DL_Timer_setCaptureCompareValue (Capture_0_INST、0、DL_TIMER_CC_0_INDEX);

    [/报价]

    我使用了相同的功能、但它不起作用。

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

    您如何判断它不起作用? 您的测试用例是什么?

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

    我的测试设置使得我不会在捕获中断期间读取捕获值。 而是从另一个计时器中断定期读取它。 读取捕获寄存器值后、我想将其复位为零、这样如果下一个计时器周期中没有发生新的捕获、则读数为 0。

    但当我在读取后将捕获寄存器值写入 0 时、该值不会发生变化。

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

    我明白您的意思。 使用调试器打孔如果 CCC=1、则似乎无法写入 CC 寄存器。 [我有这个想法,我做过一次,但显然我没有仔细检查。]

    如果您的目标是避免使用 ISR 进行捕获、您可以轮询/清除原始中断状态(示例中为 RIS:CCD0)中的相关位。 [参考 TRM (SLAU846C) 表 27-40]

    【编辑:添加参考】