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

📄 msg.c

📁 arm lpc2000 应用历程 arm lpc2000 应用历程
💻 C
字号:
/****************************************************************************
* 文件名:MSG.C
* 功能:任务消息相关接口函数。
* 说明:系统消息循环使用。
****************************************************************************/
#include "config.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  SendMessage(MSG *msg)
{  uint32  message;
   TMQ	   *target;
   uint8   err;

   message = msg->message;
   switch(message)
   {  case  TM_KEY:
      case  TM_KEYDOWN:
      case  TM_KEYUP:
      			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		等待的任务消息队列(指针)
* 出口参数:返回接收到的消息。
****************************************************************************/
MSG  *GetMessage(TMQ *tmq)
{  uint8  err;

   return(OSQPend(tmq, 0, &err));
}

⌨️ 快捷键说明

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