?? os_mail.c
字號:
/********************************************
嵌入式系統(tǒng) 小型操作系統(tǒng)
作者:汪普宏
制作日期:2006.9
*********************************************/
#include <os.h>
#include"OS_Mail.h"
void * xdata QBuf[QBOX_LENTH];
QUEUE xdata Queue;
void OSIint_Queue(void)
{
Queue.w=QBuf;
Queue.r=QBuf;
Queue.lenth=0;
}
/****************************************
制作日期:2006.10
函數(shù)功能:從消息列隊中獲取消息
函數(shù)入口參數(shù):無
調(diào)用者:任務(wù)
返回值:成功時返回讀出的消息指針,錯誤返回NULL
*****************************************/
uchar xdata *OSQueue_Rece(void) //從隊列緩沖環(huán)區(qū)中讀出消息
{
uchar xdata *buf;
buf=(uchar xdata*)Queue.r;
if(Queue.lenth>0)
{
OS_CLOSEISR;
if(Queue.r<&QBuf[QBOX_LENTH]) //邊界檢查
{
Queue.r++;
}
else
{
Queue.r=QBuf;
}
Queue.lenth--;
OS_OPENISR;
return buf;
}
else
{
return NULL;
}
}
/****************************************
制作日期:2006.10
函數(shù)功能:發(fā)送消息到消息列隊
函數(shù)入口參數(shù):發(fā)送的消息指針
調(diào)用者: 任務(wù)或中斷
返回值:成功時返回OK,錯誤返回NULL
*****************************************/
uchar OSQueue_Send(uchar xdata *p) //發(fā)送消息到隊列中
{
OS_CLOSEISR;
if(Queue.lenth<QBOX_LENTH)
{
Queue.w=(void*)p;
if(Queue.w<&QBuf[QBOX_LENTH]) //邊界檢查
{
Queue.w++;
}
else
{
Queue.w=QBuf;
}
}
else
{
OS_OPENISR;
return NULL;
}
Queue.lenth++;
OS_OPENISR;
return OK;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -