| 
 
新手入门 
 
	积分18金钱18 注册时间2019-11-19在线时间4 小时 | 
 
5金钱 
| TA3、TA4、TA5使用相同的任务代码(Taskq2函数)。怎么实现这个指针的调用 //任务函数声明
 static  void  TA3   ( void * p_arg );
 static  void  TA4   ( void * p_arg );
 static  void  TA5   ( void * p_arg );
 
 //任务函数
 static  void  TA3 ( void *p_arg)
 {
 OS_ERR      err;
 OS_MSG_SIZE msg_size;
 CPU_SR_ALLOC(); //使用到临界段(在关/开中断时)时必需该宏,该宏声明和
 //定义一个局部变量,用于保存关中断前的 CPU 状态寄存器
 // SR(临界段关中断只需保存SR),开中断时将该值还原。
 char * pMsg;
 
 
 (void)p_arg;
 
 
 while (DEF_TRUE) {                                       //任务体
 //请求消息队列 queue 的消息
 pMsg = OSQPend ((OS_Q         *)&queue2,                //消息变量指针
 (OS_TICK       )0,                     //等待时长为无限
 (OS_OPT        )OS_OPT_PEND_BLOCKING,  //如果没有获取到信号量就等待
 (OS_MSG_SIZE  *)&msg_size,             //获取消息的字节大小
 (CPU_TS       *)0,                     //获取任务发送时的时间戳
 (OS_ERR       *)&err);                 //返回错误
 
 if ( err == OS_ERR_NONE )                              //如果接收成功
 {
 OS_CRITICAL_ENTER();                                 //进入临界段
 
 printf ( "\r\n接收消息的长度:%d字节,内容:%s\r\n", msg_size, pMsg );
 
 OS_CRITICAL_EXIT();
 
 }
 
 }
 }
 static  void  TA4 ( void *p_arg)
 {与上面一样}
 static  void  TA5 ( void *p_arg)
 {与上面一样}
 
 
 | 
 |