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