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.

[参考译文] MSPM0L1306:MSPM0L1306中的计时器捕获

Guru**** 2390755 points
Other Parts Discussed in Thread: MSPM0L1306

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1294236/mspm0l1306-timer-capture-in-mspm0l1306

器件型号:MSPM0L1306

大家好、我是在尝试捕获执行时隙前的时间和执行后的时间。 我尝试使用DL_TimerG_getCaptureCompareValue(CAPTURE_0_INST, DL_TIMER_CC_1_INDEX);,但捕获的值没有改变

您能  尽快帮我解决这个问题吗?

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

    您好、Prem

    我不确定您说的是: 时隙执行前的时间和执行后的时间。

    这一次指的是什么?

    您是否试图获得一个代码块的 执行时间?

    还是试图捕获外部信号的占空宽度? (由于您正在使用函数:DL_TimerG_getCaptureCompareValue)。

    请提供更多详细信息。

    此致、

    赫利克

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

    您好、Helic、

    非常感谢您的回复

    我们需要采集代码块的开始和结束执行时间、

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

    尽管 SysTick 是倒计数计时器、但它可能是更适合用于此目的的计时器。

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

    尊敬的 Keith:

    非常感谢 Keith、

    您能否为 SysTick 计时器提供任何参考

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

    来自 TRM:

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

    非常感谢 

    我很快就会验证并向您提供更新。

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

    您好、 

    感谢您的回复,Keith

    以下是捕获代码执行时间的示例代码:

    首先在 syscfg 中启用系统节拍、并设置足够大的 Load 值。

        /**
         * System tick
         */
        //Start System Tick
        SysTick->CTRL = (SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk);
        //Calculate System Tick Read Cycles
        SysTickStr = SysTick->VAL;
        SysTickStp = SysTick->VAL;
        SysTickRd  = SysTickStr - SysTickStp;
        //Calculate:
        SysTickStr = SysTick->VAL;
        //User code Start
    
        //User code End
        SysTickStp = SysTick->VAL;
        SysTickCnt1 = SysTickStr - SysTickStp - SysTickRd;
        //SysTickCnt1 is the result

    此致、

    赫利克

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

    您好、 

    非常感谢您的回复、我们如何在计时器启动和停止中实现相同的功能

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

    你好、 

    您可以从 以下代码示例开始: timx_timer_mode_one_shot_standby_lp_MSPM0L1306_nortos_ticlang

    只需使用该代码示例开始使用计时器计算 exe 时间:

    DL_TimerG_startCounter(TIMER_0_INST);
    //User code
    //Read current counter value
    counter_read = counter_register

    以下是计数器值:

    赫利克

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

    非常感谢 、Helic 和  问题已经解决