mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2025-12-28 18:30:36 -07:00
🧑💻 TERF - Single line shorthand
This commit is contained in:
parent
c420a0b96a
commit
2700af52c8
3 changed files with 77 additions and 223 deletions
|
|
@ -209,7 +209,10 @@
|
|||
// "Ternary" that emits or omits the given content
|
||||
#define EMIT(V...) V
|
||||
#define OMIT(...)
|
||||
#define TERN_(O,A) _TERN(_ENA_1(O),OMIT,EMIT)(A) // OPTION ? 'A' : '<nul>'
|
||||
#define TERN_(O,A) TERF(O,EMIT)(A) // OPTION ? 'A' : '<nul>' ; Usage: TERN_(OPTION, EMITTHIS)
|
||||
|
||||
// Call G(...) or swallow with OMIT(...)
|
||||
#define TERF(O,G) _TERN(_ENA_1(O),OMIT,G) // OPTION ? 'G' : 'OMIT' ; Usage: TERF(OPTION, CALLTHIS)(ARGS...)
|
||||
|
||||
// Macros to conditionally emit array items and function arguments
|
||||
#define _OPTITEM(A...) A,
|
||||
|
|
|
|||
|
|
@ -2041,33 +2041,15 @@ void Stepper::pulse_phase_isr() {
|
|||
const uint32_t advance_divisor_cached = advance_divisor;
|
||||
|
||||
// Determine if pulses are needed
|
||||
#if HAS_X_STEP
|
||||
PULSE_PREP(X);
|
||||
#endif
|
||||
#if HAS_Y_STEP
|
||||
PULSE_PREP(Y);
|
||||
#endif
|
||||
#if HAS_Z_STEP
|
||||
PULSE_PREP(Z);
|
||||
#endif
|
||||
#if HAS_I_STEP
|
||||
PULSE_PREP(I);
|
||||
#endif
|
||||
#if HAS_J_STEP
|
||||
PULSE_PREP(J);
|
||||
#endif
|
||||
#if HAS_K_STEP
|
||||
PULSE_PREP(K);
|
||||
#endif
|
||||
#if HAS_U_STEP
|
||||
PULSE_PREP(U);
|
||||
#endif
|
||||
#if HAS_V_STEP
|
||||
PULSE_PREP(V);
|
||||
#endif
|
||||
#if HAS_W_STEP
|
||||
PULSE_PREP(W);
|
||||
#endif
|
||||
TERF(HAS_X_STEP, PULSE_PREP)(X);
|
||||
TERF(HAS_Y_STEP, PULSE_PREP)(Y);
|
||||
TERF(HAS_Z_STEP, PULSE_PREP)(Z);
|
||||
TERF(HAS_I_STEP, PULSE_PREP)(I);
|
||||
TERF(HAS_J_STEP, PULSE_PREP)(J);
|
||||
TERF(HAS_K_STEP, PULSE_PREP)(K);
|
||||
TERF(HAS_U_STEP, PULSE_PREP)(U);
|
||||
TERF(HAS_V_STEP, PULSE_PREP)(V);
|
||||
TERF(HAS_W_STEP, PULSE_PREP)(W);
|
||||
|
||||
#if ANY(HAS_E0_STEP, MIXING_EXTRUDER)
|
||||
PULSE_PREP(E);
|
||||
|
|
@ -2117,33 +2099,15 @@ void Stepper::pulse_phase_isr() {
|
|||
#endif
|
||||
|
||||
// Pulse start
|
||||
#if HAS_X_STEP
|
||||
PULSE_START(X);
|
||||
#endif
|
||||
#if HAS_Y_STEP
|
||||
PULSE_START(Y);
|
||||
#endif
|
||||
#if HAS_Z_STEP
|
||||
PULSE_START(Z);
|
||||
#endif
|
||||
#if HAS_I_STEP
|
||||
PULSE_START(I);
|
||||
#endif
|
||||
#if HAS_J_STEP
|
||||
PULSE_START(J);
|
||||
#endif
|
||||
#if HAS_K_STEP
|
||||
PULSE_START(K);
|
||||
#endif
|
||||
#if HAS_U_STEP
|
||||
PULSE_START(U);
|
||||
#endif
|
||||
#if HAS_V_STEP
|
||||
PULSE_START(V);
|
||||
#endif
|
||||
#if HAS_W_STEP
|
||||
PULSE_START(W);
|
||||
#endif
|
||||
TERF(HAS_X_STEP, PULSE_START)(X);
|
||||
TERF(HAS_Y_STEP, PULSE_START)(Y);
|
||||
TERF(HAS_Z_STEP, PULSE_START)(Z);
|
||||
TERF(HAS_I_STEP, PULSE_START)(I);
|
||||
TERF(HAS_J_STEP, PULSE_START)(J);
|
||||
TERF(HAS_K_STEP, PULSE_START)(K);
|
||||
TERF(HAS_U_STEP, PULSE_START)(U);
|
||||
TERF(HAS_V_STEP, PULSE_START)(V);
|
||||
TERF(HAS_W_STEP, PULSE_START)(W);
|
||||
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
if (step_needed.e) {
|
||||
|
|
@ -2163,33 +2127,15 @@ void Stepper::pulse_phase_isr() {
|
|||
#endif
|
||||
|
||||
// Pulse stop
|
||||
#if HAS_X_STEP
|
||||
PULSE_STOP(X);
|
||||
#endif
|
||||
#if HAS_Y_STEP
|
||||
PULSE_STOP(Y);
|
||||
#endif
|
||||
#if HAS_Z_STEP
|
||||
PULSE_STOP(Z);
|
||||
#endif
|
||||
#if HAS_I_STEP
|
||||
PULSE_STOP(I);
|
||||
#endif
|
||||
#if HAS_J_STEP
|
||||
PULSE_STOP(J);
|
||||
#endif
|
||||
#if HAS_K_STEP
|
||||
PULSE_STOP(K);
|
||||
#endif
|
||||
#if HAS_U_STEP
|
||||
PULSE_STOP(U);
|
||||
#endif
|
||||
#if HAS_V_STEP
|
||||
PULSE_STOP(V);
|
||||
#endif
|
||||
#if HAS_W_STEP
|
||||
PULSE_STOP(W);
|
||||
#endif
|
||||
TERF(HAS_X_STEP, PULSE_STOP)(X);
|
||||
TERF(HAS_Y_STEP, PULSE_STOP)(Y);
|
||||
TERF(HAS_Z_STEP, PULSE_STOP)(Z);
|
||||
TERF(HAS_I_STEP, PULSE_STOP)(I);
|
||||
TERF(HAS_J_STEP, PULSE_STOP)(J);
|
||||
TERF(HAS_K_STEP, PULSE_STOP)(K);
|
||||
TERF(HAS_U_STEP, PULSE_STOP)(U);
|
||||
TERF(HAS_V_STEP, PULSE_STOP)(V);
|
||||
TERF(HAS_W_STEP, PULSE_STOP)(W);
|
||||
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
if (step_needed.e) E_STEP_WRITE(mixer.get_stepper(), !STEP_STATE_E);
|
||||
|
|
|
|||
|
|
@ -3131,27 +3131,14 @@ void Temperature::init() {
|
|||
OUT_WRITE(HEATER_0_PIN, ENABLED(HEATER_0_INVERTING));
|
||||
#endif
|
||||
#endif
|
||||
#if HAS_HEATER_1
|
||||
OUT_WRITE(HEATER_1_PIN, ENABLED(HEATER_1_INVERTING));
|
||||
#endif
|
||||
#if HAS_HEATER_2
|
||||
OUT_WRITE(HEATER_2_PIN, ENABLED(HEATER_2_INVERTING));
|
||||
#endif
|
||||
#if HAS_HEATER_3
|
||||
OUT_WRITE(HEATER_3_PIN, ENABLED(HEATER_3_INVERTING));
|
||||
#endif
|
||||
#if HAS_HEATER_4
|
||||
OUT_WRITE(HEATER_4_PIN, ENABLED(HEATER_4_INVERTING));
|
||||
#endif
|
||||
#if HAS_HEATER_5
|
||||
OUT_WRITE(HEATER_5_PIN, ENABLED(HEATER_5_INVERTING));
|
||||
#endif
|
||||
#if HAS_HEATER_6
|
||||
OUT_WRITE(HEATER_6_PIN, ENABLED(HEATER_6_INVERTING));
|
||||
#endif
|
||||
#if HAS_HEATER_7
|
||||
OUT_WRITE(HEATER_7_PIN, ENABLED(HEATER_7_INVERTING));
|
||||
#endif
|
||||
|
||||
TERF(HAS_HEATER_1, OUT_WRITE)(HEATER_1_PIN, ENABLED(HEATER_1_INVERTING));
|
||||
TERF(HAS_HEATER_2, OUT_WRITE)(HEATER_2_PIN, ENABLED(HEATER_2_INVERTING));
|
||||
TERF(HAS_HEATER_3, OUT_WRITE)(HEATER_3_PIN, ENABLED(HEATER_3_INVERTING));
|
||||
TERF(HAS_HEATER_4, OUT_WRITE)(HEATER_4_PIN, ENABLED(HEATER_4_INVERTING));
|
||||
TERF(HAS_HEATER_5, OUT_WRITE)(HEATER_5_PIN, ENABLED(HEATER_5_INVERTING));
|
||||
TERF(HAS_HEATER_6, OUT_WRITE)(HEATER_6_PIN, ENABLED(HEATER_6_INVERTING));
|
||||
TERF(HAS_HEATER_7, OUT_WRITE)(HEATER_7_PIN, ENABLED(HEATER_7_INVERTING));
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
#if ENABLED(PELTIER_BED)
|
||||
|
|
@ -3173,33 +3160,15 @@ void Temperature::init() {
|
|||
OUT_WRITE(COOLER_PIN, ENABLED(COOLER_INVERTING));
|
||||
#endif
|
||||
|
||||
#if HAS_FAN0
|
||||
INIT_FAN_PIN(FAN0_PIN);
|
||||
#endif
|
||||
#if HAS_FAN1
|
||||
INIT_FAN_PIN(FAN1_PIN);
|
||||
#endif
|
||||
#if HAS_FAN2
|
||||
INIT_FAN_PIN(FAN2_PIN);
|
||||
#endif
|
||||
#if HAS_FAN3
|
||||
INIT_FAN_PIN(FAN3_PIN);
|
||||
#endif
|
||||
#if HAS_FAN4
|
||||
INIT_FAN_PIN(FAN4_PIN);
|
||||
#endif
|
||||
#if HAS_FAN5
|
||||
INIT_FAN_PIN(FAN5_PIN);
|
||||
#endif
|
||||
#if HAS_FAN6
|
||||
INIT_FAN_PIN(FAN6_PIN);
|
||||
#endif
|
||||
#if HAS_FAN7
|
||||
INIT_FAN_PIN(FAN7_PIN);
|
||||
#endif
|
||||
#if ENABLED(USE_CONTROLLER_FAN)
|
||||
INIT_FAN_PIN(CONTROLLER_FAN_PIN);
|
||||
#endif
|
||||
TERF(HAS_FAN0, INIT_FAN_PIN)(FAN0_PIN);
|
||||
TERF(HAS_FAN1, INIT_FAN_PIN)(FAN1_PIN);
|
||||
TERF(HAS_FAN2, INIT_FAN_PIN)(FAN2_PIN);
|
||||
TERF(HAS_FAN3, INIT_FAN_PIN)(FAN3_PIN);
|
||||
TERF(HAS_FAN4, INIT_FAN_PIN)(FAN4_PIN);
|
||||
TERF(HAS_FAN5, INIT_FAN_PIN)(FAN5_PIN);
|
||||
TERF(HAS_FAN6, INIT_FAN_PIN)(FAN6_PIN);
|
||||
TERF(HAS_FAN7, INIT_FAN_PIN)(FAN7_PIN);
|
||||
TERF(USE_CONTROLLER_FAN, INIT_FAN_PIN)(CONTROLLER_FAN_PIN);
|
||||
|
||||
TERN_(HAS_MAXTC_SW_SPI, max_tc_spi.init());
|
||||
|
||||
|
|
@ -3229,9 +3198,7 @@ void Temperature::init() {
|
|||
TERN_(POWER_MONITOR_CURRENT, hal.adc_enable(POWER_MONITOR_CURRENT_PIN));
|
||||
TERN_(POWER_MONITOR_VOLTAGE, hal.adc_enable(POWER_MONITOR_VOLTAGE_PIN));
|
||||
|
||||
#if HAS_JOY_ADC_EN
|
||||
SET_INPUT_PULLUP(JOY_EN_PIN);
|
||||
#endif
|
||||
TERF(HAS_JOY_ADC_EN, SET_INPUT_PULLUP)(JOY_EN_PIN);
|
||||
|
||||
HAL_timer_start(MF_TIMER_TEMP, TEMP_TIMER_FREQUENCY);
|
||||
ENABLE_TEMPERATURE_INTERRUPT();
|
||||
|
|
@ -4140,18 +4107,12 @@ void Temperature::isr() {
|
|||
|
||||
#if HAS_HEATED_BED
|
||||
_PWM_MOD(BED, soft_pwm_bed, temp_bed);
|
||||
#if ENABLED(PELTIER_BED)
|
||||
WRITE_PELTIER_DIR(temp_bed.peltier_dir_heating);
|
||||
#endif
|
||||
TERF(PELTIER_BED, WRITE_PELTIER_DIR)(temp_bed.peltier_dir_heating);
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_CHAMBER
|
||||
_PWM_MOD(CHAMBER, soft_pwm_chamber, temp_chamber);
|
||||
#endif
|
||||
TERF(HAS_HEATED_CHAMBER, _PWM_MOD)(CHAMBER, soft_pwm_chamber, temp_chamber);
|
||||
|
||||
#if HAS_COOLER
|
||||
_PWM_MOD(COOLER, soft_pwm_cooler, temp_cooler);
|
||||
#endif
|
||||
TERF(HAS_COOLER, _PWM_MOD)(COOLER, soft_pwm_cooler, temp_cooler);
|
||||
|
||||
#if ENABLED(FAN_SOFT_PWM)
|
||||
|
||||
|
|
@ -4165,30 +4126,14 @@ void Temperature::isr() {
|
|||
WRITE_FAN(N, spcf > pwm_mask ? HIGH : LOW); \
|
||||
}while(0)
|
||||
|
||||
#if HAS_FAN0
|
||||
_FAN_PWM(0);
|
||||
#endif
|
||||
#if HAS_FAN1
|
||||
_FAN_PWM(1);
|
||||
#endif
|
||||
#if HAS_FAN2
|
||||
_FAN_PWM(2);
|
||||
#endif
|
||||
#if HAS_FAN3
|
||||
_FAN_PWM(3);
|
||||
#endif
|
||||
#if HAS_FAN4
|
||||
_FAN_PWM(4);
|
||||
#endif
|
||||
#if HAS_FAN5
|
||||
_FAN_PWM(5);
|
||||
#endif
|
||||
#if HAS_FAN6
|
||||
_FAN_PWM(6);
|
||||
#endif
|
||||
#if HAS_FAN7
|
||||
_FAN_PWM(7);
|
||||
#endif
|
||||
TERF(HAS_FAN0, _FAN_PWM)(0);
|
||||
TERF(HAS_FAN1, _FAN_PWM)(1);
|
||||
TERF(HAS_FAN2, _FAN_PWM)(2);
|
||||
TERF(HAS_FAN3, _FAN_PWM)(3);
|
||||
TERF(HAS_FAN4, _FAN_PWM)(4);
|
||||
TERF(HAS_FAN5, _FAN_PWM)(5);
|
||||
TERF(HAS_FAN6, _FAN_PWM)(6);
|
||||
TERF(HAS_FAN7, _FAN_PWM)(7);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
|
|
@ -4198,17 +4143,9 @@ void Temperature::isr() {
|
|||
REPEAT(HOTENDS, _PWM_LOW_E);
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
_PWM_LOW(BED, soft_pwm_bed);
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_CHAMBER
|
||||
_PWM_LOW(CHAMBER, soft_pwm_chamber);
|
||||
#endif
|
||||
|
||||
#if HAS_COOLER
|
||||
_PWM_LOW(COOLER, soft_pwm_cooler);
|
||||
#endif
|
||||
TERF(HAS_HEATED_BED, _PWM_LOW)(BED, soft_pwm_bed);
|
||||
TERF(HAS_HEATED_CHAMBER, _PWM_LOW)(CHAMBER, soft_pwm_chamber);
|
||||
TERF(HAS_COOLER, _PWM_LOW)(COOLER, soft_pwm_cooler);
|
||||
|
||||
#if ENABLED(FAN_SOFT_PWM)
|
||||
#if HAS_FAN0
|
||||
|
|
@ -4271,17 +4208,9 @@ void Temperature::isr() {
|
|||
REPEAT(HOTENDS, _SLOW_PWM_E);
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
_SLOW_PWM(BED, soft_pwm_bed, temp_bed);
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_CHAMBER
|
||||
_SLOW_PWM(CHAMBER, soft_pwm_chamber, temp_chamber);
|
||||
#endif
|
||||
|
||||
#if HAS_COOLER
|
||||
_SLOW_PWM(COOLER, soft_pwm_cooler, temp_cooler);
|
||||
#endif
|
||||
TERF(HAS_HEATED_BED, _SLOW_PWM)(BED, soft_pwm_bed, temp_bed);
|
||||
TERF(HAS_HEATED_CHAMBER, _SLOW_PWM)(CHAMBER, soft_pwm_chamber, temp_chamber);
|
||||
TERF(HAS_COOLER, _SLOW_PWM)(COOLER, soft_pwm_cooler, temp_cooler);
|
||||
|
||||
} // slow_pwm_count == 0
|
||||
|
||||
|
|
@ -4290,17 +4219,9 @@ void Temperature::isr() {
|
|||
REPEAT(HOTENDS, _PWM_OFF_E);
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
_PWM_OFF(BED, soft_pwm_bed);
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_CHAMBER
|
||||
_PWM_OFF(CHAMBER, soft_pwm_chamber);
|
||||
#endif
|
||||
|
||||
#if HAS_COOLER
|
||||
_PWM_OFF(COOLER, soft_pwm_cooler, temp_cooler);
|
||||
#endif
|
||||
TERF(HAS_HEATED_BED, _PWM_OFF)(BED, soft_pwm_bed);
|
||||
TERF(HAS_HEATED_CHAMBER, _PWM_OFF)(CHAMBER, soft_pwm_chamber);
|
||||
TERF(HAS_COOLER, _PWM_OFF)(COOLER, soft_pwm_cooler, temp_cooler);
|
||||
|
||||
#if ENABLED(FAN_SOFT_PWM)
|
||||
if (pwm_count_tmp >= 127) {
|
||||
|
|
@ -4309,30 +4230,14 @@ void Temperature::isr() {
|
|||
soft_pwm_count_fan[N] = soft_pwm_amount_fan[N] >> 1; \
|
||||
WRITE_FAN(N, soft_pwm_count_fan[N] > 0 ? HIGH : LOW); \
|
||||
}while(0)
|
||||
#if HAS_FAN0
|
||||
_PWM_FAN(0);
|
||||
#endif
|
||||
#if HAS_FAN1
|
||||
_PWM_FAN(1);
|
||||
#endif
|
||||
#if HAS_FAN2
|
||||
_PWM_FAN(2);
|
||||
#endif
|
||||
#if HAS_FAN3
|
||||
_FAN_PWM(3);
|
||||
#endif
|
||||
#if HAS_FAN4
|
||||
_FAN_PWM(4);
|
||||
#endif
|
||||
#if HAS_FAN5
|
||||
_FAN_PWM(5);
|
||||
#endif
|
||||
#if HAS_FAN6
|
||||
_FAN_PWM(6);
|
||||
#endif
|
||||
#if HAS_FAN7
|
||||
_FAN_PWM(7);
|
||||
#endif
|
||||
TERF(HAS_FAN0, _PWM_FAN)(0);
|
||||
TERF(HAS_FAN1, _PWM_FAN)(1);
|
||||
TERF(HAS_FAN2, _PWM_FAN)(2);
|
||||
TERF(HAS_FAN3, _FAN_PWM)(3);
|
||||
TERF(HAS_FAN4, _FAN_PWM)(4);
|
||||
TERF(HAS_FAN5, _FAN_PWM)(5);
|
||||
TERF(HAS_FAN6, _FAN_PWM)(6);
|
||||
TERF(HAS_FAN7, _FAN_PWM)(7);
|
||||
}
|
||||
#if HAS_FAN0
|
||||
if (soft_pwm_count_fan[0] <= pwm_count_tmp) WRITE_FAN(0, LOW);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue