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-CC1352P7:计时器事件捕获

Guru**** 2414260 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1246703/lp-cc1352p7-timer-event-capture

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

您好!

我想使用计时器模块每500ms 捕获一个事件。 经过500ms 后、我需要将时间戳打印到 CCS 控制台终端上。

在这个500ms 时间窗口中的每个时间窗口内、我需要采集多个事件的时间戳并在 CCS 控制台终端上打印相应的时间戳。

请指导我如何操作。

谢谢

卡尔蒂克

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

    Karthik、您好、

    您可以使用我们的 GPTimer 驱动程序及其"输入时间"模式:

    https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/docs/drivers/doxygen/html/_g_p_timer_c_c26_x_x_8h.html

    我们没有遗憾地提供示例。

    此致、

    亚瑟

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

    Arthur、您好!

    感谢您分享文档。 我已经看了它,无法实施它。

    感谢您提供示例。

    谢谢

    卡尔蒂克

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

    Karthik、您好、

    请查看此处描述的 initEdgeTimer: https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/907854/cc2652r-gptimercc26xx-timeout-interrupt-when-in-gpt_mode_edge_time_up

    它还显示了您在途中可能遇到的警告。

    此致、

    亚瑟

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

    Arthur、您好!

    如何仅在 GPTimer 值即将达到加载值时捕获该值?

    等等。 计时器的加载值为47999999 (用于每1秒生成一次中断)。

    在各个阶段尝试使用" GPTMERCC26XX_getValue" API 在应用中读取计时器值。

    在计时器回调函数中、尝试读取相同值、并注意到计时器值太低。 与加载值不匹配或与加载值不接近。

    是否仍有读取计时器的最大加载值(或更接近加载值的值)的方法?

    附加的源代码文件供参考(基于802.15.4的无线电计划每1秒传输一次)。 使用 CAPTURE_TIMER_COUNT 变量在代码中的几个位置读取计时器值。 在计时器回调中执行了相同的操作、但无法理解该值是否达到了加载的值。


    e2e.ti.com/.../rfPacketTx_5F00_Transmit_5F00_every1second.zip

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

    Karthik、您好、

    很抱歉耽误你的时间。

    看起来当应用程序进入 timerCallback 时、计时器内部的值已经不同于计时器值。

    这是正常行为、因为计时器不会停止以生成计时器回调。

    您为什么需要获取捕获计时器计数? 您可以假设 timerCallback 将作为正确的间隔执行。 您可以通过在计时器回调中切换 GPIO 来验证这一点、并使用逻辑分析仪/示波器观察周期。

    此致、

    亚瑟

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

    Arthur、您好!

    我需要启动一些事件(时间片)并在计数器达到特定值时采取措施。

    因此需要知道如何在代码的各个阶段跟踪计数器值。

    例如、MSP430支持捕获比较定时器模式、并且根据其中断对事件进行操作很简单。 这个芯片中是否有等效组件?

    谢谢

    卡尔蒂克

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

    Karthik、您好、

    我知道这是在 MSP430上实现它的方法。

    不过、您可以将时间留给 RTOS/计时器驱动程序、以便为您安排这些事件。

    例如、如果您在将来必须安排几个事件、则可以在 one_shot_callback 模式下使用 Timer.h:

    https://dev.ti.com/tirex/explore/node?node=A__AD0ghBnDPMQSci35.HFlFA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST

    并为每个事件安排回调、并最终在需要时再次触发。

    此致、

    亚瑟

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

    Arthur、您好!

    检查 GPTimer 和取消检查 GPTimer 之间有何区别?

    我可以看到 ti_drivers_config.h 为计时器和 GPTimer 定义了常数

    谢谢

    卡尔蒂克

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

    正在等待回复。

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

    Arthur、您好!

    部分:15.3.2.3输入边沿计时模式

    https://www.ti.com/lit/ug/swcu192/swcu192.pdf?ts = 1689167061633 &ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FCC2652R7

    看起来我们可以设置一个从零到我们选择的任何值的递增计数器、并且可以设置事件捕获作为时间窗口内的中间步骤。

    您在之前的回答中指出了有关此模式的讨论。 但讨论似乎不是结论性的,我不确定这是否起作用。

    您能举个例子说明如何在这种模式下使用 GPTimer 吗?

    谢谢

    卡尔蒂克

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

    Karthik、您好、

    如 SysConfig 中所示、GPTimer 复选框允许您在以下驱动程序之间进行选择:

    • Timer.h/TimerCC26XX.c:这是一个便携式驱动程序、意味着您可以重用在其他 TI 器件上使用这些器件编写的代码。
    • GPTimerCC26XX.c:该驱动程序可让您访问更多功能并更好地控制外设、这些功能特定于 CC26XX、因此不可移植到其他 TI 器件。

    至于你的另一个问题,我必须阅读更多有关它,但我会找到答案。

    此致、

    亚瑟