FreeRTOS记录(八、用软件定时器?还是硬件定时器?)_freertos的硬件时钟

FreeRTOS软件定时器,相对前面的内容来说,软件定时器还是比较简单的,我们简单测试一下
因为是简单介绍,所以原理和源码的分析不会那么详细,具体可以根据文中API查看源码
使用起来记住创建,启动,回调函数核心步骤即可
..增加测试Demo,再次遇到溢出问题说明,定时器数量问题说明				  2021/12/2

目录

问:什么时候使用软件定时器,什么时候使用硬件定时器?

软件定时器可以解决硬件定时器数量不够的问题,理论上软件定时器可以很多,每个芯片的定时器外设是有限的,如果硬件定时器不够用,可以使用软件定时器。

但是,软件定时器相对硬件定时器来说,精度没有那么高(为什么不高?因为它以系统时钟为基准,系统时钟中断优先级又是最低,容易被打断)。 对于需要高精度要求的场合,不建议使用软件定时器。

同时软件定时器 是需要占用一部分内存空间的,用到的软件定时器数量越多,内存占用越大。 如果RAM空间不够用,不能使用软件定时器。

当然,使用软件定时器的程序还有一个好处就是方便移植,不同芯片的硬件定时器的设置代码是不一样的,在条件允许的情况下使用软件定时器,那么不同平台之间的的代码移植起来相对方便一点。

一、FreeRTOS软件定时器基础

1.1 时钟来源

系统的时钟周期,对于FreeRTOS而言,就是 TICK_RATE_HZ 对应的值。在以上的测试我们使用都是设置为默认的1000,那么系统的时钟节拍周期就为 1ms(1s 跳动 1000 下,每一下就为 1ms)。

1.2 运行原理

FreeRTOS 所创建的软件定时器共用一个任务prvTimerTask(也叫守护任务 Daemon)和队列,定时器处理API函数最终都是通过给队列发送信息,在任务中接收处理。

创建prvTimerTask任务:
在这里插入图片描述

在文章 FreeRTOS记录(六、FreeRTOS消息队列—Enocean模块串口通讯、RAM空间不足问题分析) 中的 第 5小结:5 、RAM空间不足问题 中讲到过只要使能了使用定时器,系统就会自动产生一个任务,占用内存空间,说的就是这个任务:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值