|
|
|
|
@ -16,7 +16,7 @@
|
|
|
|
|
typedef struct {
|
|
|
|
|
bool enabled = false;
|
|
|
|
|
float desired_speed = 0.0;
|
|
|
|
|
float kp = 1.0;
|
|
|
|
|
float kp = 0.5;
|
|
|
|
|
float ki = 0.0;
|
|
|
|
|
float kd = 0.0;
|
|
|
|
|
float min_duty = 0.1;
|
|
|
|
|
@ -80,7 +80,7 @@ static void motor_control_task(void *pvParameters) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Map duty to fit between min and tri-phase for actual motor PWM
|
|
|
|
|
mapped_duty = 0.33 * (m_stat[m_id].duty * (1.0 - m_set.min_duty) + m_set.min_duty);
|
|
|
|
|
mapped_duty = 0.33 * (m_stat[m_id].duty * (MAX_DUTY - m_set.min_duty) + m_set.min_duty);
|
|
|
|
|
// This function takes duty as a float percent...
|
|
|
|
|
mcpwm_set_duty(MCPWM_UNIT_0, motor_timer[m_id], MCPWM_GEN_A, mapped_duty * 100.0);
|
|
|
|
|
|
|
|
|
|
|