⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_tasksw.h

📁 51上的RTOS
💻 H
字号:
/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 
                OS_TaskSW.h                             
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
#ifndef      __OS_TaskSW_H__
#define      __OS_TaskSW_H__
 
#include     "RTOS.h"

#define      TASK_RUNNING          0x55
#define      TASK_STOP             0

//   User's task function prototype declare
void         Task00(void);
void         Task01(void);
void         Task02(void);
void         Task03(void);
void         Task04(void);
void         Task05(void);
void         Task06(void);
void         Task07(void);
#if(MAX_TASK_ID_DIV8 >1)
void         Task10(void);
void         Task11(void);
void         Task12(void);
void         Task13(void);
void         Task14(void);
void         Task15(void);
void         Task16(void);
void         Task17(void);      
#endif
#if(MAX_TASK_ID_DIV8 >2)
void         Task20(void);
void         Task21(void);
void         Task22(void);
void         Task23(void);
void         Task24(void);
void         Task25(void);
void         Task26(void);
void         Task27(void);      
#endif
#if(MAX_TASK_ID_DIV8 >3)
void         Task30(void);
void         Task31(void);
void         Task32(void);
void         Task33(void);
void         Task34(void);
void         Task35(void);
void         Task36(void);
void         Task37(void);      
#endif

//  任务标志常数数组,对应字节的位标志
uchar   code   TaskFlagTab[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 };


/*   需要周期性执行的任务,请设置相应周期时间。单位为一个系统节拍
   例:系统时钟节拍为10ms,任务3需20ms执行一次,则CycleExcute[0][3]=2;
   任务8需1s执行一次,则CycleExcute[1][0]=100;
   默认为0,不需定时执行
*/
uint    code    CycleExcute[MAX_TASK_ID_DIV8][8]=
          {
	     { 0,0,0,0,0,0,0,0 }
	   #if(MAX_TASK_ID_DIV8 >1)
             ,{ 0,0,0,0,0,0,0,0 }
           #endif
           #if(MAX_TASK_ID_DIV8 >2)
             ,{ 0,0,0,0,0,0,0,0 }
           #endif
           #if(MAX_TASK_ID_DIV8 >3)
             ,{ 0,0,0,0,0,0,0,0 }
           #endif
	  };

/*   任务列表,在前面的任务优先级高于后面的任务,不需另外设置优先级
   例:系统初始化函数可设置优先级为最低,放在最后。  
*/
void      (*code  TaskEntrance[MAX_TASK_ID_DIV8][8])(void)=
          { { Task00,Task01,Task02,Task03,Task04,Task05,Task06,Task07 }
           #if(MAX_TASK_ID_DIV8 >1)
            ,{ Task10,Task11,Task12,Task13,Task14,Task15,Task16,Task17 }
           #endif
           #if(MAX_TASK_ID_DIV8 >2)
            ,{ Task20,Task21,Task22,Task23,Task24,Task25,Task26,Task27 }
           #endif
           #if(MAX_TASK_ID_DIV8 >3)
            ,{ Task30,Task31,Task32,Task33,Task34,Task35,Task36,Task37 }
           #endif
          };
/*  注:以上两个数组用二维数组而不用一维数组的原因是:任务就绪标志是用位表示
        而不是用字节表示的,操作起来比一维数组方便。
*/
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -