From: Joseph Coffland Date: Sun, 11 Sep 2016 13:11:03 +0000 (-0700) Subject: Use spindle and feed overrides X-Git-Url: https://git.buildbotics.com/?a=commitdiff_plain;h=645f31bc529de487a3d33b556a045d6d0cf15c55;p=bbctrl-firmware Use spindle and feed overrides --- diff --git a/src/machine.c b/src/machine.c index 00ab787..ef71fab 100644 --- a/src/machine.c +++ b/src/machine.c @@ -116,12 +116,12 @@ feed_mode_t mach_get_feed_mode() {return mach.gm.feed_mode;} float mach_get_feed_override() { - return mach.gm.feed_override_enable ? mach.gm.feed_override : 0; + return mach.gm.feed_override_enable ? mach.gm.feed_override : 1; } float mach_get_spindle_override() { - return mach.gm.spindle_override_enable ? mach.gm.spindle_override : 0; + return mach.gm.spindle_override_enable ? mach.gm.spindle_override : 1; } @@ -150,7 +150,7 @@ static stat_t _exec_spindle_speed(mp_buffer_t *bf) { /// Queue the S parameter to the planner buffer void mach_set_spindle_speed(float speed) { mp_buffer_t *bf = mp_queue_get_tail(); - bf->value = speed; + bf->value = speed * mach_get_spindle_override(); mp_queue_push(_exec_spindle_speed, mach_get_line()); } @@ -362,6 +362,9 @@ float mach_calc_move_time(const float axis_length[], } } + // Apply feed override + max_time /= mach_get_feed_override(); + // Compute time required for rate-limiting axis for (int axis = 0; axis < AXES; axis++) { float time = fabs(axis_length[axis]) / diff --git a/src/plan/arc.c b/src/plan/arc.c index 92c86b7..8d8666b 100644 --- a/src/plan/arc.c +++ b/src/plan/arc.c @@ -85,6 +85,10 @@ static float _estimate_arc_time(float length, float linear_travel, float time = mach_get_feed_mode() == INVERSE_TIME_MODE ? mach_get_feed_rate() : length / mach_get_feed_rate(); + + // Apply feed override + time /= mach_get_feed_override(); + // Downgrade the time if there is a rate-limiting axis return max4(time, planar_travel / axes[arc.plane_axis_0].feedrate_max, planar_travel / axes[arc.plane_axis_1].feedrate_max,