|
楼主 |
发表于 2013-1-30 20:44:23
|
显示全部楼层
bfk2003 发表于 2013-1-30 20:35
不知道LZ注意没有rantingting 程序中
void PWM_Calcu(void)
{
是的,这个我也注意到了,但我没细想。
我没用rantinging的代码,因为最开始我没有论坛邀请码,是自己一个一个模块逐步测试实现的,我的这段代码如下:
PWM_L和PWM_R是输入参数,0为停止,+255为正向最快,-255为负向max。
因为我的电机额定电压6V,峰值电流1.5A左右。我怕烧驱动,就适当的设置了个阈值,有效输入是-235 --> +235
/************************************************************************/
/*PWM输出子函数*/
void PWM_output(int PWM_L,int PWM_R)
{
if (PWM_L<0) //左轮后退
{
motoL_B;
PWM_L=-PWM_L;//-40;
}
else //左轮前进
motoL_F;
if (PWM_L>235) PWM_L=235;
CCAP0H = 255-PWM_L; //set PWM wide 0:fastest 255:slowest
/*==================================*/
if (PWM_R<0) //右轮后退
{
motoR_B;
PWM_R=-PWM_R;//-40;
}
else //右轮前进
motoR_F;
if (PWM_R>235) PWM_R=235;
CCAP1H = 255-PWM_R; //set PWM wide 0:fastest 255:slowest
} |
|