中级会员
- 积分
- 290
- 威望
- 142
- 贡献
- 98
- 兑换币
- 67
- 注册时间
- 2014-4-17
- 在线时间
- 25 小时
- 毕业学校
- 智能车大学
|
2#
楼主 |
发表于 2014-8-27 20:19:26
|
只看该作者
帖一下程序, 因为Speed_L和Speed_R值是一样的,所以按道理应该无论是否大于零都有两路输出的,
/*************用所得到的对应角度的速度进行PWM控制********************/
if(Speed_L >= 0) //angle大于0,向前,小于0,向后
{
FTM_PWM_Duty(FTM0,FTM_CH1,1000);
FTM_PWM_Duty(FTM0,FTM_CH5,(uint32)(Speed_L_Last - MOTOR_DEAD_VAL_L)); //加入死区电压
}
else
{
FTM_PWM_Duty(FTM0,FTM_CH5,1000);
FTM_PWM_Duty(FTM0,FTM_CH1,(uint32)(-Speed_L_Last - MOTOR_DEAD_VAL_L)); //加入死区电压
}
if(Speed_R >= 0) //angle大于0,向前,小于0,向后
{
FTM_PWM_Duty(FTM0,FTM_CH6,1000);
FTM_PWM_Duty(FTM0,FTM_CH2,(uint32)(Speed_R_Last - MOTOR_DEAD_VAL_R)); //加入死区电压
}
else
{
FTM_PWM_Duty(FTM0,FTM_CH2,1000);
FTM_PWM_Duty(FTM0,FTM_CH6,(uint32)(-Speed_R_Last - MOTOR_DEAD_VAL_R)); //加入死区电压
}
}
|
|