Skip to content

Commit

Permalink
Merge pull request #1 from illuminarti/Fix_E_Speed
Browse files Browse the repository at this point in the history
Fix step rate bug (especially for retraction)
  • Loading branch information
daid committed Mar 15, 2013
1 parent b3ebb71 commit 92782f9
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Marlin/stepper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ static long acceleration_time, deceleration_time;
static unsigned short acc_step_rate; // needed for deccelaration start point
static char step_loops;
static unsigned short OCR1A_nominal;
static unsigned short step_loops_nominal;

volatile long endstops_trigsteps[3]={0,0,0};
volatile long endstops_stepsTotal,endstops_stepsDone;
Expand Down Expand Up @@ -288,6 +289,8 @@ FORCE_INLINE void trapezoid_generator_reset() {
deceleration_time = 0;
// step_rate to timer interval
OCR1A_nominal = calc_timer(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(acc_step_rate);
OCR1A = acceleration_time;
Expand Down Expand Up @@ -665,6 +668,8 @@ ISR(TIMER1_COMPA_vect)
}
else {
OCR1A = OCR1A_nominal;
// ensure we're running at the correct step rate, even if we just came off an acceleration
step_loops = step_loops_nominal;
}

// If current block is finished, reset pointer
Expand Down

0 comments on commit 92782f9

Please sign in to comment.