From abdc517a726167366ff29c1c84db7fa80da463e8 Mon Sep 17 00:00:00 2001 From: Benjamin Vedder Date: Tue, 12 Apr 2022 12:50:17 +0200 Subject: [PATCH] removed some volatiles and minor optimization --- mc_interface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mc_interface.c b/mc_interface.c index 45897189..d64805b6 100644 --- a/mc_interface.c +++ b/mc_interface.c @@ -1693,13 +1693,13 @@ void mc_interface_mc_timer_isr(bool is_second_motor) { ledpwm_update_pwm(); #ifdef HW_HAS_DUAL_MOTORS - volatile motor_if_state_t *motor = is_second_motor ? &m_motor_2 : &m_motor_1; + motor_if_state_t *motor = is_second_motor ? (motor_if_state_t*)&m_motor_2 : (motor_if_state_t*)&m_motor_1; #else - volatile motor_if_state_t *motor = &m_motor_1; + motor_if_state_t *motor = (motor_if_state_t*)&m_motor_1; (void)is_second_motor; #endif - volatile mc_configuration *conf_now = &motor->m_conf; + mc_configuration *conf_now = (mc_configuration*)&motor->m_conf; const float input_voltage = GET_INPUT_VOLTAGE(); UTILS_LP_FAST(motor->m_input_voltage_filtered, input_voltage, 0.02); @@ -1823,7 +1823,7 @@ void mc_interface_mc_timer_isr(bool is_second_motor) { } #endif - float f_samp = motor->m_f_samp_now; + float t_samp = 1.0 / motor->m_f_samp_now; // Watt and ah counters if (fabsf(current_filtered) > 1.0) { @@ -1831,8 +1831,8 @@ void mc_interface_mc_timer_isr(bool is_second_motor) { static float curr_diff_sum = 0.0; static float curr_diff_samples = 0; - curr_diff_sum += current_in_filtered / f_samp; - curr_diff_samples += 1.0 / f_samp; + curr_diff_sum += current_in_filtered * t_samp; + curr_diff_samples += t_samp; if (curr_diff_samples >= 0.01) { if (curr_diff_sum > 0.0) { @@ -1998,7 +1998,7 @@ void mc_interface_mc_timer_isr(bool is_second_motor) { m_vzero_samples[m_sample_now] = zero; m_curr_fir_samples[m_sample_now] = (int16_t)(current * (8.0 / FAC_CURRENT)); - m_f_sw_samples[m_sample_now] = (int16_t)(f_samp / 10.0); + m_f_sw_samples[m_sample_now] = (int16_t)(0.1 / t_samp); m_status_samples[m_sample_now] = mcpwm_get_comm_step() | (mcpwm_read_hall_phase() << 3); m_sample_now++;