Files
lemon-pepper-stepper/firmware/lib/Arduino-FOC-drivers/src/comms/stm32speeddir/STM32SpeedDirInput.cpp
2023-11-09 19:02:15 -05:00

29 lines
737 B
C++

#include "./STM32SpeedDirInput.h"
#if defined(_STM32_DEF_)
STM32SpeedDirInput::STM32SpeedDirInput(int pin_speed, int pin_dir) : STM32PWMInput(pin_speed) {
_pin_speed = pin_speed;
_pin_dir = pin_dir;
};
STM32SpeedDirInput::~STM32SpeedDirInput(){};
int STM32SpeedDirInput::init(){
pinMode(_pin_dir, INPUT);
return STM32PWMInput::initialize();
};
float STM32SpeedDirInput::getTargetVelocity(){
if (_pin_dir != NOT_SET)
direction = digitalRead(_pin_dir);
float speed = getDutyCyclePercent();
speed = constrain(speed, min_pwm, max_pwm);
speed = (speed - min_pwm)/(max_pwm - min_pwm) * (max_speed - min_speed) + min_speed;
return (direction == dir_positive_high) ? speed : -speed;
};
#endif