SN_DDQ.h 841 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef SN_DDQ_H
  2. #define SN_DDQ_H
  3. #include "ciu32f003_std.h"
  4. #define TASK_MAX_LEN 32U //最大任务数 0 - 255
  5. #define TASK_TIME_ATOM 320U //最小时间片
  6. //任务头
  7. typedef struct
  8. {
  9. uint16_t counter_arr; //计数器重装值
  10. void (*SN_DDQ_TASK)(void) ; //任务函数
  11. uint16_t counter; //任务计数器
  12. }SN_DDQ_TASK_t;
  13. //调度器数据,全局唯一
  14. struct SN_DDQ_t
  15. {
  16. uint8_t TASK_LEN; //任务数组长度
  17. SN_DDQ_TASK_t * SN_TASK_ARR[TASK_MAX_LEN]; //任务数组
  18. };
  19. void SN_DDQ_init(void); //调度器模块初始化
  20. void SN_DDQ_TASK_ADD( SN_DDQ_TASK_t * MY_TASK ); //添加任务
  21. void SN_DDQ_RUN(void); //调度器运行
  22. #endif