⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msg.c

📁 基于ARM的uCOS-II完整源码,在VC++ WINDOWN下的编程. 利用VC++直接编译显示图形.便于源码的调试.首先下载uC/OS-II - WIN32 Port for 32bit Wind
💻 C
字号:
/****************************************************************************
* 文件名:MSG.C
* 功能:任务消息相关接口函数。
* 说明:系统消息循环使用。
****************************************************************************/
#include "includes.h"

/****************************************************************************
* 名称:TMQ_Create()
* 功能:建立任务消息队列。
*      宏函数,函数原型为TMQ *TMQ_Create(void **buf, uint16 size)。
* 入口参数:buf		消息队列存储区首地址
*          size		消息队列存储区大小
* 出口参数:若建立成功,返回消息队列的地址,否则返回0地址。
****************************************************************************/
//#define  TMQ_Create(buf, size)		OSQCreate(buf, size)


// 声明各个任务消息队列,以便于消息发送管理器使用。(在此添加用户任务消息队列)
extern TMQ	*task1_tmq;				// 声明任务1的消息队列



/****************************************************************************
* 名称:SendMessage()
* 功能:发送一个消息,即消息发送管理器。
*      根据实际情况,将消息分派到不同的任务消息队列中。
* 入口参数:msg		所要发送的消息(指针)
* 出口参数:操作成功返回TRUE,否则返回FALSE。
****************************************************************************/
uint8  SendMessagetemp(MSGtemp *msg)
{  uint32  message;
   TMQ	   *target;
   uint8   err;
   message = msg->message;
   switch(message)
   {  case  TM_KEYOK:
      case  TM_KEYDOWN:
      case  TM_KEYUP:
      case  TM_KEYLEFT:
      case  TM_KEYRIGHT:
      case  TM_KEYMEASURE:

      			target = task1_tmq;			// 若是键盘消息,向task1_tmq任务消息队列发送
      			break;
      					
      case  TM_UART0RCV:
      			target = task1_tmq;			// 若是串口接收消息,向task1_tmq任务消息队列发送
      			break;
      			
      // (在此添加用户任务消息分派处理)			
      
      default:  target = NULL;
      			break;		
   }
   err = OSQPost(target, msg);
   if(err==OS_NO_ERR) 
	   return(TRUE);
   else  
   {
	   return(FALSE); 
   }
}


/****************************************************************************
* 名称:GetMessage()
* 功能:等待一个消息。当接收到消息时才返回。
* 入口参数:tmq		等待的任务消息队列(指针)
* 出口参数:返回接收到的消息。
****************************************************************************/
MSGtemp  *GetMessagetemp(TMQ *tmq)
{  uint8  err;
   return(OSQPend(tmq, 0, &err));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -