[2.0.x] LIN_ADVANCE v1.5 (#9712)

This commit is contained in:
Scott Lahteine
2018-02-23 00:53:29 -06:00
committed by GitHub
parent 90fa423737
commit 2bd252b501
52 changed files with 890 additions and 1671 deletions

View File

@ -103,7 +103,10 @@ typedef struct {
// Advance extrusion
#if ENABLED(LIN_ADVANCE)
bool use_advance_lead;
uint32_t abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float
uint16_t advance_speed, // Timer value for extruder speed offset
max_adv_steps, // max. advance steps to get cruising speed pressure (not always nominal_speed!)
final_adv_steps; // advance steps due to exit speed
float e_D_ratio;
#endif
// Fields used by the motion planner to manage acceleration
@ -195,9 +198,8 @@ class Planner {
#endif
#if ENABLED(LIN_ADVANCE)
static float extruder_advance_k, advance_ed_ratio,
position_float[XYZE],
lin_dist_xy, lin_dist_e;
static float extruder_advance_K,
position_float[XYZE];
#endif
#if ENABLED(SKEW_CORRECTION)
@ -418,7 +420,12 @@ class Planner {
* extruder - target extruder
* millimeters - the length of the movement, if known
*/
static void _buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const uint8_t extruder, const float &millimeters = 0.0);
static void _buffer_steps(const int32_t (&target)[XYZE]
#if ENABLED(LIN_ADVANCE)
, const float (&target_float)[XYZE]
#endif
, float fr_mm_s, const uint8_t extruder, const float &millimeters=0.0
);
/**
* Planner::buffer_segment
@ -432,7 +439,7 @@ class Planner {
* extruder - target extruder
* millimeters - the length of the movement, if known
*/
static void buffer_segment(const float &a, const float &b, const float &c, const float &e, const float &fr_mm_s, const uint8_t extruder, const float &millimeters = 0.0);
static void buffer_segment(const float &a, const float &b, const float &c, const float &e, const float &fr_mm_s, const uint8_t extruder, const float &millimeters=0.0);
static void _set_position_mm(const float &a, const float &b, const float &c, const float &e);