To allow for the case where a Z endstop (e.g., hall effect) is higher than the probe trigger point, don't check the Z min endstop during probe moves. See #11134
1. The CORExx printers were checking more endstop axis than needed.
2. Removed all the CORE_xx_NOT logic. The motor_direction(xx) routine
always returns the correct data so it is not needed. It was actually
cause the wrong direction to be checked in some cases.
3. Made the logic/defines for X, Y & Z axis all the same. The old logic
checked inappropriate configurations for Y and didn't check all the
correct configurations on Z.
4. Added a check for zero steps before the X, Y & Z axis. Previously
would check the they axis even if there were no movement.
Made the double touch portion a conditional compile based on the
PROBE_DOUBLE_TOUCH flag.
==============================================
Bugfix
The current G38 only stopped a move if it involved the Z axis.
Moved all the G38 code to it's own section and put it where it would
always be executed no matter what axis was moving or if the endstop was
enabled.
Also added a comment to configuration_adv to alert the user the double
tap had to be turned on.
==============================================
Change G38 back to using Z_MIN_PROBE
There's no Z_MIN endstop if Z_DUAL_ENDSTOPS is enabled and you have them
set to the top of the gantry.
G38 started out as using the Z_MIN_PROBE pin. I don't remember why we
changed it to the Z_MIN endstop.
In the endstop testing section, add the "reverse" logic in addition to "normal" core handling.
In CoreXY/YZ/XZ steppers rotating the same direction gives X movement. Opposing directions produces Y movement.
In CoreYX/ZY/ZX this is reversed. Same = Y, Opposite = X.
----
Fixes the issue where the Y endstop was being checked when moving in the X direction, etc.