?? os_q.h
字號:
/*********************************************************************************************************
** Small RTOS(51)
** The Real-Time Kernel(For Keil c51)
**
** (c) Copyright 2002-2003, chenmingji
** All Rights Reserved
**
** V1.20.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: OS_Q.h
**創 建 人: 陳明計
**最后修改日期: 2003年8月3日
** 描 述: Small RTOS(51)消息隊列頭文件,定義一些宏和聲明一些函數
**
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 陳明計
** 版 本: V1.10~V1.12.0
** 日 期: 2002年6月20日~2002年12月30日
** 描 述: 完善消息隊列代碼
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 版 本: V1.20.0
** 日 期: 2003年8月3日
** 描 述: 刪除OSInt*函數,根據新版本要求改變一些代碼
**
**--------------當前版本修訂-----------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef NOT_OK
#define NOT_OK 255 /* 參數錯誤 */
#endif
#define OS_Q_FULL 8 /* 隊列滿 */
#define OS_Q_NOT_OK 4 /* 無消息 */
#define OS_Q_TMO 2 /* 超時到 */
#define OS_Q_OK 1 /* 操作成功 */
#ifndef IN_OS_Q
extern uint8 OSQCreate(uint8 OS_Q_MEM_SEL *Buf, uint8 SizeOfBuf);
/*********************************************************************************************************
** 函數名稱: OSQCreate
** 功能描述: 初始化消息隊列
** 輸 入: Buf:為隊列分配的存儲空間地址
** SizeOfBuf:為隊列分配的存儲空間大小
** 輸 出: NOT_OK:參數錯誤
** OS_Q_OK:成功
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/
extern uint8 OSQPend(uint8 data *Ret, uint8 OS_Q_MEM_SEL *Buf, uint8 Tick);
/*********************************************************************************************************
** 函數名稱: OSQPend
** 功能描述: 等待消息隊列中的消息
** 輸 入: Ret:返回的消息
** Buf:指向隊列的指針
** Tick:等待時間
** 輸 出: NOT_OK:參數錯誤
** OS_Q_OK:收到消息
** OS_Q_TMO:超時到
** OS_Q_NOT_OK:無消息
** 全局變量: 無
** 調用模塊: OSRunningTaskID,OSClearSignal,OSSched,OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 OSQAccept(uint8 data *Ret, uint8 OS_Q_MEM_SEL *Buf);
/*********************************************************************************************************
** 函數名稱: OSQAccept
** 功能描述: 無等待從消息隊列中取得消息
** 輸 入: Ret:返回的消息
** Buf:指向隊列的指針
** 輸 出: NOT_OK:參數錯誤
** OS_Q_OK:收到消息
** OS_Q_TMO:超時到
** OS_Q_NOT_OK:無消息
** 全局變量: 無
** 調用模塊: OSClearSignal,OSSched,OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 OSQPost(uint8 OS_Q_MEM_SEL *Buf, uint8 Data);
/*********************************************************************************************************
** 函數名稱: OSQPost
** 功能描述: FIFO方式發送消息
** 輸 入: Buf:指向隊列的指針
** Data:消息數據
** 輸 出: OS_Q_FULL:隊列滿
** OS_Q_OK:發送成功
** 全局變量: 無
** 調用模塊: OSQIntPost,OSSched
********************************************************************************************************/
extern uint8 OSQPostFront(uint8 OS_Q_MEM_SEL *Buf, uint8 Data);
/*********************************************************************************************************
** 函數名稱: OSQPostFront
** 功能描述: LIFO方式發送消息
** 輸 入: Buf:指向隊列的指針
** Data:消息數據
** 輸 出: OS_Q_FULL:隊列滿
** OS_Q_OK:發送成功
** 全局變量: 無
** 調用模塊: OSQIntPostFront,OSSched
********************************************************************************************************/
/* 兼容V1.12.1的宏 */
#define OSQIntPost(Buf, Data) OSQPost(Buf, Data)
#define OSQIntPostFront(Buf, Data) OSQPostFront(Buf, Data)
extern uint8 OSQNMsgs(uint8 OS_Q_MEM_SEL *Buf);
/*********************************************************************************************************
** 函數名稱: OSQNMsgs
** 功能描述: 取得消息隊列中消息數
** 輸 入: Buf:指向隊列的指針
** 輸 出: 消息數
** 全局變量: 無
** 調用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 OSQSize(uint8 OS_Q_MEM_SEL *Buf);
/*********************************************************************************************************
** 函數名稱: OSQSize
** 功能描述: 取得消息隊列總容量
** 輸 入: Buf:指向隊列的指針
** 輸 出: 消息隊列總容量
** 全局變量: 無
** 調用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern void OSQFlush (uint8 OS_Q_MEM_SEL *Buf);
/*********************************************************************************************************
** 函數名稱: OSQFlush
** 功能描述: 清空隊列
** 輸 入: Buf:指向隊列的指針
** 輸 出: 無
** 全局變量: 無
** 調用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計
** 日 期: 2002年9月1日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2002年10月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -