Sprinter narrow pulse width January 06, 2012 11:00PM |
Registered: 14 years ago Posts: 31 |
while(((unsigned long)timediff) >= interval && axis_steps_remaining[primary_axis] > 0) { steps_done++; steps_remaining--; axis_steps_remaining[primary_axis]--; timediff -= interval; do_step(primary_axis); axis_previous_micros[primary_axis] += interval; for(int i=0; i < NUM_AXIS; i++) if(i != primary_axis && axis_steps_remaining > 0) { axis_error = axis_error - delta; if(axis_error < 0) { do_step(i); axis_steps_remaining--; axis_error = axis_error + delta[primary_axis]; } } #ifdef STEP_DELAY_RATIO if(timediff >= interval) delayMicroseconds(long_step_delay_ratio * interval / 10000); #endif #ifdef STEP_DELAY_MICROS if(timediff >= interval) delayMicroseconds(STEP_DELAY_MICROS); #endif } } } #ifdef DEBUG_MOVE_TIME log_ulong("_MOVE_TIME - This move took", micros()-startmove); #endif if(DISABLE_X) disable_x(); if(DISABLE_Y) disable_y(); if(DISABLE_Z) disable_z(); if(DISABLE_E) disable_e(); // Update current position partly based on direction, we probably can combine this with the direction code above... for(int i=0; i < NUM_AXIS; i++) { if (destination > current_position) current_position = current_position + steps_taken / axis_steps_per_unit; else current_position = current_position - steps_taken / axis_steps_per_unit; } } void do_step(int axis) { switch(axis){ case 0: WRITE(X_STEP_PIN, HIGH); break; case 1: WRITE(Y_STEP_PIN, HIGH); break; case 2: WRITE(Z_STEP_PIN, HIGH); break; case 3: WRITE(E_STEP_PIN, HIGH); break; } steps_taken[axis]+=1; WRITE(X_STEP_PIN, LOW); WRITE(Y_STEP_PIN, LOW); WRITE(Z_STEP_PIN, LOW); WRITE(E_STEP_PIN, LOW); }
while(((unsigned long)timediff) >= interval && axis_steps_remaining[primary_axis] > 0) { steps_done++; steps_remaining--; axis_steps_remaining[primary_axis]--; timediff -= interval; do_step(primary_axis); axis_previous_micros[primary_axis] += interval; for(int i=0; i < NUM_AXIS; i++) if(i != primary_axis && axis_steps_remaining > 0) { axis_error = axis_error - delta; if(axis_error < 0) { do_step(i); axis_steps_remaining--; axis_error = axis_error + delta[primary_axis]; } } #ifdef STEP_DELAY_RATIO if(timediff >= interval) delayMicroseconds(long_step_delay_ratio * interval / 10000); #endif #ifdef STEP_DELAY_MICROS if(timediff >= interval) delayMicroseconds(STEP_DELAY_MICROS); #endif kill_steps(); } } } #ifdef DEBUG_MOVE_TIME log_ulong("_MOVE_TIME - This move took", micros()-startmove); #endif if(DISABLE_X) disable_x(); if(DISABLE_Y) disable_y(); if(DISABLE_Z) disable_z(); if(DISABLE_E) disable_e(); // Update current position partly based on direction, we probably can combine this with the direction code above... for(int i=0; i < NUM_AXIS; i++) { if (destination > current_position) current_position = current_position + steps_taken / axis_steps_per_unit; else current_position = current_position - steps_taken / axis_steps_per_unit; } } void do_step(int axis) { switch(axis){ case 0: WRITE(X_STEP_PIN, HIGH); break; case 1: WRITE(Y_STEP_PIN, HIGH); break; case 2: WRITE(Z_STEP_PIN, HIGH); break; case 3: WRITE(E_STEP_PIN, HIGH); break; } steps_taken[axis]+=1; } void kill_steps() { WRITE(X_STEP_PIN, LOW); WRITE(Y_STEP_PIN, LOW); WRITE(Z_STEP_PIN, LOW); WRITE(E_STEP_PIN, LOW); }
Re: Sprinter narrow pulse width January 07, 2012 10:14AM |
Registered: 14 years ago Posts: 228 |
Re: Sprinter narrow pulse width January 07, 2012 08:02PM |
Registered: 14 years ago Posts: 31 |
Re: Sprinter narrow pulse width January 11, 2012 08:59PM |
Registered: 17 years ago Posts: 1,094 |
Re: Sprinter narrow pulse width January 12, 2012 03:14AM |
Registered: 14 years ago Posts: 31 |
Re: Sprinter narrow pulse width April 20, 2012 03:37PM |
Registered: 13 years ago Posts: 17 |
Re: Sprinter narrow pulse width May 30, 2012 02:13AM |
Registered: 12 years ago Posts: 1 |