通过定时器控制后台任务,每5ms执行切换一个任务,根据事件类型可以区分不同类型的任务,对于外界按键类的操作响应,只有当前任务会做出响应,除当前任务外,其它的都为后台任务
void It_watchdog (void)
{
}
#define TASK_1_FUNC It_watchdog
//遍历执行任务函数指针
typedef struct
{
void (*task_func_ptr)(void);
} tab_ptr_function;
//定义任务数组
const tab_ptr_function Ventilation_Tasks_Table[] =
{
&TASK_1_FUNC,
&TASK_2_FUNC,
. . .
}
void task_main(void)
{
if (MAIN_Timer5ms == TRUE)
{
SCHED_Ventilation_entry();
MAIN_TopTimer5ms = FALSE;
}
}
void main(void)
{
while(1)
{
task_main();
}
}