Merge pull request #1005 from midopple/Marlin_v1
With option DISABLE_INACTIVE_EXTRUDER the extruder is disable to early
This commit is contained in:
commit
105571ec68
1 changed files with 28 additions and 3 deletions
|
@ -96,6 +96,8 @@ float autotemp_factor=0.1;
|
||||||
bool autotemp_enabled=false;
|
bool autotemp_enabled=false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsigned char g_uc_extruder_last_move[3] = {0,0,0};
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//=================semi-private variables, used in inline functions =====
|
//=================semi-private variables, used in inline functions =====
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
@ -662,11 +664,34 @@ block->steps_y = labs((target[X_AXIS]-position[X_AXIS]) - (target[Y_AXIS]-positi
|
||||||
{
|
{
|
||||||
if (DISABLE_INACTIVE_EXTRUDER) //enable only selected extruder
|
if (DISABLE_INACTIVE_EXTRUDER) //enable only selected extruder
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(g_uc_extruder_last_move[0] > 0) g_uc_extruder_last_move[0]--;
|
||||||
|
if(g_uc_extruder_last_move[1] > 0) g_uc_extruder_last_move[1]--;
|
||||||
|
if(g_uc_extruder_last_move[2] > 0) g_uc_extruder_last_move[2]--;
|
||||||
|
|
||||||
switch(extruder)
|
switch(extruder)
|
||||||
{
|
{
|
||||||
case 0: enable_e0(); disable_e1(); disable_e2(); break;
|
case 0:
|
||||||
case 1: disable_e0(); enable_e1(); disable_e2(); break;
|
enable_e0();
|
||||||
case 2: disable_e0(); disable_e1(); enable_e2(); break;
|
g_uc_extruder_last_move[0] = BLOCK_BUFFER_SIZE*2;
|
||||||
|
|
||||||
|
if(g_uc_extruder_last_move[1] == 0) disable_e1();
|
||||||
|
if(g_uc_extruder_last_move[2] == 0) disable_e2();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
enable_e1();
|
||||||
|
g_uc_extruder_last_move[1] = BLOCK_BUFFER_SIZE*2;
|
||||||
|
|
||||||
|
if(g_uc_extruder_last_move[0] == 0) disable_e0();
|
||||||
|
if(g_uc_extruder_last_move[2] == 0) disable_e2();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
enable_e2();
|
||||||
|
g_uc_extruder_last_move[2] = BLOCK_BUFFER_SIZE*2;
|
||||||
|
|
||||||
|
if(g_uc_extruder_last_move[0] == 0) disable_e0();
|
||||||
|
if(g_uc_extruder_last_move[1] == 0) disable_e1();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //enable all
|
else //enable all
|
||||||
|
|
Reference in a new issue