📄 osmessage.c
字号:
#include "..\ucos-ii\includes.h" /* uC/OS interface */
#include "..\ucos-ii\add\OSMessage.h"
OS_EVENT *OSMessage_Que; //系统消息队列
void *QOSMsg[OSMessageQSize]; //系统消息队列缓冲区
OS_MEM *pMessageMem;
INT8U MessageMemPart[OSMessageQSize][20];
void initOSMessage()
{
INT8U err;
OSMessage_Que=OSQCreate(&QOSMsg[0], OSMessageQSize);//创建系统的消息队列
pMessageMem=OSMemCreate(MessageMemPart,OSMessageQSize, 20, &err);
if(pMessageMem==NULL){
LCD_printf("Failed to Create Message quote");
}
}
POSMSG OSCreateMessage(POS_Ctrl pOSCtrl, U32 Message, U32 wparam, U32 lparam)
{
POSMSG pmsg;
INT8U err;
pmsg=(POSMSG)OSMemGet(pMessageMem,&err);
if(err!=OS_NO_ERR)
return NULL;
pmsg->pOSCtrl=pOSCtrl;
pmsg->Message=Message;
pmsg->WParam=wparam;
pmsg->LParam=lparam;
return pmsg;
}
U8 SendMessage(POSMSG pMsg)
{
if(!pMsg)
return FALSE;
if(OSQPost(OSMessage_Que,pMsg)==OS_Q_FULL){
DeleteMessage(pMsg);
return FALSE;
}
return TRUE;
}
POSMSG WaitMessage(INT16U timeout)
{
INT8U err;
POSMSG pMsg=(POSMSG)OSQPend(OSMessage_Que,timeout,&err);
return pMsg;
}
void DeleteMessage(POSMSG pMsg)
{
if(pMsg)
OSMemPut(pMessageMem,(void*)pMsg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -