Other Parts Discussed in Thread: SYSCONFIG
主题中讨论的其他器件: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.
Other Parts Discussed in Thread: SYSCONFIG
您好!
我想使用计时器模块每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 复选框允许您在以下驱动程序之间进行选择:
至于你的另一个问题,我必须阅读更多有关它,但我会找到答案。
此致、
亚瑟