OSSemPost()--发出一个信号量

来源:互联网 发布:滴滴出行大数据平台 编辑:程序博客网 时间:2024/06/11 07:03

INT8U  OSSemPost (OS_EVENT *pevent)

描述:发出一个信号量
参数:pevent :指向事件控制块结合目标信号量的指针
返回:OS_NO_ERR           调用成功,信号量发出
*              OS_SEM_OVF       信号量数目超出范围. 也就是说你发送的信号量多于在either
*                                  OSSemAccept() or OSSemPend()中等待的
*              OS_ERR_EVENT_TYPE   没有传递指针给信号量
*              OS_ERR_PEVENT_NULL  如果 'pevent' 是空指针

void  MyTask (void *pdata)
{

    for (;;)
    {                                          
        OSSemPend(Fun_Semp,0,&err); //请求信号量
        PC_DispStr(0,++y,
                               s1,
                               DISP_BGND_BLACK+DISP_FGND_WHITE );
          Fun(8,y);   //调用函数Fun( )
 
         OSTimeDlyHMSM(0, 0, 0, 500);    //等待1秒
    }
}
/************************任务YouTask******************************/
void  YouTask (void *pdata)
{
    for (;;)
    {          
          PC_DispStr(0,++y,
                                 s2,
                                 DISP_BGND_BLACK+DISP_FGND_WHITE );
         if(YouTaskRun==3)
         {
                  OSSemPost(Fun_Semp);  //发送信号量
                  YouTaskRun=0;
        }
        YouTaskRun++;            
        OSTimeDlyHMSM(0, 0, 1, 0);    //等待2秒
    }
}