diff --git a/.vscode/launch.json b/.vscode/launch.json index d79f3b90..7b95c47c 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,7 @@ "version": "0.2.0", "configurations": [ { - "preLaunchTask": "STM8 Build & Flash", + "preLaunchTask": "Build & Flash", "postDebugTask": "OpenOCD reset target", "name": "STM8-gdb", "request": "launch", diff --git a/src/motor.c b/src/motor.c index f402d896..c1a8025f 100644 --- a/src/motor.c +++ b/src/motor.c @@ -795,8 +795,8 @@ void TIM1_CAP_COM_IRQHandler(void) __interrupt(TIM1_CAP_COM_IRQHANDLER) // - ramp up/down PWM duty_cycle and/or field weakening angle value // check if to decrease, increase or maintain duty cycle - if ((ui8_g_duty_cycle > ui8_controller_duty_cycle_target) - || (ui8_adc_battery_current_filtered > ui8_controller_adc_battery_current_target) + if ( (ui8_controller_duty_cycle_target < ui8_g_duty_cycle) + || (ui8_controller_adc_battery_current_target < ui8_adc_battery_current_filtered) || (ui8_adc_motor_phase_current > ui8_adc_motor_phase_current_max) || (ui16_hall_counter_total < (HALL_COUNTER_FREQ / MOTOR_OVER_SPEED_ERPS)) || (ui16_adc_voltage < ui16_adc_voltage_cut_off) @@ -817,7 +817,8 @@ void TIM1_CAP_COM_IRQHandler(void) __interrupt(TIM1_CAP_COM_IRQHANDLER) } } } - else if (ui8_g_duty_cycle < ui8_controller_duty_cycle_target) { + else if ((ui8_controller_duty_cycle_target > ui8_g_duty_cycle) + && (ui8_controller_adc_battery_current_target > ui8_adc_battery_current_filtered)) { // reset duty cycle ramp down counter (filter) ui8_counter_duty_cycle_ramp_down = 0;