Skip to content

Commit f4b31b8

Browse files
committed
More refactoring
1 parent b1945b7 commit f4b31b8

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

mc_interface.c

+14-11
Original file line numberDiff line numberDiff line change
@@ -1589,21 +1589,24 @@ void mc_interface_mc_timer_isr(bool is_second_motor) {
15891589
// functions. That will make this interrupt run a bit faster.
15901590
mc_state state;
15911591
float current;
1592-
float current_in;
1592+
float current_filtered;
1593+
float current_in_filtered;
15931594
float abs_current;
15941595
float abs_current_filtered;
15951596
if (conf_now->motor_type == MOTOR_TYPE_FOC) {
15961597
state = mcpwm_foc_get_state_motor(is_second_motor);
1597-
current = mcpwm_foc_get_tot_current_filtered_motor(is_second_motor);
1598-
current_in = mcpwm_foc_get_tot_current_in_filtered_motor(is_second_motor);
1598+
current = mcpwm_foc_get_tot_current_motor(is_second_motor);
1599+
current_filtered = mcpwm_foc_get_tot_current_filtered_motor(is_second_motor);
1600+
current_in_filtered = mcpwm_foc_get_tot_current_in_filtered_motor(is_second_motor);
15991601
abs_current = mcpwm_foc_get_abs_motor_current_motor(is_second_motor);
16001602
abs_current_filtered = mcpwm_foc_get_abs_motor_current_filtered_motor(is_second_motor);
16011603
} else {
16021604
state = mcpwm_get_state();
1603-
current = mcpwm_get_tot_current_filtered();
1604-
current_in = mcpwm_get_tot_current_in_filtered();
1605+
current = mcpwm_get_tot_current();
1606+
current_filtered = mcpwm_get_tot_current_filtered();
1607+
current_in_filtered = mcpwm_get_tot_current_in_filtered();
16051608
abs_current = mcpwm_get_tot_current();
1606-
abs_current_filtered = current;
1609+
abs_current_filtered = current_filtered;
16071610
}
16081611

16091612
if (state == MC_STATE_RUNNING) {
@@ -1616,8 +1619,8 @@ void mc_interface_mc_timer_isr(bool is_second_motor) {
16161619
pwn_done_func();
16171620
}
16181621

1619-
motor->m_motor_current_sum += current;
1620-
motor->m_input_current_sum += current_in;
1622+
motor->m_motor_current_sum += current_filtered;
1623+
motor->m_input_current_sum += current_in_filtered;
16211624
motor->m_motor_current_iterations++;
16221625
motor->m_input_current_iterations++;
16231626

@@ -1670,12 +1673,12 @@ void mc_interface_mc_timer_isr(bool is_second_motor) {
16701673
float f_samp = motor->m_f_samp_now;
16711674

16721675
// Watt and ah counters
1673-
if (fabsf(current) > 1.0) {
1676+
if (fabsf(current_filtered) > 1.0) {
16741677
// Some extra filtering
16751678
static float curr_diff_sum = 0.0;
16761679
static float curr_diff_samples = 0;
16771680

1678-
curr_diff_sum += current_in / f_samp;
1681+
curr_diff_sum += current_in_filtered / f_samp;
16791682
curr_diff_samples += 1.0 / f_samp;
16801683

16811684
if (curr_diff_samples >= 0.01) {
@@ -1841,7 +1844,7 @@ void mc_interface_mc_timer_isr(bool is_second_motor) {
18411844
}
18421845

18431846
m_vzero_samples[m_sample_now] = zero;
1844-
m_curr_fir_samples[m_sample_now] = (int16_t)(mc_interface_get_tot_current() * (8.0 / FAC_CURRENT));
1847+
m_curr_fir_samples[m_sample_now] = (int16_t)(current * (8.0 / FAC_CURRENT));
18451848
m_f_sw_samples[m_sample_now] = (int16_t)(f_samp / 10.0);
18461849
m_status_samples[m_sample_now] = mcpwm_get_comm_step() | (mcpwm_read_hall_phase() << 3);
18471850

0 commit comments

Comments
 (0)