问一个ucos2邮箱使用的问题

[复制链接]
 楼主| cyh537 发表于 2007-5-23 21:00 | 显示全部楼层 |阅读模式
邮箱传递的消息,所使用的缓冲区,可不可以在任务内部定义.<br /><br />//向打印任务传送的打印数据格式<br />typedef&nbsp;struct{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;x&nbsp;坐标&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;py;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;y&nbsp;坐标&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;*pdata;&nbsp;&nbsp;&nbsp;&nbsp;/*目标数据首地址&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;<br />}DISP_DATA;<br /><br />//-------------------------&gt&nbsp;buf2可不可以定义在task2任务内部<br />INT8U&nbsp;&nbsp;&nbsp;&nbsp;buf2[100]&nbsp;=&nbsp;&quot;This&nbsp;is&nbsp;sent&nbsp;from&nbsp;Task2!&quot;;<br /><br />//-----------------------<br />//函数作用:task2&nbsp;测试任务<br />//入口参数:无<br />//出口参数:无<br />//备&nbsp;&nbsp;&nbsp;&nbsp;注:无<br />//-----------------------<br />void&nbsp;Task2(void&nbsp;*&nbsp;pParam)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;&nbsp;&nbsp;&nbsp;err;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DISP_DATA&nbsp;&nbsp;&nbsp;&nbsp;DispDataT2;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DispDataT2.px&nbsp;=&nbsp;28;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DispDataT2.py&nbsp;=&nbsp;4;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DispDataT2.pdata&nbsp;=&nbsp;buf2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSMboxPost(MboxDispData,&nbsp;(void&nbsp;*)&DispDataT2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDlyHMSM(0,0,2,333);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />//-----------------------<br />//函数作用:Task4Print&nbsp;打印任务<br />//入口参数:无<br />//出口参数:无<br />//备&nbsp;&nbsp;&nbsp;&nbsp;注:接受其他任务要求打印的数据,打印到屏幕上.<br />//-----------------------<br />void&nbsp;Task4Print(void&nbsp;*&nbsp;pParam)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;&nbsp;&nbsp;&nbsp;err,&nbsp;cnt;<br />&nbsp;&nbsp;&nbsp;&nbsp;DISP_DATA&nbsp;*pDispData;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pDispData&nbsp;=&nbsp;OSMboxPend(MboxDispData,&nbsp;0,&nbsp;&err);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(cnt=0;&nbsp;cnt&ltpDispData-&gtpx;&nbsp;cnt++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%s

&quot;,&nbsp;pDispData-&gtpdata);&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><br />
IC1008 发表于 2007-5-24 08:49 | 显示全部楼层

应该可以,我觉得

DISP_DATA类型是否还要加多一个标志位<br />表示这个变量正在准备打印&nbsp;还没有被打印呢<br />打印完成&nbsp;由任务Task4Print&nbsp;清除
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

40

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部