我有一个需求,需要查看指定的定时器的运行状态(停止、运行中等)。
查看Timer的API,感觉Timer_control可能能够实现此功能,但只在Timer.h文件中看到它的声明extern int_fast16_t Timer_control(Timer_Handle handle, uint_fast16_t cmd, void *arg);但并未对其支持的cmd命令进行详细的描述,能否有更详细的资料对其进行描述?谢谢
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.
我有一个需求,需要查看指定的定时器的运行状态(停止、运行中等)。
查看Timer的API,感觉Timer_control可能能够实现此功能,但只在Timer.h文件中看到它的声明extern int_fast16_t Timer_control(Timer_Handle handle, uint_fast16_t cmd, void *arg);但并未对其支持的cmd命令进行详细的描述,能否有更详细的资料对其进行描述?谢谢
extern void Timer_stop(Timer_Handle handle);这个能满足您查看指定的定时器的运行状态(停止)的需求吗
为了更好地了解计时器,您可以参考一些资源,其功能包括:
您还可以使用 CPU_MMAP 作为指导来引用寄存器,以查看正在使用的计时器(我喜欢引用 GPT0)。
您可以通过多种方式查看计时器的当前计数,例如使用timer.c/h 中的函数和查看寄存器(下图)。
另外,在 syscfg 本身中,“计时器(已添加 1)”旁边有一个“?” 标记,单击它会弹出一个额外的菜单,其中包含一些对于学习非常有用的额外选项
通过额外菜单中的“示例”找到的图像。
如果您需要更多支持,请包括:您的 SDK、您用于开发的基础示例 (SDK)、CCS 版本以及您对代码所做的任何修改。
我用的CCS版本是12.5.0;SDK版本是:simplelink_cc13xx_cc26xx_sdk_7_10_01_24;基于simple_peripheral项目。
我在看您给的链接,感谢。
如果Timer.h的接口API(比如Timer_open)、timer..h中的API(比如TimerEnable),以及GPTimerCC26XX.h中的API可以混用吗,会有什么问题吗
为了获取定时器已经运行了多长时间,我用了如下的实现,它基于以下3个前提
1、定时器的频率与CPU的频率相同。
2、定时器是向上计数。
3、Timer_getCount()实时获取当前定时器的计数寄存器的值
这2个前提与实际相符吗?
ClockP_FreqHz clockFreq; uint32_t ElapsedTime; ClockP_getCpuFreq(&clockFreq); uint32_t timer_freq_hz = clockFreq.lo; ElapsedTime = (uint32_t) (Timer_getCount(timer_handle) / timer_freq_hz);
GPTimerCC26XX.h中的API可以混用吗,会有什么问题吗
您不能混合使用它们,您只能使用一个 API 或另一个,不能同时使用两者。
如果您选择使用GPTimer 驱动程序,您还将面临以下限制(以及其他差异):
timer.h doxygen 有一些关于计时器某些用例的有用文档(带有代码和解释)。
只是为了仔细检查您使用 Timer_getCount 时,计时器是否已经打开?
该函数应该返回刻度数,然后您可以像您所做的一样除以频率(您是否尝试对此进行调试?)。
您还可以引用 SDK 中的“timerLED”示例,并尝试先将您想要的功能添加到 timerLED 示例中,然后再将其添加到simple_peripheral中。
您好,以上步骤您尝试过了吗,问题的疑惑点解决了吗,如果没有,将继续为您跟进。
好的,那您有时间了测试一下,希望我的建议能够解决您的问题,后续疑问可以继续在此贴帮您跟进。