Merge pull request #8818 from thinkyhead/bf1_reverting_8735

[1.1.x] Revert #8735 "Initial step correction"
master
Scott Lahteine 7 years ago committed by GitHub
commit f0bca012a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -447,13 +447,10 @@ void Stepper::isr() {
}
// If there is no current block, attempt to pop one from the buffer
bool first_step = false;
if (!current_block) {
// Anything in the buffer?
if ((current_block = planner.get_current_block())) {
trapezoid_generator_reset();
TCNT1 = 0; // make sure first pulse is not truncated
first_step = true;
// Initialize Bresenham counters to 1/2 the ceiling
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
if (step_events_completed <= (uint32_t)current_block->accelerate_until) {
if (first_step) {
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;
}
MultiU24X32toH16(acc_step_rate, acceleration_time, current_block->acceleration_rate);
acc_step_rate += current_block->initial_rate;
// upper limit
NOMORE(acc_step_rate, current_block->nominal_rate);

@ -359,6 +359,9 @@ class Stepper {
OCR1A_nominal = calc_timer_interval(current_block->nominal_rate);
// make a note of the number of step loops required at nominal speed
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 (current_block->use_advance_lead) {

Loading…
Cancel
Save