Co-Authored-By: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
		@@ -4116,6 +4116,7 @@
 | 
			
		||||
//#define FREEZE_FEATURE
 | 
			
		||||
#if ENABLED(FREEZE_FEATURE)
 | 
			
		||||
  //#define FREEZE_PIN 41   // Override the default (KILL) pin here
 | 
			
		||||
  #define FREEZE_STATE LOW  // State of pin indicating freeze
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -476,7 +476,7 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if HAS_FREEZE_PIN
 | 
			
		||||
    Stepper::frozen = !READ(FREEZE_PIN);
 | 
			
		||||
    stepper.frozen = READ(FREEZE_PIN) == FREEZE_STATE;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if HAS_HOME
 | 
			
		||||
@@ -1166,10 +1166,14 @@ void setup() {
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if HAS_FREEZE_PIN
 | 
			
		||||
  #if ENABLED(FREEZE_FEATURE)
 | 
			
		||||
    SETUP_LOG("FREEZE_PIN");
 | 
			
		||||
    #if FREEZE_STATE
 | 
			
		||||
      SET_INPUT_PULLDOWN(FREEZE_PIN);
 | 
			
		||||
    #else
 | 
			
		||||
      SET_INPUT_PULLUP(FREEZE_PIN);
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if HAS_SUICIDE
 | 
			
		||||
    SETUP_LOG("SUICIDE_PIN");
 | 
			
		||||
 
 | 
			
		||||
@@ -2824,17 +2824,9 @@
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// User Interface
 | 
			
		||||
#if ENABLED(FREEZE_FEATURE)
 | 
			
		||||
  #if !PIN_EXISTS(FREEZE) && PIN_EXISTS(KILL)
 | 
			
		||||
#if ENABLED(FREEZE_FEATURE) && !PIN_EXISTS(FREEZE) && PIN_EXISTS(KILL)
 | 
			
		||||
  #define FREEZE_PIN KILL_PIN
 | 
			
		||||
  #endif
 | 
			
		||||
  #if PIN_EXISTS(FREEZE)
 | 
			
		||||
    #define HAS_FREEZE_PIN 1
 | 
			
		||||
  #endif
 | 
			
		||||
#else
 | 
			
		||||
  #undef FREEZE_PIN
 | 
			
		||||
#endif
 | 
			
		||||
#if PIN_EXISTS(KILL) && TERN1(FREEZE_FEATURE, KILL_PIN != FREEZE_PIN)
 | 
			
		||||
#elif PIN_EXISTS(KILL) && TERN1(FREEZE_FEATURE, KILL_PIN != FREEZE_PIN)
 | 
			
		||||
  #define HAS_KILL 1
 | 
			
		||||
#endif
 | 
			
		||||
#if PIN_EXISTS(HOME)
 | 
			
		||||
 
 | 
			
		||||
@@ -1035,8 +1035,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
 | 
			
		||||
/**
 | 
			
		||||
 * Instant Freeze
 | 
			
		||||
 */
 | 
			
		||||
#if ENABLED(FREEZE_FEATURE) && !PIN_EXISTS(FREEZE)
 | 
			
		||||
  #error "FREEZE_FEATURE requires a FREEZE_PIN to be defined."
 | 
			
		||||
#if ENABLED(FREEZE_FEATURE) && !(PIN_EXISTS(FREEZE) && defined(FREEZE_STATE))
 | 
			
		||||
  #error "FREEZE_FEATURE requires both FREEZE_PIN and FREEZE_STATE."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -189,7 +189,7 @@ bool Stepper::abort_current_block;
 | 
			
		||||
uint32_t Stepper::acceleration_time, Stepper::deceleration_time;
 | 
			
		||||
uint8_t Stepper::steps_per_isr;
 | 
			
		||||
 | 
			
		||||
#if HAS_FREEZE_PIN
 | 
			
		||||
#if ENABLED(FREEZE_FEATURE)
 | 
			
		||||
  bool Stepper::frozen; // = false
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -1643,7 +1643,7 @@ void Stepper::pulse_phase_isr() {
 | 
			
		||||
  if (!current_block) return;
 | 
			
		||||
 | 
			
		||||
  // Skipping step processing causes motion to freeze
 | 
			
		||||
  if (TERN0(HAS_FREEZE_PIN, frozen)) return;
 | 
			
		||||
  if (TERN0(FREEZE_FEATURE, frozen)) return;
 | 
			
		||||
 | 
			
		||||
  // Count of pending loops and events for this iteration
 | 
			
		||||
  const uint32_t pending_events = step_event_count - step_events_completed;
 | 
			
		||||
 
 | 
			
		||||
@@ -336,7 +336,7 @@ class Stepper {
 | 
			
		||||
      static constexpr uint8_t last_moved_extruder = 0;
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #if HAS_FREEZE_PIN
 | 
			
		||||
    #if ENABLED(FREEZE_FEATURE)
 | 
			
		||||
      static bool frozen;                   // Set this flag to instantly freeze motion
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -823,7 +823,7 @@
 | 
			
		||||
#if HAS_KILL
 | 
			
		||||
  REPORT_NAME_DIGITAL(__LINE__, KILL_PIN)
 | 
			
		||||
#endif
 | 
			
		||||
#if HAS_FREEZE_PIN
 | 
			
		||||
#if PIN_EXISTS(FREEZE)
 | 
			
		||||
  REPORT_NAME_DIGITAL(__LINE__, FREEZE_PIN)
 | 
			
		||||
#endif
 | 
			
		||||
#if PIN_EXISTS(LCD_BACKLIGHT)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user