freertos systick延时
时间: 2023-09-26 07:14:29 浏览: 129
FreeRTOS中的SysTick延时是一种基于系统时钟的延时机制。SysTick定时器是一个硬件定时器,用于产生系统节拍。它可以被用来创建精确的延时和时间测量。
在FreeRTOS中,有两种类型的SysTick延时函数可供使用:相对延时和绝对延时。相对延时使用vTaskDelay函数,它接受一个参数xTicksToDelay,表示要延时的SysTick数目。这种延时方式是相对于当前任务的时间来计算的,它会暂停当前任务的执行,并将任务加入到延时队列中等待指定的SysTick数目后再次运行。
另一种是绝对延时,使用vTaskDelayUntil函数。它接受两个参数pxPreviousWakeTime和xTimeIncrement。pxPreviousWakeTime表示要延时起始的SysTick时刻,xTimeIncrement表示相对起始时刻的时间间隔。这种延时方式允许任务按照固定的时间间隔执行,可以用于周期性任务的调度。
需要注意的是,SysTick延时函数只能在FreeRTOS任务中使用,不能在中断服务程序(ISR)中使用。此外,SysTick定时器的配置需要在FreeRTOSConfig.h文件中进行设置。
总结起来,FreeRTOS中的SysTick延时是通过使用定时器服务任务和定时器命令队列来实现的,提供了相对延时和绝对延时两种方式,可用于实现精确的任务调度和时间控制。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [FreeRTOS学习(六)时间管理](https://blog.csdn.net/la_fe_/article/details/114880371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [浅析 FreeRTOS SysTick 和任务延时](https://blog.csdn.net/wangyx1234/article/details/127311949)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文