1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-24 04:29:34 +00:00

Revert "[Bugfix-1.1.x] initial step correction (#8735)"

This reverts commit ec028bf747.
This commit is contained in:
Scott Lahteine 2017-12-17 01:54:17 -06:00
parent f5fc851925
commit 56d355f8de
2 changed files with 5 additions and 11 deletions

View File

@ -447,13 +447,10 @@ void Stepper::isr() {
} }
// If there is no current block, attempt to pop one from the buffer // If there is no current block, attempt to pop one from the buffer
bool first_step = false;
if (!current_block) { if (!current_block) {
// Anything in the buffer? // Anything in the buffer?
if ((current_block = planner.get_current_block())) { if ((current_block = planner.get_current_block())) {
trapezoid_generator_reset(); trapezoid_generator_reset();
TCNT1 = 0; // make sure first pulse is not truncated
first_step = true;
// Initialize Bresenham counters to 1/2 the ceiling // Initialize Bresenham counters to 1/2 the ceiling
counter_X = counter_Y = counter_Z = counter_E = -(current_block->step_event_count >> 1); counter_X = counter_Y = counter_Z = counter_E = -(current_block->step_event_count >> 1);
@ -708,14 +705,8 @@ void Stepper::isr() {
// Calculate new timer value // Calculate new timer value
if (step_events_completed <= (uint32_t)current_block->accelerate_until) { if (step_events_completed <= (uint32_t)current_block->accelerate_until) {
if (first_step) { MultiU24X32toH16(acc_step_rate, acceleration_time, current_block->acceleration_rate);
acc_step_rate = current_block->initial_rate; acc_step_rate += current_block->initial_rate;
acceleration_time = 0;
}
else {
MultiU24X32toH16(acc_step_rate, acceleration_time, current_block->acceleration_rate);
acc_step_rate += current_block->initial_rate;
}
// upper limit // upper limit
NOMORE(acc_step_rate, current_block->nominal_rate); NOMORE(acc_step_rate, current_block->nominal_rate);

View File

@ -359,6 +359,9 @@ class Stepper {
OCR1A_nominal = calc_timer_interval(current_block->nominal_rate); OCR1A_nominal = calc_timer_interval(current_block->nominal_rate);
// make a note of the number of step loops required at nominal speed // make a note of the number of step loops required at nominal speed
step_loops_nominal = step_loops; step_loops_nominal = step_loops;
acc_step_rate = current_block->initial_rate;
acceleration_time = calc_timer_interval(acc_step_rate);
_NEXT_ISR(acceleration_time);
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)
if (current_block->use_advance_lead) { if (current_block->use_advance_lead) {