Configurable kill pin state

Co-Authored-By: AbdullahGheith <abdullahgheith@users.noreply.github.com>
This commit is contained in:
Scott Lahteine 2020-05-05 03:31:03 -05:00
parent 3fd8ef52c5
commit 852a8d6685
3 changed files with 17 additions and 5 deletions

View file

@ -245,8 +245,12 @@ millis_t max_inactive_time, // = 0
void setup_killpin() { void setup_killpin() {
#if HAS_KILL #if HAS_KILL
#if KILL_PIN_STATE
SET_INPUT_PULLDOWN(KILL_PIN);
#else
SET_INPUT_PULLUP(KILL_PIN); SET_INPUT_PULLUP(KILL_PIN);
#endif #endif
#endif
} }
void setup_powerhold() { void setup_powerhold() {
@ -496,7 +500,7 @@ inline void manage_inactivity(const bool ignore_stepper_queue=false) {
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
static int killCount = 0; // make the inactivity button a bit less responsive static int killCount = 0; // make the inactivity button a bit less responsive
const int KILL_DELAY = 750; const int KILL_DELAY = 750;
if (!READ(KILL_PIN)) if (kill_state())
killCount++; killCount++;
else if (killCount > 0) else if (killCount > 0)
killCount--; killCount--;
@ -770,10 +774,10 @@ void minkill(const bool steppers_off/*=false*/) {
#if HAS_KILL #if HAS_KILL
// Wait for kill to be released // Wait for kill to be released
while (!READ(KILL_PIN)) watchdog_refresh(); while (kill_state()) watchdog_refresh();
// Wait for kill to be pressed // Wait for kill to be pressed
while (READ(KILL_PIN)) watchdog_refresh(); while (!kill_state()) watchdog_refresh();
void (*resetFunc)() = 0; // Declare resetFunc() at address 0 void (*resetFunc)() = 0; // Declare resetFunc() at address 0
resetFunc(); // Jump to address 0 resetFunc(); // Jump to address 0

View file

@ -110,6 +110,13 @@ void protected_pin_err();
inline void suicide() { OUT_WRITE(SUICIDE_PIN, SUICIDE_PIN_INVERTING); } inline void suicide() { OUT_WRITE(SUICIDE_PIN, SUICIDE_PIN_INVERTING); }
#endif #endif
#if HAS_KILL
#ifndef KILL_PIN_STATE
#define KILL_PIN_STATE LOW
#endif
inline bool kill_state() { return READ(KILL_PIN) == KILL_PIN_STATE; }
#endif
#if ENABLED(G29_RETRY_AND_RECOVER) #if ENABLED(G29_RETRY_AND_RECOVER)
void event_probe_recover(); void event_probe_recover();
void event_probe_failure(); void event_probe_failure();

View file

@ -1683,8 +1683,9 @@
SERIAL_EOL(); SERIAL_EOL();
#if HAS_KILL #if HAS_KILL
SERIAL_ECHOLNPAIR("Kill pin on :", int(KILL_PIN), " state:", READ(KILL_PIN)); SERIAL_ECHOLNPAIR("Kill pin on :", int(KILL_PIN), " state:", int(kill_state()));
#endif #endif
SERIAL_EOL(); SERIAL_EOL();
serial_delay(50); serial_delay(50);