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

📄 rtos.h

📁 完全用C语言编写的C51单片机多任务操作系统,任务调度基于主动放弃,特别适合STC单片机.
💻 H
字号:
#ifndef _RTOS_H
#define _RTOS_H


#define TASK_MAX	8
#define TASK_USER	3
/*TASK_USR <= 8*/
#if TASK_USER > TASK_MAX
#error "用户任务太多"
#endif

#define USR_EXR_MEM_TOP 0x3ff
/*用户扩展内存最大值*/
#define TASK_STACK_SIZE 128 
/*单个任务堆栈大小,至少14*/

#define TASKBLOCK 0
#define TASKRUN 1
#define TASKSLEEP 2 
#define TASKRDY 4




extern UCHAR data  SYS_STACK_BOTM;

#define get_stack_bottom() SYS_STACK_BOTM=SP/*获取系统堆栈底部地址,必须在主函数里调用*/


typedef struct {
	
	unsigned int task_stack_top;
	/*任务堆栈顶部*/
	unsigned char task_stack_len;
	/*任务堆栈深度*/
	unsigned char task_id;
	/*任务号*/
	unsigned int task_sleepcnt;
	/*任务休眠时间*/
	unsigned char task_stat;
	/*任务状态*/
	unsigned char ev_wait;
	/*任务等待事件 */
}TCB;







void task_init();
/*任务初始化*/
void task_sleep(uint time);
/*任务休眠 ,主动放弃CPU控制权,时间单位 毫秒*/
void start_task(void);
/*启动任务,在系统初始化完成后*/
void task_creat(unsigned int task,unsigned char taskid);
/*创建任务*/
void task_event_send(unsigned char taskid,unsigned char ev);
/*任务间通信 ,向指定任务号发送事件 */
unsigned char  task_event_wait(unsigned char ev);
/*等待一个或多个事件,返回该任务当前事件等待状态*/



#endif

⌨️ 快捷键说明

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