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

This commit is contained in:
Bernhard 2011-12-09 12:32:31 +01:00
parent 754d2d69b2
commit 61c943b4bf
2 changed files with 15 additions and 10 deletions

View file

@ -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

View file

@ -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)