主题中讨论的其他器件:SysConfig
您好!
我想使用计时器模块每500ms 捕获一个事件。 经过500ms 后、我需要将时间戳打印到 CCS 控制台终端上。
在这个500ms 时间窗口中的每个时间窗口内、我需要采集多个事件的时间戳并在 CCS 控制台终端上打印相应的时间戳。
请指导我如何操作。
谢谢
卡尔蒂克
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.
您好!
我想使用计时器模块每500ms 捕获一个事件。 经过500ms 后、我需要将时间戳打印到 CCS 控制台终端上。
在这个500ms 时间窗口中的每个时间窗口内、我需要采集多个事件的时间戳并在 CCS 控制台终端上打印相应的时间戳。
请指导我如何操作。
谢谢
卡尔蒂克
Karthik、您好、
您可以使用我们的 GPTimer 驱动程序及其"输入时间"模式:
我们没有遗憾地提供示例。
此致、
亚瑟
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 来验证这一点、并使用逻辑分析仪/示波器观察周期。
此致、
亚瑟
Karthik、您好、
我知道这是在 MSP430上实现它的方法。
不过、您可以将时间留给 RTOS/计时器驱动程序、以便为您安排这些事件。
例如、如果您在将来必须安排几个事件、则可以在 one_shot_callback 模式下使用 Timer.h:
并为每个事件安排回调、并最终在需要时再次触发。
此致、
亚瑟
Arthur、您好!
部分:15.3.2.3输入边沿计时模式
看起来我们可以设置一个从零到我们选择的任何值的递增计数器、并且可以设置事件捕获作为时间窗口内的中间步骤。
您在之前的回答中指出了有关此模式的讨论。 但讨论似乎不是结论性的,我不确定这是否起作用。
您能举个例子说明如何在这种模式下使用 GPTimer 吗?
谢谢
卡尔蒂克
Karthik、您好、
如 SysConfig 中所示、GPTimer 复选框允许您在以下驱动程序之间进行选择:
至于你的另一个问题,我必须阅读更多有关它,但我会找到答案。
此致、
亚瑟