|
@@ -1485,16 +1485,10 @@ uint32_t Stepper::stepper_block_phase_isr() {
|
1485
|
1485
|
|
1486
|
1486
|
#if ENABLED(LIN_ADVANCE)
|
1487
|
1487
|
if (LA_use_advance_lead) {
|
1488
|
|
- // Wake up eISR on first acceleration loop and fire ISR if final adv_rate is reached
|
1489
|
|
- if (step_events_completed == steps_per_isr || (LA_steps && LA_isr_rate != current_block->advance_speed)) {
|
1490
|
|
- nextAdvanceISR = 0;
|
1491
|
|
- LA_isr_rate = current_block->advance_speed;
|
1492
|
|
- }
|
1493
|
|
- }
|
1494
|
|
- else {
|
1495
|
|
- LA_isr_rate = LA_ADV_NEVER;
|
1496
|
|
- if (LA_steps) nextAdvanceISR = 0;
|
|
1488
|
+ // Fire ISR if final adv_rate is reached
|
|
1489
|
+ if (LA_steps && LA_isr_rate != current_block->advance_speed) nextAdvanceISR = 0;
|
1497
|
1490
|
}
|
|
1491
|
+ else if (LA_steps) nextAdvanceISR = 0;
|
1498
|
1492
|
#endif // LIN_ADVANCE
|
1499
|
1493
|
}
|
1500
|
1494
|
// Are we in Deceleration phase ?
|
|
@@ -1536,17 +1530,13 @@ uint32_t Stepper::stepper_block_phase_isr() {
|
1536
|
1530
|
|
1537
|
1531
|
#if ENABLED(LIN_ADVANCE)
|
1538
|
1532
|
if (LA_use_advance_lead) {
|
1539
|
|
- if (step_events_completed <= decelerate_after + steps_per_isr ||
|
1540
|
|
- (LA_steps && LA_isr_rate != current_block->advance_speed)
|
1541
|
|
- ) {
|
1542
|
|
- nextAdvanceISR = 0; // Wake up eISR on first deceleration loop
|
|
1533
|
+ // Wake up eISR on first deceleration loop and fire ISR if final adv_rate is reached
|
|
1534
|
+ if (step_events_completed <= decelerate_after + steps_per_isr || (LA_steps && LA_isr_rate != current_block->advance_speed)) {
|
|
1535
|
+ nextAdvanceISR = 0;
|
1543
|
1536
|
LA_isr_rate = current_block->advance_speed;
|
1544
|
1537
|
}
|
1545
|
1538
|
}
|
1546
|
|
- else {
|
1547
|
|
- LA_isr_rate = LA_ADV_NEVER;
|
1548
|
|
- if (LA_steps) nextAdvanceISR = 0;
|
1549
|
|
- }
|
|
1539
|
+ else if (LA_steps) nextAdvanceISR = 0;
|
1550
|
1540
|
#endif // LIN_ADVANCE
|
1551
|
1541
|
}
|
1552
|
1542
|
// We must be in cruise phase otherwise
|
|
@@ -1726,7 +1716,11 @@ uint32_t Stepper::stepper_block_phase_isr() {
|
1726
|
1716
|
if ((LA_use_advance_lead = current_block->use_advance_lead)) {
|
1727
|
1717
|
LA_final_adv_steps = current_block->final_adv_steps;
|
1728
|
1718
|
LA_max_adv_steps = current_block->max_adv_steps;
|
|
1719
|
+ //Start the ISR
|
|
1720
|
+ nextAdvanceISR = 0;
|
|
1721
|
+ LA_isr_rate = current_block->advance_speed;
|
1729
|
1722
|
}
|
|
1723
|
+ else LA_isr_rate = LA_ADV_NEVER;
|
1730
|
1724
|
#endif
|
1731
|
1725
|
|
1732
|
1726
|
if (current_block->direction_bits != last_direction_bits
|