FreeRtos实时系统: 九.FreeRTOS的时间管理
FreeRtos实时系统: 九.FreeRTOS的时间管理
- 一.FreeRTOS延时函数介绍
- 二.FreeRTOS延时函数演示实验
一.FreeRTOS延时函数介绍
二.FreeRTOS延时函数演示实验
为了直观显示两个延时函数的区别,将使用LED0(PB1)和LED1(PB0)的翻转波形来演示。
task1:
task2:
示波器有时LED频率浮动,一会儿525,一会儿520。
原因:delay_ms表示死等,任务一总共加起来520ms。因为任务二比任务一优先级高,任务二可以在520ms内任意抢占任务一,因为任务二也有delay死等,任务二一直为就绪态,除非等完后运行vTakDelayUntil将任务二转为阻塞态,任务一才可以运行。任务二的delay_ms(20)在任务一的500ms内运行没有问题。如果任务二的delay_ms(20)有10ms在500ms内,10ms在500ms外,这时运行完任务一的520ms,仍然要运行10ms,则任务一变为530ms。