打印

问一个ucos2邮箱使用的问题

[复制链接]
1976|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cyh537|  楼主 | 2007-5-23 21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
邮箱传递的消息,所使用的缓冲区,可不可以在任务内部定义.

//向打印任务传送的打印数据格式
typedef struct{
    unsigned char px;        /* x 坐标 */
    unsigned char py;        /* y 坐标 */    
    unsigned char *pdata;    /*目标数据首地址 */    
}DISP_DATA;

//-------------------------> buf2可不可以定义在task2任务内部
INT8U    buf2[100] = "This is sent from Task2!";

//-----------------------
//函数作用:task2 测试任务
//入口参数:无
//出口参数:无
//备    注:无
//-----------------------
void Task2(void * pParam)
{
    INT8U    err;    
    DISP_DATA    DispDataT2;

    while(1)    
    {
        DispDataT2.px = 28;
        DispDataT2.py = 4;
        DispDataT2.pdata = buf2;
        
        OSMboxPost(MboxDispData, (void *)&DispDataT2);
        OSTimeDlyHMSM(0,0,2,333);
    }
}

//-----------------------
//函数作用:Task4Print 打印任务
//入口参数:无
//出口参数:无
//备    注:接受其他任务要求打印的数据,打印到屏幕上.
//-----------------------
void Task4Print(void * pParam)
{
    INT8U    err, cnt;
    DISP_DATA *pDispData;
    

    while(1)    
    {
        
        pDispData = OSMboxPend(MboxDispData, 0, &err);
        
        for(cnt=0; cnt<pDispData->px; cnt++)
        {
            printf(" ");
        }
        printf("%s ", pDispData->pdata);    

    }
}


相关帖子

沙发
IC1008| | 2007-5-24 08:49 | 只看该作者

应该可以,我觉得

DISP_DATA类型是否还要加多一个标志位
表示这个变量正在准备打印 还没有被打印呢
打印完成 由任务Task4Print 清除

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

40

帖子

1

粉丝