野火拂晓电机程序解析

Usermotor_controlsp_motor_control.c中:

/**
  * @brief  设置电机方向
  * @param  无
  * @retval 无
  */
void set_motor_direction(motor_dir_t dir)
{
  direction = dir;
  
  if (direction == MOTOR_FWD)
  {
    SET_FWD_COMPAER(dutyfactor); //设置正向速度
    SET_REV_COMPAER(0); //设置反向速度
  }
  else
  {
    SET_FWD_COMPAER(0); //设置正向速度
    SET_REV_COMPAER(dutyfactor); //设置反向速度
  }
}
/**
  * @brief  设置电机方向
  * @param  无
  * @retval 无
  */
void set_motor2_direction(motor_dir_t dir)
{
  direction2 = dir;
  
  if (direction2 == MOTOR_FWD)
  {
    SET2_FWD_COMPAER(dutyfactor2); //设置正向速度
    SET2_REV_COMPAER(0); //设置反向速度
  }
  else
  {
    SET2_FWD_COMPAER(0); //设置正向速度
    SET2_REV_COMPAER(dutyfactor2); //设置反向速度
  }
}

Usermotor_controlsp_motor_control.h

/* 设置速度(占空比) */
#define SET_FWD_COMPAER(ChannelPulse)        TIM1_SetPWM_pulse(PWM_CHANNEL_1, ChannelPulse) //设置比较寄存器的值
#define SET_REV_COMPAER(ChannelPulse)        TIM1_SetPWM_pulse(PWM_CHANNEL_2, ChannelPulse) //设置比较寄存器的值
/* 设置速度(占空比)2 */
#define SET2_FWD_COMPAER(ChannelPulse)       TIM1_SetPWM2_pulse(PWM_CHANNEL_1, ChannelPulse) //设置比较寄存器的值
#define SET2_REV_COMPAER(ChannelPulse)       TIM1_SetPWM2_pulse(PWM_CHANNEL_2, ChannelPulse) //设置比较寄存器的值
经验分享 程序员 微信小程序 职场和发展