邮箱传递的消息,所使用的缓冲区,可不可以在任务内部定义.
//向打印任务传送的打印数据格式 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);
} }
|