UCOSii互斥信号量的使用疑问
两个任务里面有两段程序是不能同时运行 我这里使用互斥信号量来封起来 实验结果并没有起到互斥作用,求解void Task_1(void*p_arg)
{
。。。。
OSMutexPend(SEM_RAIN, 0, &err);
GPIO_ResetBits(GPIOC,GPIO_Pin_12);
OSTimeDlyHMSM(0, 0,1,0);
GPIO_SetBits(GPIOC,GPIO_Pin_12);
OSTimeDlyHMSM(0, 0,4,0);
OSMutexPost(SEM_RAIN);
。。。。
}
void Task_2(void*p_arg)
{
。。。。
OSMutexPend(SEM_RAIN, 0, &err);
USART1_485_Configuration_no(2400,1) ;
。。。。
OSTimeDlyHMSM(0, 0,0,500);
OSMutexPost(SEM_RAIN);
。。。。
}
我觉得是不是 互斥信号量中间 不能有延时 ,有延时即使碰到信号量也会任务切换????????????? 延时可以有,但是你没起到互斥这个原因不明 建议你的代码风格改一下:
if ( OSMutexPend(SEM_RAIN, 0, &err) != OS_NO_ERR )
{
debug();
}
不妨先确认一下是否成功获取信号量,然后我们再讨论其它部分有没有问题 你的帖子发重复了,我在另一个帖子里面回复你了。
页:
[1]