一、任务调度器
1. 调度器结构体
函数指针和指针函数:C语言基础知识:函数指针&指针函数(定义格式、作用及用法说明)_指针函数的定义-CSDN博客
PS: 函数指针本身上还是一个指针,和一般指针没有区别,指向函数的执行地址
1 | //调度器类型的结构体类型声明 |
typedef struct {} scheduler_task_t;
是⼀种定义新结构体类型的⽅式,这⾥定义 了⼀个名为 scheduler_task_t 的结构体类型。这个结构体类型包含三个成员。
-
void *task_func(void);
定义了一个函数指针,用于储存任务函数的地址,便于进行任务调度 -
rate_ms
表示任务具体的执行周期 -
last_run
⽤于存储任务上次运⾏的时间戳(以毫秒为单位)。该成员⽤于 记录任务上⼀次被调度执⾏的时间点,以便计算任务是否需要再次执⾏
静态任务数组,每个任务包括任务函数,执行周期,和上次执行时间
1 | void Led_task(){ |
2. 调度器初始化
1 | void scheduler_init(void){ |
3. 调度器函数
遍历任务数组,检查是否有任务需要进行,如果系统当前时间超过任务的执行周期,那么执行任务变更,并且更新上次运行时间
1 | void scheduler_run(void){ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Turin's Blog!