From 0ada66f1123e12de8a4b31b599571e7255cf18bf Mon Sep 17 00:00:00 2001 From: midopple Date: Sun, 4 Mar 2012 17:01:20 +0100 Subject: Move SLOWDOWN Funktion up, at the current position does not work --- Sprinter/Sprinter.pde | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'Sprinter') diff --git a/Sprinter/Sprinter.pde b/Sprinter/Sprinter.pde index 8a663da..06e37c4 100644 --- a/Sprinter/Sprinter.pde +++ b/Sprinter/Sprinter.pde @@ -78,6 +78,9 @@ The beginning of the line is still interpreted. - Same fix for SD Card, testet and work + + Version 1.3.09T + - Move SLOWDOWN Function up */ @@ -178,7 +181,7 @@ void __cxa_pure_virtual(){}; // M603 - Show Free Ram -#define _VERSION_TEXT "1.3.08T / 24.02.2012" +#define _VERSION_TEXT "1.3.09T / 04.03.2012" //Stepper Movement Variables char axis_codes[NUM_AXIS] = {'X', 'Y', 'Z', 'E'}; @@ -2256,6 +2259,12 @@ void plan_buffer_line(float x, float y, float z, float e, float feed_rate) if(block->steps_e != 0) enable_e(); #endif + // slow down when de buffer starts to empty, rather than wait at the corner for a buffer refill + int moves_queued=(block_buffer_head-block_buffer_tail + BLOCK_BUFFER_SIZE) & (BLOCK_BUFFER_SIZE - 1); +#ifdef SLOWDOWN + if(moves_queued < (BLOCK_BUFFER_SIZE * 0.5) && moves_queued > 1) feed_rate = feed_rate*moves_queued / (BLOCK_BUFFER_SIZE * 0.5); +#endif + float delta_mm[4]; delta_mm[X_AXIS] = (target[X_AXIS]-position[X_AXIS])/axis_steps_per_unit[X_AXIS]; delta_mm[Y_AXIS] = (target[Y_AXIS]-position[Y_AXIS])/axis_steps_per_unit[Y_AXIS]; @@ -2287,12 +2296,6 @@ void plan_buffer_line(float x, float y, float z, float e, float feed_rate) } - // slow down when de buffer starts to empty, rather than wait at the corner for a buffer refill - int moves_queued=(block_buffer_head-block_buffer_tail + BLOCK_BUFFER_SIZE) & (BLOCK_BUFFER_SIZE - 1); -#ifdef SLOWDOWN - if(moves_queued < (BLOCK_BUFFER_SIZE * 0.5) && moves_queued > 1) feed_rate = feed_rate*moves_queued / (BLOCK_BUFFER_SIZE * 0.5); -#endif - /* // segment time im micro seconds long segment_time = lround(1000000.0/inverse_second); -- cgit v1.2.1