|
|
@ -462,12 +462,12 @@ int Temperature::getHeaterPower(int heater) { |
|
|
|
AUTO_3_IS_0 ? 0 : AUTO_3_IS_1 ? 1 : AUTO_3_IS_2 ? 2 : 3 |
|
|
|
}; |
|
|
|
uint8_t fanState = 0; |
|
|
|
|
|
|
|
|
|
|
|
HOTEND_LOOP() { |
|
|
|
if (current_temperature[e] > EXTRUDER_AUTO_FAN_TEMPERATURE) |
|
|
|
SBI(fanState, fanBit[e]); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
uint8_t fanDone = 0; |
|
|
|
for (uint8_t f = 0; f < COUNT(fanPin); f++) { |
|
|
|
int8_t pin = fanPin[f]; |
|
|
@ -1393,6 +1393,87 @@ void Temperature::set_current_temp_raw() { |
|
|
|
temp_meas_ready = true; |
|
|
|
} |
|
|
|
|
|
|
|
#if ENABLED(PINS_DEBUGGING) |
|
|
|
/**
|
|
|
|
* monitors endstops & Z probe for changes |
|
|
|
* |
|
|
|
* If a change is detected then the LED is toggled and |
|
|
|
* a message is sent out the serial port |
|
|
|
* |
|
|
|
* Yes, we could miss a rapid back & forth change but |
|
|
|
* that won't matter because this is all manual. |
|
|
|
* |
|
|
|
*/ |
|
|
|
void endstop_monitor() { |
|
|
|
static uint16_t old_endstop_bits_local = 0; |
|
|
|
static uint8_t local_LED_status = 0; |
|
|
|
uint16_t current_endstop_bits_local = 0; |
|
|
|
#if HAS_X_MIN |
|
|
|
if (READ(X_MIN_PIN)) SBI(current_endstop_bits_local, X_MIN); |
|
|
|
#endif |
|
|
|
#if HAS_X_MAX |
|
|
|
if (READ(X_MAX_PIN)) SBI(current_endstop_bits_local, X_MAX); |
|
|
|
#endif |
|
|
|
#if HAS_Y_MIN |
|
|
|
if (READ(Y_MIN_PIN)) SBI(current_endstop_bits_local, Y_MIN); |
|
|
|
#endif |
|
|
|
#if HAS_Y_MAX |
|
|
|
if (READ(Y_MAX_PIN)) SBI(current_endstop_bits_local, Y_MAX); |
|
|
|
#endif |
|
|
|
#if HAS_Z_MIN |
|
|
|
if (READ(Z_MIN_PIN)) SBI(current_endstop_bits_local, Z_MIN); |
|
|
|
#endif |
|
|
|
#if HAS_Z_MAX |
|
|
|
if (READ(Z_MAX_PIN)) SBI(current_endstop_bits_local, Z_MAX); |
|
|
|
#endif |
|
|
|
#if HAS_Z_MIN_PROBE_PIN |
|
|
|
if (READ(Z_MIN_PROBE_PIN)) SBI(current_endstop_bits_local, Z_MIN_PROBE); |
|
|
|
#endif |
|
|
|
#if HAS_Z2_MIN |
|
|
|
if (READ(Z2_MIN_PIN)) SBI(current_endstop_bits_local, Z2_MIN); |
|
|
|
#endif |
|
|
|
#if HAS_Z2_MAX |
|
|
|
if (READ(Z2_MAX_PIN)) SBI(current_endstop_bits_local, Z2_MAX); |
|
|
|
#endif |
|
|
|
|
|
|
|
uint16_t endstop_change = current_endstop_bits_local ^ old_endstop_bits_local; |
|
|
|
|
|
|
|
if (endstop_change) { |
|
|
|
#if HAS_X_MIN |
|
|
|
if (TEST(endstop_change, X_MIN)) SERIAL_PROTOCOLPAIR("X_MIN:", !!TEST(current_endstop_bits_local, X_MIN)); |
|
|
|
#endif |
|
|
|
#if HAS_X_MAX |
|
|
|
if (TEST(endstop_change, X_MAX)) SERIAL_PROTOCOLPAIR(" X_MAX:", !!TEST(current_endstop_bits_local, X_MAX)); |
|
|
|
#endif |
|
|
|
#if HAS_Y_MIN |
|
|
|
if (TEST(endstop_change, Y_MIN)) SERIAL_PROTOCOLPAIR(" Y_MIN:", !!TEST(current_endstop_bits_local, Y_MIN)); |
|
|
|
#endif |
|
|
|
#if HAS_Y_MAX |
|
|
|
if (TEST(endstop_change, Y_MAX)) SERIAL_PROTOCOLPAIR(" Y_MAX:", !!TEST(current_endstop_bits_local, Y_MAX)); |
|
|
|
#endif |
|
|
|
#if HAS_Z_MIN |
|
|
|
if (TEST(endstop_change, Z_MIN)) SERIAL_PROTOCOLPAIR(" Z_MIN:", !!TEST(current_endstop_bits_local, Z_MIN)); |
|
|
|
#endif |
|
|
|
#if HAS_Z_MAX |
|
|
|
if (TEST(endstop_change, Z_MAX)) SERIAL_PROTOCOLPAIR(" Z_MAX:", !!TEST(current_endstop_bits_local, Z_MAX)); |
|
|
|
#endif |
|
|
|
#if HAS_Z_MIN_PROBE_PIN |
|
|
|
if (TEST(endstop_change, Z_MIN_PROBE)) SERIAL_PROTOCOLPAIR(" PROBE:", !!TEST(current_endstop_bits_local, Z_MIN_PROBE)); |
|
|
|
#endif |
|
|
|
#if HAS_Z2_MIN |
|
|
|
if (TEST(endstop_change, Z2_MIN)) SERIAL_PROTOCOLPAIR(" Z2_MIN:", !!TEST(current_endstop_bits_local, Z2_MIN)); |
|
|
|
#endif |
|
|
|
#if HAS_Z2_MAX |
|
|
|
if (TEST(endstop_change, Z2_MAX)) SERIAL_PROTOCOLPAIR(" Z2_MAX:", !!TEST(current_endstop_bits_local, Z2_MAX)); |
|
|
|
#endif |
|
|
|
SERIAL_PROTOCOLPGM("\n\n"); |
|
|
|
analogWrite(LED_PIN, local_LED_status); |
|
|
|
local_LED_status ^= 255; |
|
|
|
old_endstop_bits_local = current_endstop_bits_local; |
|
|
|
} |
|
|
|
} |
|
|
|
#endif // PINS_DEBUGGING
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Timer 0 is shared with millies so don't change the prescaler. |
|
|
|
* |
|
|
@ -1848,4 +1929,15 @@ void Temperature::isr() { |
|
|
|
} |
|
|
|
} |
|
|
|
#endif //BABYSTEPPING
|
|
|
|
|
|
|
|
#if ENABLED(PINS_DEBUGGING) |
|
|
|
extern bool endstop_monitor_flag; |
|
|
|
// run the endstop monitor at 15Hz
|
|
|
|
static uint8_t endstop_monitor_count = 16; // offset this check from the others
|
|
|
|
if (endstop_monitor_flag) { |
|
|
|
endstop_monitor_count += _BV(1); // 15 Hz
|
|
|
|
endstop_monitor_count &= 0x7F; |
|
|
|
if (!endstop_monitor_count) endstop_monitor(); // report changes in endstop status
|
|
|
|
} |
|
|
|
#endif |
|
|
|
} |
|
|
|