看了一下之前做的rtt笔记,还真没有做这部分的内容,看来当初没看这部分。
问题
在rt编程手册中的时钟管理与HWTIME设备
两者都实现定时器有什么不同???如何合理使用两者呢???
不同点
时钟管理的HARDTIME模式是通过使用定时器的时钟,一般的就是硬件systick,控制rt_tick,实现计时。rt_tick是系统的时间节拍。超时回调函数在中断处理程序中进行调用。而使用软件定时器,回调函数则会在timer线程中。软件定时器模式,受限于系统节拍。
由于系统节拍是OS运行的基础,所以就要兼顾高低速的设备及应用,这个值一般是MS级别。ns级别太快,会导到系统不停的切换任务,造成效率不高。
此部的应用场景,就是跟随rt-tick级别的定时需求。若是要更快级别的定时器,还要使用真正的硬件定时器。
hwtim是把硬件定时器当成是设备来处理的。也是实现定时。但可以实现更快或更慢的定时。也不再受rt-tick的局限。同时,还是随时读取定时器当前值。
使用步骤:
- 使用CubxMX配置一下定时器,生成相应的代码,使之启用HAL库的time组件。
- board文件夹下,修改kconfig文件,添加TIM开启选项代码如下所示:
menuconfig BSP_USING_TIM
bool "Enable timer"
default n
select RT_USING_HWTIMER
if BSP_USING_TIM
config BSP_USING_TIM1
bool "Enable TIM1"
default n
config BSP_USING_TIM2
bool

最低0.47元/天 解锁文章

994

被折叠的 条评论
为什么被折叠?



