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

📄 commun.c

📁 一个关于通信的例子
💻 C
字号:
#include  "commun.h"

/********************************************
*progStart:
*return:
*********************************************/
STATUS  progStart(void)
{
   myMsgQId = msgQCreate(MAX_MSGS, MAX_MSG_LEN, MSG_Q_PRIORITY);
   if (myMsgQId == NULL)
   {
      return (ERROR);
   }
   
   tidTask1 = taskSpawn("tTask1", 200, 0,STACK_SIZE,
                         (FUNCPTR)task1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
   tidTask2 = taskSpawn("tTask2", 220, 0,STACK_SIZE,
                         (FUNCPTR)task2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

  return (OK);
}

#define  MESSAGE "Greetings from Task 1"
/********************************************
*task1:
*return:
*********************************************/
STATUS task1(void)
{
   while(1)
   {
     if(msgQSend(myMsgQId, MESSAGE, sizeof(MESSAGE), WAIT_FOREVER, MSG_PRI_NORMAL)==ERROR)
     {
         return (ERROR);
     }           
     
     taskDelay(DELAY_TICKS);
   }
   
   return (OK);
}

/********************************************
*task2:
*return:
*********************************************/
STATUS task2(void)
{  
   char msgBuf[MAX_MSG_LEN];
   while(1)
   { 
     memset(msgBuf, 0, MAX_MSG_LEN); 
     if(msgQReceive(myMsgQId, msgBuf, MAX_MSG_LEN, WAIT_FOREVER)==ERROR)
     {
        return (ERROR);
     }
   
     printf ("Message from task1: %s \n",msgBuf);
   }
   return (OK);
}

/********************************************
*progStop::
*return:
*********************************************/ 
void progStop (void)
{
    taskDelete(tidTask1);
    taskDelete(tidTask2);
  
    msgQDelete(myMsgQId);
    printf("BYE!\n");
    return;
}

⌨️ 快捷键说明

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