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

📄 sch51.h

📁 《时间触发嵌入式系统设计模式》一书中的合作式调度器的算法
💻 H
字号:
/*-------------------------------------------------------*-

	SCH51.H (V1.1)

    调度器的数据结构以及任务队列

-*-------------------------------------------------------*/

/*
 * Copyright (c) 2006,wsl
 * All rights reserved
 * 
 * 文件名称: SCH51.H
 * 文件标识:  
 * 摘	 要: 调度器的核心是调度器的数据结构.这是一种用户
 *		  	 自定义的数据类型,集中了每个任务所需的信息.
 * 
 * 当前版本: 1.1			 * 取代版本:
 * 作	 者: wsl			 * 原作者  : Michael J.Pont
 * 完成日期: 2006-09-14		 * 完成日期:
 *********************************************************/
#ifndef _SCH51_H
#define _SCH51_H

#include"Main.H"

//---------------公用数据类型声明------------------------
// 可能的话,存储在DATA区,以供快速存取
// 每个任务的存储器总和是7个字节

typedef data struct
{
	// 指向任务的指针(必须是一个'void(void)'函数)
	// 构造一个指向函数的指针变量.专门用来存放函数的入口地址
	void (code *pTask)(void);
	
	// 延迟Delay个时标后函数将第一次运行
	// 当Delay=0时,任务立即运行
	unsigned int Delay;

	// 在连续的运行之间的间隔(时标)
	// 当Period=0时,任务运行一次.
	unsigned int Period;

	// 当任务需要运行时(由调度器)加1
	unsigned char RunMe;
} sTask;

/*******************************************************/


//------------公用的函数原型----------------------------
// 调度器内核函数
extern void SCH_Dispatch_Tasks(void);

extern unsigned char SCH_Add_Task(void (code *pFunction)(),	// 任务指针
								const unsigned int DELAY,	// 延迟Delay个时标后函数将第一次运行
								const unsigned int PERIOD);  // 连续的运行之间的间隔(时标)

extern bit SCH_Delete_Task(const unsigned char TASK_INDEX);
extern void SCH_Init_Timer2(void);
extern void SCH_Start(void);

//--------------------------------------------------------

#endif

//-------------------END OF FILE-------------------------

⌨️ 快捷键说明

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