|
@ -559,6 +559,58 @@ ISR(TIMER1_COMPA_vect) |
|
|
#endif //ADVANCE
|
|
|
#endif //ADVANCE
|
|
|
|
|
|
|
|
|
counter_x += current_block->steps_x; |
|
|
counter_x += current_block->steps_x; |
|
|
|
|
|
#ifdef CONFIG_STEPPERS_TOSHIBA |
|
|
|
|
|
/* The toshiba stepper controller require much longer pulses
|
|
|
|
|
|
* tjerfore we 'stage' decompose the pulses between high, and |
|
|
|
|
|
* low instead of doing each in turn. The extra tests add enough |
|
|
|
|
|
* lag to allow it work with without needing NOPs */ |
|
|
|
|
|
if (counter_x > 0) { |
|
|
|
|
|
WRITE(X_STEP_PIN, HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
counter_y += current_block->steps_y; |
|
|
|
|
|
if (counter_y > 0) { |
|
|
|
|
|
WRITE(Y_STEP_PIN, HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
counter_z += current_block->steps_z; |
|
|
|
|
|
if (counter_z > 0) { |
|
|
|
|
|
WRITE(Z_STEP_PIN, HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifndef ADVANCE |
|
|
|
|
|
counter_e += current_block->steps_e; |
|
|
|
|
|
if (counter_e > 0) { |
|
|
|
|
|
WRITE_E_STEP(HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
#endif //!ADVANCE
|
|
|
|
|
|
|
|
|
|
|
|
if (counter_x > 0) { |
|
|
|
|
|
counter_x -= current_block->step_event_count; |
|
|
|
|
|
count_position[X_AXIS]+=count_direction[X_AXIS]; |
|
|
|
|
|
WRITE(X_STEP_PIN, LOW); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (counter_y > 0) { |
|
|
|
|
|
counter_y -= current_block->step_event_count; |
|
|
|
|
|
count_position[Y_AXIS]+=count_direction[Y_AXIS]; |
|
|
|
|
|
WRITE(Y_STEP_PIN, LOW); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (counter_z > 0) { |
|
|
|
|
|
counter_z -= current_block->step_event_count; |
|
|
|
|
|
count_position[Z_AXIS]+=count_direction[Z_AXIS]; |
|
|
|
|
|
WRITE(Z_STEP_PIN, LOW); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifndef ADVANCE |
|
|
|
|
|
if (counter_e > 0) { |
|
|
|
|
|
counter_e -= current_block->step_event_count; |
|
|
|
|
|
count_position[E_AXIS]+=count_direction[E_AXIS]; |
|
|
|
|
|
WRITE_E_STEP(LOW); |
|
|
|
|
|
} |
|
|
|
|
|
#endif //!ADVANCE
|
|
|
|
|
|
#else |
|
|
if (counter_x > 0) { |
|
|
if (counter_x > 0) { |
|
|
#ifdef DUAL_X_CARRIAGE |
|
|
#ifdef DUAL_X_CARRIAGE |
|
|
if (extruder_duplication_enabled){ |
|
|
if (extruder_duplication_enabled){ |
|
@ -635,6 +687,7 @@ ISR(TIMER1_COMPA_vect) |
|
|
WRITE_E_STEP(INVERT_E_STEP_PIN); |
|
|
WRITE_E_STEP(INVERT_E_STEP_PIN); |
|
|
} |
|
|
} |
|
|
#endif //!ADVANCE
|
|
|
#endif //!ADVANCE
|
|
|
|
|
|
#endif |
|
|
step_events_completed += 1; |
|
|
step_events_completed += 1; |
|
|
if(step_events_completed >= current_block->step_event_count) break; |
|
|
if(step_events_completed >= current_block->step_event_count) break; |
|
|
} |
|
|
} |
|
|