#ifndef motor_control_h #define motor_control_h #include "../common/shared_structs.h" #define MOTOR_PWM_FREQ 500 // PWM frequency in Hz #define MOTOR_CONTROL_PERIOD_MS 100 // Period of the motor control loop #define MAX_DUTY_RAMP 10.0 // max change in duty per second - where 1.0 is full duty #define MIN_DUTY 0.10 // min duty for each motor #define MAX_DUTY 0.55 // max duty for each motor - Needs to be below 0.33 to avoid overlapping the three motor phases #define DEFAULT_KP 0.0 #define DEFAULT_KI 5.0 #define DEFAULT_KD 0.0 #define DEFAULT_OP_OFFSET 0.0 void set_motor_control(motor_id_t motor_id, motor_control_t new_control); void set_motor_params(motor_id_t motor_id, motor_parameters_t new_params); motor_control_t get_motor_control(motor_id_t motor_id); motor_parameters_t get_motor_parameters(motor_id_t motor_id); float get_motor_duty(motor_id_t motor_id); void motor_control_setup(void); #endif