OSSemPost()-下发一个信号量
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秒
}
}