|
|
|
@ -99,6 +99,13 @@ static volatile char endstop_hit_bits = 0; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
static bool check_endstops = true;
|
|
|
|
|
static bool check_endstops_global =
|
|
|
|
|
#if ENABLED(ENDSTOPS_ONLY_FOR_HOMING)
|
|
|
|
|
false
|
|
|
|
|
#else
|
|
|
|
|
true
|
|
|
|
|
#endif
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
volatile long count_position[NUM_AXIS] = { 0 }; // Positions of stepper motors, in step units
|
|
|
|
|
volatile signed char count_direction[NUM_AXIS] = { 1 };
|
|
|
|
@ -252,9 +259,13 @@ volatile signed char count_direction[NUM_AXIS] = { 1 };
|
|
|
|
|
#define ENABLE_STEPPER_DRIVER_INTERRUPT() SBI(TIMSK1, OCIE1A)
|
|
|
|
|
#define DISABLE_STEPPER_DRIVER_INTERRUPT() CBI(TIMSK1, OCIE1A)
|
|
|
|
|
|
|
|
|
|
void endstops_hit_on_purpose() {
|
|
|
|
|
endstop_hit_bits = 0;
|
|
|
|
|
}
|
|
|
|
|
void enable_endstops(bool check) { check_endstops = check; }
|
|
|
|
|
|
|
|
|
|
void enable_endstops_globally(bool check) { check_endstops_global = check_endstops = check; }
|
|
|
|
|
|
|
|
|
|
void endstops_not_homing() { check_endstops = check_endstops_global; }
|
|
|
|
|
|
|
|
|
|
void endstops_hit_on_purpose() { endstop_hit_bits = 0; }
|
|
|
|
|
|
|
|
|
|
void checkHitEndstops() {
|
|
|
|
|
if (endstop_hit_bits) {
|
|
|
|
@ -293,8 +304,6 @@ void checkHitEndstops() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void enable_endstops(bool check) { check_endstops = check; }
|
|
|
|
|
|
|
|
|
|
// Check endstops - Called from ISR!
|
|
|
|
|
inline void update_endstops() {
|
|
|
|
|
|
|
|
|
|