Add POWER_LOSS_PIN support
This commit is contained in:
parent
46b0e054b1
commit
7321f30ac0
@ -95,7 +95,7 @@ script:
|
|||||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS PINS_DEBUGGING
|
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS PINS_DEBUGGING
|
||||||
- opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR
|
- opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR
|
||||||
- opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
|
- opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
|
||||||
- opt_enable_adv ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS POWER_LOSS_RECOVERY
|
- opt_enable_adv ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE
|
||||||
- opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING
|
- opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING
|
||||||
- opt_set GRID_MAX_POINTS_X 16
|
- opt_set GRID_MAX_POINTS_X 16
|
||||||
- opt_set_adv FANMUX0_PIN 53
|
- opt_set_adv FANMUX0_PIN 53
|
||||||
|
@ -589,6 +589,10 @@
|
|||||||
* point in the file.
|
* point in the file.
|
||||||
*/
|
*/
|
||||||
//#define POWER_LOSS_RECOVERY
|
//#define POWER_LOSS_RECOVERY
|
||||||
|
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||||
|
//#define POWER_LOSS_PIN 44 // Pin to detect power loss
|
||||||
|
//#define POWER_LOSS_STATE HIGH // State of pin indicating power loss
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sort SD file listings in alphabetical order.
|
* Sort SD file listings in alphabetical order.
|
||||||
|
@ -201,12 +201,19 @@ void save_job_recovery_info() {
|
|||||||
millis_t ms = millis();
|
millis_t ms = millis();
|
||||||
#endif
|
#endif
|
||||||
if (
|
if (
|
||||||
#if SAVE_INFO_INTERVAL_MS > 0
|
// Save on every command
|
||||||
ELAPSED(ms, next_save_ms) ||
|
|
||||||
#endif
|
|
||||||
#if ENABLED(SAVE_EACH_CMD_MODE)
|
#if ENABLED(SAVE_EACH_CMD_MODE)
|
||||||
true
|
true
|
||||||
#else
|
#else
|
||||||
|
// Save if power loss pin is triggered
|
||||||
|
#if PIN_EXISTS(POWER_LOSS)
|
||||||
|
READ(POWER_LOSS_PIN) == POWER_LOSS_STATE ||
|
||||||
|
#endif
|
||||||
|
// Save if interval is elapsed
|
||||||
|
#if SAVE_INFO_INTERVAL_MS > 0
|
||||||
|
ELAPSED(ms, next_save_ms) ||
|
||||||
|
#endif
|
||||||
|
// Save on every new Z height
|
||||||
(current_position[Z_AXIS] > 0 && current_position[Z_AXIS] > job_recovery_info.current_position[Z_AXIS])
|
(current_position[Z_AXIS] > 0 && current_position[Z_AXIS] > job_recovery_info.current_position[Z_AXIS])
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
@ -266,6 +273,11 @@ void save_job_recovery_info() {
|
|||||||
|
|
||||||
card.openJobRecoveryFile(false);
|
card.openJobRecoveryFile(false);
|
||||||
(void)card.saveJobRecoveryInfo();
|
(void)card.saveJobRecoveryInfo();
|
||||||
|
|
||||||
|
// If power-loss pin was triggered, write just once then kill
|
||||||
|
#if PIN_EXISTS(POWER_LOSS)
|
||||||
|
if (READ(POWER_LOSS_PIN) == POWER_LOSS_STATE) kill(MSG_POWER_LOSS_RECOVERY);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user