mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2025-07-06 22:47:27 -06:00
🧑💻 ALIM(I,ARR) macro
This commit is contained in:
parent
54c1a1df4e
commit
b12028f4dd
5 changed files with 8 additions and 9 deletions
|
@ -547,6 +547,9 @@
|
|||
|
||||
#endif
|
||||
|
||||
// Limit an index to an array size
|
||||
#define ALIM(I,ARR) _MIN(I, (signed)COUNT(ARR) - 1)
|
||||
|
||||
// Macros for adding
|
||||
#define INC_0 1
|
||||
#define INC_1 2
|
||||
|
|
|
@ -197,7 +197,7 @@ bool MarlinUI::detected() { return true; }
|
|||
#endif
|
||||
{
|
||||
#if ENABLED(CUSTOM_BOOTSCREEN_ANIMATED_FRAME_TIME)
|
||||
const uint8_t fr = _MIN(f, COUNT(custom_bootscreen_animation) - 1);
|
||||
const uint8_t fr = ALIM(f, custom_bootscreen_animation);
|
||||
const millis_t frame_time = pgm_read_word(&custom_bootscreen_animation[fr].duration);
|
||||
#endif
|
||||
u8g.firstPage();
|
||||
|
|
|
@ -359,7 +359,7 @@ typedef struct PlannerSettings {
|
|||
#if ENABLED(EDITABLE_STEPS_PER_UNIT)
|
||||
float axis_steps_per_mm[DISTINCT_AXES];
|
||||
#else
|
||||
#define _DLIM(I) _MIN(I, (signed)COUNT(_dasu) - 1)
|
||||
#define _DLIM(I) ALIM(I, _dasu)
|
||||
#define _DASU(N) _dasu[_DLIM(N)],
|
||||
#define _EASU(N) _dasu[_DLIM(E_AXIS + N)],
|
||||
static constexpr float axis_steps_per_mm[DISTINCT_AXES] = {
|
||||
|
|
|
@ -200,9 +200,6 @@ typedef struct { bool NUM_AXIS_LIST_(X:1, Y:1, Z:1, I:1, J:1, K:1, U:1, V:1,
|
|||
|
||||
#undef _EN_ITEM
|
||||
|
||||
// Limit an index to an array size
|
||||
#define ALIM(I,ARR) _MIN(I, (signed)COUNT(ARR) - 1)
|
||||
|
||||
// Defaults for reset / fill in on load
|
||||
static const uint32_t _DMA[] PROGMEM = DEFAULT_MAX_ACCELERATION;
|
||||
static const feedRate_t _DMF[] PROGMEM = DEFAULT_MAX_FEEDRATE;
|
||||
|
@ -3619,7 +3616,7 @@ void MarlinSettings::reset() {
|
|||
|
||||
constexpr float linAdvanceK[] = ADVANCE_K;
|
||||
EXTRUDER_LOOP() {
|
||||
const float a = linAdvanceK[_MAX(uint8_t(e), COUNT(linAdvanceK) - 1)];
|
||||
const float a = linAdvanceK[ALIM(e, linAdvanceK)];
|
||||
planner.extruder_advance_K[e] = a;
|
||||
TERN_(ADVANCE_K_EXTRA, other_extruder_advance_K[e] = a);
|
||||
}
|
||||
|
@ -3630,7 +3627,7 @@ void MarlinSettings::reset() {
|
|||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
constexpr float linAdvanceTau[] = ADVANCE_TAU;
|
||||
EXTRUDER_LOOP()
|
||||
stepper.set_advance_tau(linAdvanceTau[_MAX(uint8_t(e), COUNT(linAdvanceTau) - 1)], e);
|
||||
stepper.set_advance_tau(linAdvanceTau[ALIM(e, linAdvanceTau)], e);
|
||||
#else
|
||||
stepper.set_advance_tau(ADVANCE_TAU);
|
||||
#endif
|
||||
|
|
|
@ -140,7 +140,6 @@ constexpr ena_mask_t enable_overlap[] = {
|
|||
#ifdef SHAPING_MAX_STEPRATE
|
||||
constexpr float max_step_rate = SHAPING_MAX_STEPRATE;
|
||||
#else
|
||||
#define ISALIM(I, ARR) _MIN(I, COUNT(ARR) - 1)
|
||||
constexpr float _ISDASU[] = DEFAULT_AXIS_STEPS_PER_UNIT;
|
||||
constexpr feedRate_t _ISDMF[] = DEFAULT_MAX_FEEDRATE;
|
||||
constexpr float max_shaped_rate = TERN0(INPUT_SHAPING_X, _ISDMF[X_AXIS] * _ISDASU[X_AXIS]) +
|
||||
|
@ -149,7 +148,7 @@ constexpr ena_mask_t enable_overlap[] = {
|
|||
#if defined(__AVR__) || !defined(ADAPTIVE_STEP_SMOOTHING)
|
||||
// min_step_isr_frequency is known at compile time on AVRs and any reduction in SRAM is welcome
|
||||
template<unsigned int INDEX=DISTINCT_AXES> constexpr float max_isr_rate() {
|
||||
return _MAX(_ISDMF[ISALIM(INDEX - 1, _ISDMF)] * _ISDASU[ISALIM(INDEX - 1, _ISDASU)], max_isr_rate<INDEX - 1>());
|
||||
return _MAX(_ISDMF[ALIM(INDEX - 1, _ISDMF)] * _ISDASU[ALIM(INDEX - 1, _ISDASU)], max_isr_rate<INDEX - 1>());
|
||||
}
|
||||
template<> constexpr float max_isr_rate<0>() {
|
||||
return TERN0(ADAPTIVE_STEP_SMOOTHING, min_step_isr_frequency);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue