DDA: clear flags of a queue entry earlier.

Formerly, once a wait for temp was given, this flag would stick
forever on this queue entry.

Spotted by Zungmann, thanks a lot!

http://forums.reprap.org/read.php?147,33082,280439#msg-280439
This commit is contained in:
Markus Hitter 2013-12-16 13:48:00 +01:00
parent 793a04b991
commit 95a44e8777
2 changed files with 4 additions and 5 deletions

5
dda.c
View File

@ -115,16 +115,11 @@ void dda_create(DDA *dda, TARGET *target) {
if (dda->waitfor_temp)
return;
// Initialise DDA to a known state. This also clears flags like
// dda->live, dda->done and dda->wait_for_temp.
dda->allflags = 0;
if (DEBUG_DDA && (debug_flags & DEBUG_DDA))
sersendf_P(PSTR("\nCreate: X %lq Y %lq Z %lq F %lu\n"),
dda->endpoint.X, dda->endpoint.Y,
dda->endpoint.Z, dda->endpoint.F);
// we end at the passed target
memcpy(&(dda->endpoint), target, sizeof(TARGET));

View File

@ -113,6 +113,10 @@ void enqueue_home(TARGET *t, uint8_t endstop_check, uint8_t endstop_stop_cond) {
DDA* new_movebuffer = &(movebuffer[h]);
// Initialise queue entry to a known state. This also clears flags like
// dda->live, dda->done and dda->wait_for_temp.
new_movebuffer->allflags = 0;
if (t != NULL) {
new_movebuffer->endstop_check = endstop_check;
new_movebuffer->endstop_stop_cond = endstop_stop_cond;