Respect minimum direction change delay
This commit is contained in:
parent
6717590631
commit
4b3af0d2df
|
|
@ -785,6 +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);
|
||||||
uint8_t la_state = 0;
|
uint8_t la_state = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -897,6 +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(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
|
||||||
|
|
@ -906,6 +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);
|
||||||
current_adv_steps += e_step_loops;
|
current_adv_steps += e_step_loops;
|
||||||
nextAdvanceISR = eISR_Rate;
|
nextAdvanceISR = eISR_Rate;
|
||||||
}
|
}
|
||||||
|
|
@ -961,7 +964,6 @@ FORCE_INLINE void advance_isr_scheduler() {
|
||||||
uint8_t max_ticks = (eisr? e_step_loops: step_loops);
|
uint8_t max_ticks = (eisr? e_step_loops: step_loops);
|
||||||
max_ticks = min(abs(e_steps), max_ticks);
|
max_ticks = min(abs(e_steps), max_ticks);
|
||||||
bool rev = (e_steps < 0);
|
bool rev = (e_steps < 0);
|
||||||
WRITE_NC(E0_DIR_PIN, rev? INVERT_E0_DIR: !INVERT_E0_DIR);
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN);
|
WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue