#ifndef SN_DDQ_H #define SN_DDQ_H #include "ciu32f003_std.h" #define TASK_MAX_LEN 32U //最大任务数 0 - 255 #define TASK_TIME_ATOM 320U //最小时间片 //任务头 typedef struct { uint16_t counter_arr; //计数器重装值 void (*SN_DDQ_TASK)(void) ; //任务函数 uint16_t counter; //任务计数器 }SN_DDQ_TASK_t; //调度器数据,全局唯一 struct SN_DDQ_t { uint8_t TASK_LEN; //任务数组长度 SN_DDQ_TASK_t * SN_TASK_ARR[TASK_MAX_LEN]; //任务数组 }; void SN_DDQ_init(void); //调度器模块初始化 void SN_DDQ_TASK_ADD( SN_DDQ_TASK_t * MY_TASK ); //添加任务 void SN_DDQ_RUN(void); //调度器运行 #endif