husion 发表于 2010-9-18 16:06

U关于UCOS邮箱OSMboxPost,OSMboxPend函数应用问题

/************************主函数*********************************/
voidmain (void)
{
    OSInit( );      //初始化uCOS_II
    PC_DOSSaveReturn( );    //保存Dos环境
    PC_VectSet(uCOS, OSCtxSw);    //安装uCOS_II中断
    Str_Box = OSMboxCreate ((void*)0);   //创建互斥型信号量
    OSTaskCreate(StartTask,    //创建任务StartTask
(void*)0,   //给任务传递参数
&StartTaskStk,//设置任务堆栈栈顶
0);      //使任务的优先级别为0
    OSStart( );      //启动多任务管理
}
/***********************任务StartTask*******************************/
voidStartTask (void *pdata)
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SRcpu_sr;
#endif
    pdata = pdata;
    OS_ENTER_CRITICAL( );
    PC_VectSet(0x08, OSTickISR);//安装时钟中断向量
    PC_SetTickRate(OS_TICKS_PER_SEC);//设置uCOS_II时钟频率
    OS_EXIT_CRITICAL( );
OSStatInit( );    //初始化统计任务
    OSTaskCreate(MyTask,   //创建任务MyTask
(void*)0,   //给任务传递参数
&MyTaskStk, //设置任务堆栈栈顶
3);    //使任务的优先级别为3
    OSTaskCreate(YouTask,   //创建任务YouTask
(void*)0,   //给任务传递参数
&YouTaskStk, //设置任务堆栈栈顶
4);    //使任务的优先级别为4

for (;;)
    {
//如果按下Esc键则退出uCOS_II
if (PC_GetKey(&key) == TRUE)
{
            if (key == 0x1B)
   {
                PC_DOSReturn();
            }
      }
      OSTimeDlyHMSM(0, 0, 3, 0); //等待3秒
    }
}
/************************任务MyTask*******************************/
voidMyTask (void *pdata)
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SRcpu_sr;
#endif
    pdata = pdata;

    for (;;)
{
sprintf(s,"%d" ,Times);
OSMboxPost(Str_Box,s);//发送消息
Times++;
OSTimeDlyHMSM(0, 0, 1, 0); //等待1秒

    }
}
/************************任务YouTask******************************/
voidYouTask (void *pdata)
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SRcpu_sr;
#endif
    pdata = pdata;   
   
    for (;;)
{

    ss=OSMboxPend(Str_Box,0,&err);
    PC_DispStr(10,++y,ss,DISP_BGND_BLACK+DISP_FGND_WHITE );
    OSTimeDlyHMSM(0, 0, 1, 0);//等待1秒

    }
}
/************************End**************************************/


用BC运行生成exe,但结果屏幕没有显示任何东西,调了一个下午了,还是没有完全明白OSMboxPost,OSMboxPend函数的用法,请高手看看

husion 发表于 2010-9-18 16:51

UP~~

husion 发表于 2010-9-19 08:02

高手们呢...

husion 发表于 2010-9-19 15:53

是不是我的问题太简单了,高手们都不感兴趣...再UP~~~

husion 发表于 2010-9-20 11:31

UP~~

senioryzc 发表于 2010-9-20 16:08

你可以先把问题分解下
先不要使用邮箱函数,看看 PC_DispStr函数能不能正常工作

我记得当初学ucos,发现在pc上移植ucos很麻烦,直接用开发板的
页: [1]
查看完整版本: U关于UCOS邮箱OSMboxPost,OSMboxPend函数应用问题