📄 cfg.c
字号:
#include "INCLUDE\config.h"
__flash stask OS_TASK_G[OS_MAX_TASK]={
task_1,
#if OS_MAX_TASK>1
task_2,
#endif
#if OS_MAX_TASK>2
task_3,
#endif
#if OS_MAX_TASK>3
task_4,
#endif
#if OS_MAX_TASK>4
task_5,
#endif
#if OS_MAX_TASK>5
task_6,
#endif
#if OS_MAX_TASK>6
task_7,
#endif
#if OS_MAX_TASK>7
task_8,
#endif
#if OS_MAX_TASK>8
task_9,
#endif
#if OS_MAX_TASK>9
task_10,
#endif
#if OS_MAX_TASK>10
task_11,
#endif
#if OS_MAX_TASK>11
task_12,
#endif
};
__flash int8u OS_TMB1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00}; //数值表
int8u OS_task_run[OS_MAX_TASK/8+1];
void task_tesrt(void) //复位时任务全部就绪
{
int8u index;
index=OS_MAX_TASK/8+1;
for(;index>0;index--)
{
OS_task_run[index-1]=0xff;
}
}
void OS_task_ready(int8u OS_task_ID) //任务就绪
{
if(OS_task_ID<OS_MAX_TASK)
{
OS_task_run[OS_task_ID/8]|=OS_TMB1[OS_task_ID%8];
}
}
void OS_task_hung(int8u OS_task_ID) //任务挂起
{
if(OS_task_ID<OS_MAX_TASK)
{
OS_task_run[OS_task_ID/8]&=~OS_TMB1[OS_task_ID%8];
}
}
void OS_GO_TO_Sleep(void) //无任务休眠
{
_WDR();
MCUCR|=(1<<SE);
_SLEEP();
}
void OS_Dispatch_Tasks(void) //任务运行
{
int8u index;
for(index=0;index<OS_MAX_TASK;index++)
{
if(OS_task_run[index>>3]&OS_TMB1[index&0x07])
{
(*OS_TASK_G[index].Ptask)();
OS_task_hung(index);
index=0;
}
}
OS_GO_TO_Sleep();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -