Browse Source

fixed the st_synchronize. it would have continued if there is only the last move of the buffer being stepped.

pull/1/head
Bernhard 13 years ago
parent
commit
61c943b4bf
  1. 10
      Marlin/planner.h
  2. 15
      Marlin/stepper.cpp

10
Marlin/planner.h

@ -130,4 +130,14 @@ FORCE_INLINE block_t *plan_get_current_block()
block->busy = true;
return(block);
}
// Gets the current block. Returns NULL if buffer empty
FORCE_INLINE bool blocks_queued()
{
if (block_buffer_head == block_buffer_tail) {
return false;
}
else
return true;
}
#endif

15
Marlin/stepper.cpp

@ -706,22 +706,17 @@ void st_init()
sei();
}
#define TEMPORARY_Z_HOME_SOUND_FIX
#ifdef TEMPORARY_Z_HOME_SOUND_FIX
#include <util/delay.h>
#endif
#include <util/delay.h>
// Block until all buffered steps are executed
void st_synchronize()
{
while(plan_get_current_block()) {
while(current_block!=0 || blocks_queued()) {
manage_heater();
manage_inactivity(1);
LCD_STATUS;
#ifdef TEMPORARY_Z_HOME_SOUND_FIX
_delay_ms(200);
_delay_ms(200);
#endif
}
//_delay_ms(1);
}
}
void st_set_position(const long &x, const long &y, const long &z, const long &e)

Loading…
Cancel
Save