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

📄 os.h

📁 PIC单片机的操作系统。picc18编译过
💻 H
字号:
//os.h
#ifndef __OS_HEADER__
#define __OS_HEADER__
//
#define nop() asm("NOP")
#define clrwdt() asm("CLRWDT")
//
#define OS_TASKS    8  // 用户任务数量
// 最大系统消息
#define OS_EVENTS   6

#define osCommBuffSize  32
//
typedef struct{
	unsigned osTaskState:4;
	unsigned osTaskID:4;
	unsigned int osTaskPtr; //保存任务的入口地址 
	unsigned int osTaskStackTop; //保存任务的堆栈顶 
	unsigned int osWaitTick; //任务延时时钟 
	} TaskCtrBlock;
//	
typedef struct //信号邮箱
{ 
	unsigned Type : 1; // 类型,0:独占,1:共享
	unsigned Enable : 1; // 0:无效,1:有效
	unsigned Others:6;
	unsigned char FromTask;  // 收信箱:产生事件的任务列表
	unsigned char ToTask;    // 发信箱:需要接收事件的任务
} MESG;

typedef struct{
	unsigned char Door1;
	unsigned char Door2;
	unsigned char Door3;
	unsigned char Door4;
	}DefDoor;
//
#define osEnterOsFunction() GIEH=0
#define osExitOsFunction()  GIEH=1
//
#define osTaskSta_Stop 	0	// 任务停止
#define osTaskSta_Ready 1	// 任务就绪
#define osTaskSta_Delay 2	// 任务延时
#define osTaskSta_Waite 3	// 任务等待
//
#define osSch() TMR1IF=1;bOSSCH=1
#define DelayOsTicks(ticks) osDelay(ticks); osSch()
#define osResumeTask(TaskID) TCB[TaskID].osTaskState = osTaskSta_Ready;osSch()
#define osQuit() osExitTask();osSch()
#define osRunTask(TaskID) osResumeTask(TaskID)
//
extern TaskCtrBlock TCB[OS_TASKS+1];
extern MESG EVENT[OS_EVENTS];
extern bit  bOSSCH ; // 任务调度申请,避免进入TMR中断处理
//
void osInit(void);
void osCreateTask(void *taskPtr, unsigned char TaskID);
void osDelay(unsigned int);
void osExitTask(void);
void osTaskIdle(void);
//
unsigned char OpenComm(unsigned char );
void CloseComm(void);
unsigned char osGetCommBuff(unsigned char bytes,unsigned char *ptr);
unsigned char osChkCommBuff(void);
unsigned char Wr45DB041(unsigned char *,unsigned char *,unsigned char );
unsigned char Rd45DB041(unsigned char *,unsigned char *,unsigned char );

#endif//__OS_HEADER__

⌨️ 快捷键说明

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