100 #define MCPWM_SWITCH_FREQUENCY_MIN 3000 // The lowest switching frequency in Hz
101 #define MCPWM_SWITCH_FREQUENCY_MAX 40000 // The highest switching frequency in Hz
102 #define MCPWM_SWITCH_FREQUENCY_DC_MOTOR 25000 // The DC motor switching frequency
103 #define MCPWM_DEAD_TIME_CYCLES 100 // Dead time
104 #define MCPWM_RPM_TIMER_FREQ 1000000.0 // Frequency of the RPM measurement timer
105 #define MCPWM_CMD_STOP_TIME 0 // Ignore commands for this duration in msec after a stop has been sent
106 #define MCPWM_DETECT_STOP_TIME 500 // Ignore commands for this duration in msec after a detect command
109 #define MCPWM_PID_TIME_K 0.001 // Pid controller sample time in seconds
int mcpwm_get_hall_detect_result(int8_t *table)
Definition: mcpwm.c:2386
mc_rpm_dep_struct mcpwm_get_rpm_dep(void)
Definition: mcpwm.c:2363
void mcpwm_adc_int_handler(void *p, uint32_t flags)
Definition: mcpwm.c:1805
float mcpwm_get_tot_current_in_filtered(void)
Definition: mcpwm.c:904
float mcpwm_get_watt_hours(bool reset)
Definition: mcpwm.c:996
volatile float mcpwm_detect_voltages[]
Definition: mcpwm.c:137
mc_state mcpwm_get_state(void)
Definition: mcpwm.c:792
volatile float mcpwm_detect_currents_diff[]
Definition: mcpwm.c:138
float mcpwm_get_tot_current_directional(void)
Definition: mcpwm.c:871
void mcpwm_unlock(void)
Definition: mcpwm.c:741
int mcpwm_get_tachometer_value(bool reset)
Definition: mcpwm.c:919
int mcpwm_get_comm_step(void)
Definition: mcpwm.c:758
float mcpwm_get_tot_current_in(void)
Definition: mcpwm.c:894
float mcpwm_get_duty_cycle_set(void)
Definition: mcpwm.c:762
float mcpwm_get_last_inj_adc_isr_duration(void)
Definition: mcpwm.c:2359
float mcpwm_get_duty_cycle_now(void)
Definition: mcpwm.c:766
Definition: datatypes.h:81
float mcpwm_get_detect_pos(void)
Definition: mcpwm.c:2255
float mcpwm_read_reset_avg_motor_current(void)
Definition: mcpwm.c:2296
float mcpwm_get_watt_hours_charged(bool reset)
Definition: mcpwm.c:1015
void mcpwm_set_pid_speed(float rpm)
Definition: mcpwm.c:617
mc_fault_code mcpwm_get_fault(void)
Definition: mcpwm.c:796
void mcpwm_set_pid_pos(float pos)
Definition: mcpwm.c:633
void mcpwm_lock(void)
Definition: mcpwm.c:734
int mcpwm_get_tachometer_abs_value(bool reset)
Definition: mcpwm.c:939
const volatile mc_configuration * mcpwm_get_configuration(void)
Definition: mcpwm.c:487
float mcpwm_get_amp_hours_charged(bool reset)
Definition: mcpwm.c:977
volatile int ADC_curr_norm_value[]
Definition: mcpwm.c:135
void mcpwm_init(mc_configuration *configuration)
Definition: mcpwm.c:174
void mcpwm_set_min_rpm(float rpm)
Definition: mcpwm.c:2324
float mcpwm_get_tot_current(void)
Definition: mcpwm.c:848
float mcpwm_get_tot_current_filtered(void)
Definition: mcpwm.c:860
void mcpwm_init_hall_table(int8_t *table)
Definition: mcpwm.c:510
mc_comm_mode mcpwm_get_comm_mode(void)
Definition: mcpwm.c:2351
void mcpwm_reset_hall_detect_table(void)
Definition: mcpwm.c:2370
float mcpwm_get_tot_current_directional_filtered(void)
Definition: mcpwm.c:883
float mcpwm_get_amp_hours(bool reset)
Definition: mcpwm.c:958
float mcpwm_get_switching_frequency_now(void)
Definition: mcpwm.c:776
mc_comm_mode
Definition: datatypes.h:46
void mcpwm_set_comm_mode(mc_comm_mode mode)
Definition: mcpwm.c:2347
mc_state
Definition: datatypes.h:33
void mcpwm_set_configuration(mc_configuration *configuration)
Definition: mcpwm.c:491
float mcpwm_get_min_rpm(void)
Definition: mcpwm.c:2334
Definition: datatypes.h:91
void mcpwm_set_current(float current)
Definition: mcpwm.c:654
void mcpwm_brake_now(void)
Definition: mcpwm.c:720
void mcpwm_set_detect(void)
Definition: mcpwm.c:2236
float mcpwm_read_reset_avg_cycle_integrator(void)
Definition: mcpwm.c:2310
float mcpwm_get_kv(void)
Definition: mcpwm.c:821
int mcpwm_read_hall_phase(void)
Definition: mcpwm.c:2433
volatile uint16_t ADC_Value[]
Definition: mcpwm.c:134
void mcpwm_adc_inj_int_handler(void)
Definition: mcpwm.c:1583
void mcpwm_release_motor(void)
Definition: mcpwm.c:727
volatile float mcpwm_detect_currents[]
Definition: mcpwm.c:136
float mcpwm_get_last_adc_isr_duration(void)
Definition: mcpwm.c:2355
mc_fault_code
Definition: datatypes.h:62
void mcpwm_lock_override_once(void)
Definition: mcpwm.c:748
const char * mcpwm_fault_to_string(mc_fault_code fault)
Definition: mcpwm.c:800
float mcpwm_read_reset_avg_input_current(void)
Definition: mcpwm.c:2303
volatile int mcpwm_vzero
Definition: mcpwm.c:139
void mcpwm_set_duty(float dutyCycle)
Definition: mcpwm.c:601
float mcpwm_get_rpm(void)
Definition: mcpwm.c:788
void mcpwm_set_brake_current(float current)
Definition: mcpwm.c:682
float mcpwm_get_kv_filtered(void)
Definition: mcpwm.c:833