?? msg.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 + -