Skip to content

Commit

Permalink
Fix warnings in stepper.cpp (MarlinFirmware#16364)
Browse files Browse the repository at this point in the history
  • Loading branch information
sjasonsmith authored and webs1821 committed Jan 2, 2020
1 parent c3a3221 commit 4e75204
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions Marlin/src/module/stepper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1405,6 +1405,9 @@ void Stepper::isr() {
ENABLE_ISRS();
}

#define ISR_PULSE_CONTROL (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE)
#define ISR_MULTI_STEPS (ISR_PULSE_CONTROL && DISABLED(I2S_STEPPER_STREAM))

/**
* This phase of the ISR should ONLY create the pulses for the steppers.
* This prevents jitter caused by the interval between the start of the
Expand Down Expand Up @@ -1435,9 +1438,11 @@ void Stepper::stepper_pulse_phase_isr() {
step_events_completed += events_to_do;

// Take multiple steps per interrupt (For high speed moves)
bool firstStep = true;
#if ISR_MULTI_STEPS
bool firstStep = true;
hal_timer_t end_tick_count = 0;
#endif
xyze_bool_t step_needed{0};
hal_timer_t end_tick_count = 0;

do {
#define _APPLY_STEP(AXIS) AXIS ##_APPLY_STEP
Expand Down Expand Up @@ -1494,7 +1499,7 @@ void Stepper::stepper_pulse_phase_isr() {
PULSE_PREP(E);
#endif

#if (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE) && DISABLED(I2S_STEPPER_STREAM)
#if ISR_MULTI_STEPS
if (firstStep)
firstStep = false;
else
Expand Down Expand Up @@ -1525,7 +1530,7 @@ void Stepper::stepper_pulse_phase_isr() {
#endif

// TODO: need to deal with MINIMUM_STEPPER_PULSE over i2s
#if (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE) && DISABLED(I2S_STEPPER_STREAM)
#if ISR_MULTI_STEPS
START_HIGH_PULSE();
AWAIT_HIGH_PULSE();
#endif
Expand Down Expand Up @@ -1558,7 +1563,7 @@ void Stepper::stepper_pulse_phase_isr() {
#endif // !MIXING_EXTRUDER
#endif // !LIN_ADVANCE

#if (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE) && DISABLED(I2S_STEPPER_STREAM)
#if ISR_MULTI_STEPS
if (events_to_do) START_LOW_PULSE();
#endif

Expand Down Expand Up @@ -1947,11 +1952,13 @@ uint32_t Stepper::stepper_block_phase_isr() {
//const hal_timer_t added_step_ticks = hal_timer_t(ADDED_STEP_TICKS);

// Step E stepper if we have steps
bool firstStep = true;
hal_timer_t end_tick_count = 0;
#if ISR_MULTI_STEPS
bool firstStep = true;
hal_timer_t end_tick_count = 0;
#endif

while (LA_steps) {
#if (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE) && DISABLED(I2S_STEPPER_STREAM)
#if ISR_MULTI_STEPS
if (firstStep)
firstStep = false;
else
Expand All @@ -1966,13 +1973,13 @@ uint32_t Stepper::stepper_block_phase_isr() {
#endif

// Enforce a minimum duration for STEP pulse ON
#if (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE)
#if ISR_PULSE_CONTROL
START_HIGH_PULSE();
#endif

LA_steps < 0 ? ++LA_steps : --LA_steps;

#if (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE)
#if ISR_PULSE_CONTROL
AWAIT_HIGH_PULSE();
#endif

Expand All @@ -1985,7 +1992,7 @@ uint32_t Stepper::stepper_block_phase_isr() {

// For minimum pulse time wait before looping
// Just wait for the requested pulse duration
#if (MINIMUM_STEPPER_PULSE || MAXIMUM_STEPPER_RATE)
#if ISR_PULSE_CONTROL
if (LA_steps) START_LOW_PULSE();
#endif
} // LA_steps
Expand Down

0 comments on commit 4e75204

Please sign in to comment.