新手入门
- 积分
- 14
- 金钱
- 14
- 注册时间
- 2018-6-5
- 在线时间
- 1 小时
|
2金钱
我看不懂case0~4中angle的计算是怎么得来的 为什么要那样算 请问有人能帮忙解答一下吗 谢谢!
void SetJointAngle(u8 ID, float angle)
{
switch(ID)
{
case 0: //-90°~90°
angle=angle+90.0;
angle=(u16)(50.0*angle/9.0+249.0);
TIM_SetCompare1(TIM3,angle);
break;
//0°~180°
case 1:
angle=(u16)(4.175*angle+409.25);
TIM_SetCompare2(TIM3,angle);
break;
case 2: //-150°~0°
angle=-angle;
angle=(u16)(4.175*angle+480.0);
TIM_SetCompare1(TIM4,angle);
break;
case 3:
angle=-180-angle;
angle=-angle;
angle=(u16)(4.175*angle+315.0);
TIM_SetCompare2(TIM4,angle);
break;
//-90°~90°
case 4:
angle=90.0+angle;
angle=(u16)(249.0+50.0*angle/9.0);
TIM_SetCompare3(TIM4,angle);
break;
default: break;
}
}
|
|