osmessage.c

来自「S3C44B0X全套培训资料及源代码 e008s3c44b0x」· C语言 代码 · 共 58 行

C
58
字号
#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 + =
减小字号Ctrl + -
显示快捷键?