楼主可以考虑这样。
for(vs_i=1;vs_i<=(10*speed_num4);vs_i++)
{
// 等待信号量sem
OSSemPend(sem,)
speed(0x01,0x01,vsyou);
speed(0x01,0x02,vszuo);
bianma1=Get_Moto_Pulse_Unclr(TIM2);
bianmab=(-Get_Moto_Pulse_Unclr(TIM1));
if(bianma1>(vss_num_you*vs_i))
{
speed(0x01,0x01,0);
}
if(bianmab>(vss_num_zuo*vs_i))
{
speed(0x01,0x02,0);
}
}
然后在一个10ms的定时中断中,调用OSSemPost(sem)。
蔌者,如果时间要求不是那么严格的话,将while(sudu_time)改成OSTimeDly(xxx)就好了。
看得出来你对rtos原理还不了解,建议深入学习下。
如果感兴趣的话,欢迎关注我的21ic公开课-自己动手从0到1写嵌入式操作系统,会有用力于你实际应用。
|