Browse Source

Fix TERN typo, EXTRA_PROBING

Co-Authored-By: Matthew Kennedy <mattkenn4545@gmail.com>
vanilla_fb_2.0.x
Scott Lahteine 4 years ago
parent
commit
e5b0892f08
  1. 2
      Marlin/src/inc/Conditionals_LCD.h
  2. 4
      Marlin/src/inc/SanityCheck.h
  3. 15
      Marlin/src/module/probe.cpp

2
Marlin/src/inc/Conditionals_LCD.h

@ -605,7 +605,7 @@
#define PROBE_TRIGGERED_WHEN_STOWED_TEST 1 // Extra test for Allen Key Probe
#endif
#if MULTIPLE_PROBING > 1
#if EXTRA_PROBING
#if EXTRA_PROBING > 0
#define TOTAL_PROBING (MULTIPLE_PROBING + EXTRA_PROBING)
#else
#define TOTAL_PROBING MULTIPLE_PROBING

4
Marlin/src/inc/SanityCheck.h

@ -1285,8 +1285,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#error "Probes need Z_AFTER_PROBING >= 0."
#endif
#if MULTIPLE_PROBING || EXTRA_PROBING
#if !MULTIPLE_PROBING
#if MULTIPLE_PROBING > 0 || EXTRA_PROBING > 0
#if MULTIPLE_PROBING == 0
#error "EXTRA_PROBING requires MULTIPLE_PROBING."
#elif MULTIPLE_PROBING < 2
#error "MULTIPLE_PROBING must be 2 or more."

15
Marlin/src/module/probe.cpp

@ -565,14 +565,14 @@ float Probe::run_z_probe(const bool sanity_check/*=true*/) {
}
#endif
#ifdef EXTRA_PROBING
#if EXTRA_PROBING > 0
float probes[TOTAL_PROBING];
#endif
#if TOTAL_PROBING > 2
float probes_z_sum = 0;
for (
#if EXTRA_PROBING
#if EXTRA_PROBING > 0
uint8_t p = 0; p < TOTAL_PROBING; p++
#else
uint8_t p = TOTAL_PROBING; p--;
@ -588,7 +588,7 @@ float Probe::run_z_probe(const bool sanity_check/*=true*/) {
const float z = current_position.z;
#if EXTRA_PROBING
#if EXTRA_PROBING > 0
// Insert Z measurement into probes[]. Keep it sorted ascending.
LOOP_LE_N(i, p) { // Iterate the saved Zs to insert the new Z
if (i == p || probes[i] > z) { // Last index or new Z is smaller than this Z
@ -605,14 +605,17 @@ float Probe::run_z_probe(const bool sanity_check/*=true*/) {
#if TOTAL_PROBING > 2
// Small Z raise after all but the last probe
if (TERN(EXTRA_PROBING, p < TOTAL_PROBING - 1, p))
do_blocking_move_to_z(z + Z_CLEARANCE_MULTI_PROBE, MMM_TO_MMS(Z_PROBE_SPEED_FAST));
if (p
#if EXTRA_PROBING > 0
< TOTAL_PROBING - 1
#endif
) do_blocking_move_to_z(z + Z_CLEARANCE_MULTI_PROBE, MMM_TO_MMS(Z_PROBE_SPEED_FAST));
#endif
}
#if TOTAL_PROBING > 2
#if EXTRA_PROBING
#if EXTRA_PROBING > 0
// Take the center value (or average the two middle values) as the median
static constexpr int PHALF = (TOTAL_PROBING - 1) / 2;
const float middle = probes[PHALF],

Loading…
Cancel
Save