Merge pull request #466 from midopple/Marlin_v1

BUG Fix in Commands M907,M350 and M351
2.0.x
ErikZalm 12 years ago
commit 2c0fa34c9e

@ -1708,11 +1708,12 @@ void process_commands()
case 907: // M907 Set digital trimpot motor current using axis codes. case 907: // M907 Set digital trimpot motor current using axis codes.
{ {
#if DIGIPOTSS_PIN > -1 #if DIGIPOTSS_PIN > -1
for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) digipot_current(i,code_value()); for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) digipot_current(i,code_value());
if(code_seen('B')) digipot_current(4,code_value()); if(code_seen('B')) digipot_current(4,code_value());
if(code_seen('S')) for(int i=0;i<=4;i++) digipot_current(i,code_value()); if(code_seen('S')) for(int i=0;i<=4;i++) digipot_current(i,code_value());
#endif #endif
} }
break;
case 908: // M908 Control digital trimpot directly. case 908: // M908 Control digital trimpot directly.
{ {
#if DIGIPOTSS_PIN > -1 #if DIGIPOTSS_PIN > -1
@ -1727,7 +1728,7 @@ void process_commands()
{ {
#if X_MS1_PIN > -1 #if X_MS1_PIN > -1
if(code_seen('S')) for(int i=0;i<=4;i++) microstep_mode(i,code_value()); if(code_seen('S')) for(int i=0;i<=4;i++) microstep_mode(i,code_value());
for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_mode(i,(uint8_t)code_value()); for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_mode(i,(uint8_t)code_value());
if(code_seen('B')) microstep_mode(4,code_value()); if(code_seen('B')) microstep_mode(4,code_value());
microstep_readings(); microstep_readings();
#endif #endif
@ -1739,11 +1740,11 @@ void process_commands()
if(code_seen('S')) switch((int)code_value()) if(code_seen('S')) switch((int)code_value())
{ {
case 1: case 1:
for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,code_value(),-1); for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,code_value(),-1);
if(code_seen('B')) microstep_ms(4,code_value(),-1); if(code_seen('B')) microstep_ms(4,code_value(),-1);
break; break;
case 2: case 2:
for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,-1,code_value()); for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,-1,code_value());
if(code_seen('B')) microstep_ms(4,-1,code_value()); if(code_seen('B')) microstep_ms(4,-1,code_value());
break; break;
} }

@ -582,8 +582,16 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
block->active_extruder = extruder; block->active_extruder = extruder;
//enable active axes //enable active axes
#ifdef COREXY
if((block->steps_x != 0) || (block->steps_y != 0))
{
enable_x();
enable_y();
}
#else
if(block->steps_x != 0) enable_x(); if(block->steps_x != 0) enable_x();
if(block->steps_y != 0) enable_y(); if(block->steps_y != 0) enable_y();
#endif
#ifndef Z_LATE_ENABLE #ifndef Z_LATE_ENABLE
if(block->steps_z != 0) enable_z(); if(block->steps_z != 0) enable_z();
#endif #endif

Loading…
Cancel
Save