Program Listing for File btn99x0_motor_control.cpp¶
↰ Return to documentation for file (src/btn99x0_motor_control.cpp)
#include "btn99x0_motor_control.hpp"
using namespace btn99x0;
MotorControl::MotorControl(DCShield & shield)
:
hb1(shield.get_half_bridge(DCShield::HALF_BRIDGE_1)),
hb2(shield.get_half_bridge(DCShield::HALF_BRIDGE_2))
{
}
MotorControl::~MotorControl()
{
}
void MotorControl::begin()
{
hb1.begin();
hb2.begin();
}
void MotorControl::set_speed(int16_t speed)
{
hb1.enable();
hb2.enable();
if(speed >= 0)
{
hb1.set_pwm((uint8_t)speed);
hb2.set_pwm(0);
}
else
{
speed = -speed;
hb1.set_pwm(0);
hb2.set_pwm((uint8_t)speed);
}
}
void MotorControl::freewheel()
{
hb1.disable();
hb2.disable();
}
void MotorControl::brake()
{
hb1.set_pwm(0);
hb2.set_pwm(0);
}
void MotorControl::set_slew_rate(slew_rate_level_t sr_level)
{
hb1.set_slew_rate(sr_level);
hb2.set_slew_rate(sr_level);
}