野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2914|回复: 2

当三个任务代码相同时,怎么使用一个代码,然后三个任务调用

[复制链接]
发表于 2020-4-2 22:48:05 | 显示全部楼层 |阅读模式
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)
{与上面一样}
回复

使用道具 举报

发表于 2020-4-4 13:07:34 | 显示全部楼层
没明白什么意思
回复 支持 反对

使用道具 举报

发表于 2020-5-18 08:59:33 | 显示全部楼层
将任务句柄传入任务中,在任务中判断属于哪个任务,做不同的处理即可~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-4 19:18 , Processed in 0.025965 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表