本文是笔者在学习 正点原子官方 的《【正点原子】手把手教你学FreeRTOS实时系统》系列视频时整理的笔记。
视频讲解清晰透彻,非常感谢UP主的无私奉献!原课程链接如下:
👉 B站视频链接:【正点原子】手把手教你学FreeRTOS实时系统_哔哩哔哩_bilibili
在freertos_demo.c中编写
1、头文件
2、FreeRTOS的配置
3、创建第一个任务start_task
该任务是用来创建其它的三个任务,可在task.h看例程,记得开启任务调度器
4、创建三个任务
因为任务切换是在中断中运行的,进入临界区之后就不会进行任务切换,退出临界区才开始任务调度。在任务函数开始的时候进入临界区,最后退出临界区。这样子就不会一创建任务就立马调度任务,而是看优先级去调度。临界区保护,就是保护那些不想被打断的程序段。
5、分别写出三个任务功能
第一个任务是实现LED0每500ms闪烁一次,第二个任务是实现LED1每500ms闪烁一次,第三个任务是判断KEY0是否被按下,按下则删掉任务一。
不要舍弃vTaskDelay()函数,如果舍弃了,这个任务就会一直占用CPU资源,其它任务执行不了,因为任务调度是在中断中执行的。