From 3820ba9f6bb276a040903d6df7f0ebdb108e9884 Mon Sep 17 00:00:00 2001 From: Joseph Coffland Date: Tue, 18 Dec 2018 15:26:35 -0800 Subject: [PATCH] Make sure PWM gets shutoff at pause with dynamic power --- src/avr/src/exec.c | 2 ++ src/avr/src/spindle.c | 22 ++++++++++------------ src/avr/src/spindle.h | 1 + 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/avr/src/exec.c b/src/avr/src/exec.c index 23373c8..282f31f 100644 --- a/src/avr/src/exec.c +++ b/src/avr/src/exec.c @@ -36,6 +36,7 @@ #include "seek.h" #include "estop.h" #include "state.h" +#include "spindle.h" #include "config.h" #include "SCurve.h" @@ -152,6 +153,7 @@ stat_t _segment_exec() { command_reset_position(); state_holding(); seek_end(); + spindle_update_speed(); } } diff --git a/src/avr/src/spindle.c b/src/avr/src/spindle.c index 693de48..7e2a4d0 100644 --- a/src/avr/src/spindle.c +++ b/src/avr/src/spindle.c @@ -109,9 +109,6 @@ static void _set_speed(float speed) { } -static void _update_speed() {_set_speed(spindle.speed);} - - static void _deinit_cb() { spindle.type = spindle.next_type; spindle.next_type = SPINDLE_TYPE_DISABLED; @@ -123,7 +120,7 @@ static void _deinit_cb() { default: vfd_spindle_init(); break; } - _update_speed(); + spindle_update_speed(); } @@ -185,7 +182,7 @@ void spindle_load_power_updates(power_update_t updates[], float minD, if (spindle.type == SPINDLE_TYPE_PWM) updates[i] = _get_power_update(); else { updates[i].state = POWER_IGNORE; - if (changed) _update_speed(); + if (changed) spindle_update_speed(); } } } @@ -193,6 +190,7 @@ void spindle_load_power_updates(power_update_t updates[], float minD, // Called from hi-priority stepper interrupt void spindle_update(power_update_t update) {pwm_update(update);} +void spindle_update_speed() {_set_speed(spindle.speed);} // Called from lo-priority stepper interrupt @@ -202,7 +200,7 @@ void spindle_idle() { spindle.speed = spindle.sync_speed.speed; if (spindle.type == SPINDLE_TYPE_PWM) spindle_update(_get_power_update()); - else _update_speed(); + else spindle_update_speed(); } } @@ -220,7 +218,7 @@ bool get_tool_reversed() {return spindle.reversed;} void set_tool_reversed(bool reversed) { if (spindle.reversed == reversed) return; spindle.reversed = reversed; - _update_speed(); + spindle_update_speed(); } @@ -232,7 +230,7 @@ void set_max_spin(float value) { if (spindle.max_rpm != value) { spindle.max_rpm = value; spindle.inv_max_rpm = 1 / value; - _update_speed(); + spindle_update_speed(); } } @@ -243,7 +241,7 @@ float get_min_spin() {return spindle.min_rpm;} void set_min_spin(float value) { if (spindle.min_rpm != value) { spindle.min_rpm = value; - _update_speed(); + spindle_update_speed(); } } @@ -256,7 +254,7 @@ void set_speed_override(uint16_t value) { if (spindle.override != value) { spindle.override = value; - _update_speed(); + spindle_update_speed(); } } @@ -267,7 +265,7 @@ bool get_dynamic_power() {return spindle.dynamic_power;} void set_dynamic_power(bool enable) { if (spindle.dynamic_power != enable) { spindle.dynamic_power = enable; - _update_speed(); + spindle_update_speed(); } } @@ -278,7 +276,7 @@ float get_inverse_feed() {return spindle.inv_feed;} void set_inverse_feed(float iF) { if (spindle.inv_feed != iF) { spindle.inv_feed = iF; - _update_speed(); + spindle_update_speed(); } } diff --git a/src/avr/src/spindle.h b/src/avr/src/spindle.h index f7cb570..3966d27 100644 --- a/src/avr/src/spindle.h +++ b/src/avr/src/spindle.h @@ -66,4 +66,5 @@ void spindle_estop(); void spindle_load_power_updates(power_update_t updates[], float minD, float maxD); void spindle_update(power_update_t update); +void spindle_update_speed(); void spindle_idle(); -- 2.27.0