打印

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

[复制链接]
9408|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
husion|  楼主 | 2010-9-18 16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/************************主函数*********************************/
void  main (void)
{
    OSInit( );      //初始化uCOS_II
    PC_DOSSaveReturn( );    //保存Dos环境
    PC_VectSet(uCOS, OSCtxSw);    //安装uCOS_II中断
    Str_Box = OSMboxCreate ((void*)0);   //创建互斥型信号量
    OSTaskCreate(StartTask,    //创建任务StartTask
(void*)0,     //给任务传递参数
&StartTaskStk[TASK_STK_SIZE - 1],  //设置任务堆栈栈顶
0);      //使任务的优先级别为0
    OSStart( );      //启动多任务管理
}
/***********************任务StartTask*******************************/
void  StartTask (void *pdata)
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SR  cpu_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[TASK_STK_SIZE - 1], //设置任务堆栈栈顶
  3);    //使任务的优先级别为3
    OSTaskCreate(YouTask,   //创建任务YouTask
  (void*)0,   //给任务传递参数
  &YouTaskStk[TASK_STK_SIZE - 1], //设置任务堆栈栈顶
  4);    //使任务的优先级别为4

  for (;;)
    {
//如果按下Esc键则退出uCOS_II
if (PC_GetKey(&key) == TRUE)
{
            if (key == 0x1B)
     {
                PC_DOSReturn();
            }
        }
        OSTimeDlyHMSM(0, 0, 3, 0); //等待3秒
    }
}
/************************任务MyTask*******************************/
void  MyTask (void *pdata)
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SR  cpu_sr;
#endif
    pdata = pdata;
  
    for (;;)
  {
  sprintf(s,"%d" ,Times);
  OSMboxPost(Str_Box,s);  //发送消息
  Times++;
  OSTimeDlyHMSM(0, 0, 1, 0); //等待1秒

    }
}
/************************任务YouTask******************************/
void  YouTask (void *pdata)
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SR  cpu_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~~~

使用特权

评论回复
5
husion|  楼主 | 2010-9-20 11:31 | 只看该作者
UP~~

使用特权

评论回复
6
senioryzc| | 2010-9-20 16:08 | 只看该作者
你可以先把问题分解下
先不要使用邮箱函数,看看 PC_DispStr函数能不能正常工作

我记得当初学ucos,发现在pc上移植ucos很麻烦,直接用开发板的

使用特权

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

本版积分规则

16

主题

70

帖子

1

粉丝