|
@@ -785,7 +785,7 @@ FORCE_INLINE void isr() {
|
|
|
|
|
|
|
|
|
|
#ifdef LIN_ADVANCE
|
|
#ifdef LIN_ADVANCE
|
|
- WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
|
|
|
|
|
|
+ if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
|
|
uint8_t la_state = 0;
|
|
uint8_t la_state = 0;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -898,7 +898,7 @@ FORCE_INLINE void advance_isr() {
|
|
if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) {
|
|
if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) {
|
|
// decompression
|
|
// decompression
|
|
e_steps -= e_step_loops;
|
|
e_steps -= e_step_loops;
|
|
- WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
|
|
|
|
|
|
+ if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
|
|
if(current_adv_steps > e_step_loops)
|
|
if(current_adv_steps > e_step_loops)
|
|
current_adv_steps -= e_step_loops;
|
|
current_adv_steps -= e_step_loops;
|
|
else
|
|
else
|
|
@@ -908,7 +908,7 @@ FORCE_INLINE void advance_isr() {
|
|
else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) {
|
|
else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) {
|
|
// compression
|
|
// compression
|
|
e_steps += e_step_loops;
|
|
e_steps += e_step_loops;
|
|
- WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
|
|
|
|
|
|
+ if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
|
|
current_adv_steps += e_step_loops;
|
|
current_adv_steps += e_step_loops;
|
|
nextAdvanceISR = eISR_Rate;
|
|
nextAdvanceISR = eISR_Rate;
|
|
}
|
|
}
|