Hot fix for rare lowering feed override bug.

[fix] Squashed a very rare bug when lowering the feedrate (or rapid) override. When in the very strict set of circumstances with acceleration settings, override step size, and current speed, an internal calculation would cause Grbl to crash. The fix was an overlooked equality statement that should have been a less than or equal, not a less than.
This commit is contained in:
Sonny Jeon 2017-07-31 17:48:07 -06:00
parent 921e5a9799
commit 477a94cd49
3 changed files with 14 additions and 2 deletions

View file

@ -23,7 +23,7 @@
// Grbl versioning system
#define GRBL_VERSION "1.1f"
#define GRBL_VERSION_BUILD "20170717"
#define GRBL_VERSION_BUILD "20170731"
// Define standard libraries used by Grbl.
#include <avr/io.h>

View file

@ -808,7 +808,7 @@ void st_prep_buffer()
speed_var = pl_block->acceleration*time_var;
mm_var = time_var*(prep.current_speed - 0.5*speed_var);
mm_remaining -= mm_var;
if ((mm_remaining < prep.accelerate_until) || (mm_var <= 0)) {
if ((mm_remaining <= prep.accelerate_until) || (mm_var <= 0.0)) {
// Cruise or cruise-deceleration types only for deceleration override.
mm_remaining = prep.accelerate_until; // NOTE: 0.0 at EOB
time_var = 2.0*(pl_block->millimeters-mm_remaining)/(prep.current_speed+prep.maximum_speed);