📄 schinit.c
字号:
#include "SCHInit.h"
//数据区
extern sTask SCH_tasks_G[SCH_MAX_TASKS];
extern tByte Error_code_G;
/*------------------------------------------------------------------*-
SCH_Init_T2()
系统调度器初始化
-*------------------------------------------------------------------*/
void SCH_Init_T2(void)
{
tByte i;
for (i = 0; i < SCH_MAX_TASKS; i++) //把任务送入调度器队列
{
SCH_Delete_Task(i);
}
Error_code_G = 0; //系统报错复位
T2CON = 0x04; //系统时钟基准设置,间隔1ms
T2MOD = 0x00;
TH2 = 0xFC;
RCAP2H = 0xFC;
TL2 = 0x18;
RCAP2L = 0x18;
ET2 = 1;
}
/*------------------------------------------------------------------*-
SCH_Start()
系统启动
-*------------------------------------------------------------------*/
void SCH_Start(void)
{
EA = 1;
TR2 = 1;
}
/*------------------------------------------------------------------*-
SCH_Update()
调度器任务队列处理函数
-*------------------------------------------------------------------*/
void SCH_Update(void) interrupt INTERRUPT_Timer_2_Overflow
{
tByte Index;
TF2 = 0;
for (Index = 0; Index < SCH_MAX_TASKS; Index++)
{
if (SCH_tasks_G[Index].pTask)
{
if (SCH_tasks_G[Index].Delay == 0)
{
SCH_tasks_G[Index].RunMe += 1;
if (SCH_tasks_G[Index].Period)
{
SCH_tasks_G[Index].Delay = SCH_tasks_G[Index].Period;
}
}
else
{
SCH_tasks_G[Index].Delay -= 1;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -