📄 os_sem.h
字号:
/*********************************************************************************************************
** Small RTOS(51)
** The Real-Time Kernel(For Keil c51)
**
** (c) Copyright 2002-2003, chenmingji
** All Rights Reserved
**
** V1.12.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: OS_sem.h
**创 建 人: 陈明计
**最后修改日期: 2002年12月2日
** 描 述: Small RTOS(51)信号量头文件,定义一些宏和声明一些函数
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版 本: V1.10
** 日 期: 2002年6月20日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陈明计
** 版 本: V1.11.0
** 日 期: 2002年12月2日
** 描 述: 增加注释
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陈明计
** 版 本: V1.12.0
** 日 期: 2002年12月30日
** 描 述: 没有变化
**
**--------------当前版本修订-----------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef NOT_OK
#define NOT_OK 255 /* 参数错误 */
#endif
#define OS_SEM_NOT_OK 4 /* 无信号 */
#define OS_SEM_TMO 2 /* 超时到 */
#define OS_SEM_OK 1 /* 操作成功 */
#ifndef IN_OS_SEM
extern uint8 OSSemCreate(uint8 Index,uint8 Data);
/*********************************************************************************************************
** 函数名称: OSSemCreate
** 功能描述: 初始化消息队列
** 输 入: Index:信号量索引
** data:信号量初始值
** 输 出: NOT_OK:没有这个信号量
** OS_SEM_OK:成功
** 全局变量: 无
** 调用模块: 无
********************************************************************************************************/
extern uint8 OSSemPend(uint8 Index, uint8 Tick);
/*********************************************************************************************************
** 函数名称: OSSemPend
** 功能描述: 等待一个信号量
** 输 入: Index:信号量索引
** Tick:等待时间
** 输 出: NOT_OK:参数错误
** OS_SEM_OK:得到信号量
** OS_SEM_TMO:超时到
** OS_SEM_NOT_OK:没有得到信号量
** 全局变量: 无
** 调用模块: OSRunningTaskID,OSClearSignal,OSSched,OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 OSSemAccept(uint8 Index);
/*********************************************************************************************************
** 函数名称: OSSemAccept
** 功能描述: 无等待请求信号量
** 输 入: Index:信号量索引
** 输 出: NOT_OK:参数错误
** OS_SEM_OK:得到信号量
** OS_SEM_TMO:超时到
** OS_SEM_NOT_OK:没有得到信号量
** 全局变量: 无
** 调用模块: OSClearSignal,OSSched,OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 OSSemIntPost(uint8 Index);
/*********************************************************************************************************
** 函数名称: OSSemIntPost
** 功能描述: 中断中发送一个信号量
** 输 入: Index:信号量索引
** 输 出: NOT_OK:参数错误
** OS_SEM_OK:发送成功
** 全局变量: 无
** 调用模块: OSIntSendSignal,OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 OSSemPost(uint8 Index);
/*********************************************************************************************************
** 函数名称: OSSemPost
** 功能描述: 发送一个信号量
** 输 入: Index:信号量索引
** 输 出: NOT_OK:参数错误
** OS_SEM_OK:发送成功
** 全局变量: 无
** 调用模块: OSSemIntPost,OSSched
********************************************************************************************************/
extern uint8 OSSemQuery(uint8 Index);
/*********************************************************************************************************
** 函数名称: OSSemQuery
** 功能描述: 查询信号量
** 输 入: Index:信号量索引
** 输 出: 信号量的值
** 全局变量: 无
** 调用模块: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -