初级会员 
  
	- 积分
 - 187
 
        - 金钱
 - 187 
 
       - 注册时间
 - 2016-9-2
 
      - 在线时间
 - 42 小时
 
 
 
 | 
 
如题,在调用ossempend时,等待时间内,系统会去进行别的任务调度吗?还有我的一任务中,连续调用ossempend这样可以吗(二进制信号量)?比如说如下: 
 
while(1) 
{ 
。。。。。。。(省略) 
can_msg_send(coder);//对传感器数据进行采集 
 
ossempend{ 
&can_ok, 
200, 
err;(具体格式忘啦,大家明白意思就行,一个是信号量名称,一个是时间,一个是错误) 
} 
 
for(i=0;i<8;i++) 
{ 
    printf("接收到的编码器数据为:%d\r\n",buffer[i]);//打印接收到的传感器数据 
} 
 
memset(buffer,0,sizeof(buffer)); 
 
 
can_msg_send(leak);//对传感器数据进行采集 
 
ossempend{ 
&can_ok, 
200, 
err;(具体格式忘啦,大家明白意思就行,一个是信号量名称,一个是时间,一个是错误) 
} 
 
 
 
for(i=0;i<8;i++) 
{ 
    printf("接收到的编码器数据为:%d\r\n",buffer[i]);//打印接收到的传感器数据 
} 
 
memset(buffer,0,sizeof(buffer)); 
 
。。。。。。。。。。 
} 
 
 
 
然后我的思路是,上位机发送查询指令,然后传感器(用51+mcp2515+tja1050+传感器   做的)回传数据,回传一个正确数据后,释放信号量ossempost,然后接着查询下一个传感器的数据(当然通讯的协议使我们自己做的,有校验和帧头) 
 
请问这样做可以吗?能在一个任务中请求多次信号量吗(信号量用的是二进制信号量) 
 
 
请大声指点迷津啊,数据一直不是很正常 
 |   
 
 
 
 |