?? 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
#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}; //數(shù)值表
int8u OS_task_run[OS_MAX_TASK/8+1];
void task_tesrt(void) //復(fù)位時任務(wù)全部就緒
{
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) //任務(wù)就緒
{
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) //任務(wù)掛起
{
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) //無任務(wù)休眠
{
_WDR();
MCUCR|=(1<<SE);
_SLEEP();
}
void OS_Dispatch_Tasks(void) //任務(wù)運(yùn)行
{
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();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -