Merge pull request #3123 from thinkyhead/rc_move_stepper_macros
Move step macros to stepper_indirection.h
This commit is contained in:
commit
7bb7ac8353
|
@ -24,31 +24,6 @@
|
||||||
#include "planner.h"
|
#include "planner.h"
|
||||||
#include "stepper_indirection.h"
|
#include "stepper_indirection.h"
|
||||||
|
|
||||||
#if EXTRUDERS > 3
|
|
||||||
#define E_STEP_WRITE(v) { if(current_block->active_extruder == 3) { E3_STEP_WRITE(v); } else { if(current_block->active_extruder == 2) { E2_STEP_WRITE(v); } else { if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }}}}
|
|
||||||
#define NORM_E_DIR() { if(current_block->active_extruder == 3) { E3_DIR_WRITE( !INVERT_E3_DIR); } else { if(current_block->active_extruder == 2) { E2_DIR_WRITE(!INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }}}}
|
|
||||||
#define REV_E_DIR() { if(current_block->active_extruder == 3) { E3_DIR_WRITE(INVERT_E3_DIR); } else { if(current_block->active_extruder == 2) { E2_DIR_WRITE(INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }}}}
|
|
||||||
#elif EXTRUDERS > 2
|
|
||||||
#define E_STEP_WRITE(v) { if(current_block->active_extruder == 2) { E2_STEP_WRITE(v); } else { if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }}}
|
|
||||||
#define NORM_E_DIR() { if(current_block->active_extruder == 2) { E2_DIR_WRITE(!INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }}}
|
|
||||||
#define REV_E_DIR() { if(current_block->active_extruder == 2) { E2_DIR_WRITE(INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }}}
|
|
||||||
#elif EXTRUDERS > 1
|
|
||||||
#if DISABLED(DUAL_X_CARRIAGE)
|
|
||||||
#define E_STEP_WRITE(v) { if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }}
|
|
||||||
#define NORM_E_DIR() { if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }}
|
|
||||||
#define REV_E_DIR() { if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }}
|
|
||||||
#else
|
|
||||||
extern bool extruder_duplication_enabled;
|
|
||||||
#define E_STEP_WRITE(v) { if(extruder_duplication_enabled) { E0_STEP_WRITE(v); E1_STEP_WRITE(v); } else if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }}
|
|
||||||
#define NORM_E_DIR() { if(extruder_duplication_enabled) { E0_DIR_WRITE(!INVERT_E0_DIR); E1_DIR_WRITE(!INVERT_E1_DIR); } else if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }}
|
|
||||||
#define REV_E_DIR() { if(extruder_duplication_enabled) { E0_DIR_WRITE(INVERT_E0_DIR); E1_DIR_WRITE(INVERT_E1_DIR); } else if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }}
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#define E_STEP_WRITE(v) E0_STEP_WRITE(v)
|
|
||||||
#define NORM_E_DIR() E0_DIR_WRITE(!INVERT_E0_DIR)
|
|
||||||
#define REV_E_DIR() E0_DIR_WRITE(INVERT_E0_DIR)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
|
#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
|
||||||
extern bool abort_on_endstop_hit;
|
extern bool abort_on_endstop_hit;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -154,6 +154,34 @@
|
||||||
#define E3_ENABLE_WRITE(STATE) WRITE(E3_ENABLE_PIN,STATE)
|
#define E3_ENABLE_WRITE(STATE) WRITE(E3_ENABLE_PIN,STATE)
|
||||||
#define E3_ENABLE_READ READ(E3_ENABLE_PIN)
|
#define E3_ENABLE_READ READ(E3_ENABLE_PIN)
|
||||||
|
|
||||||
|
#if EXTRUDERS > 3
|
||||||
|
#define E_STEP_WRITE(v) {switch(current_block->active_extruder){case 3:E3_STEP_WRITE(v);break;case 2:E2_STEP_WRITE(v);break;case 1:E1_STEP_WRITE(v);break;default:E0_STEP_WRITE(v);}}
|
||||||
|
#define NORM_E_DIR() {switch(current_block->active_extruder){case 3:E3_DIR_WRITE(!INVERT_E3_DIR);break;case 2:E2_DIR_WRITE(!INVERT_E2_DIR);break;case 1:E1_DIR_WRITE(!INVERT_E1_DIR);break;default:E0_DIR_WRITE(!INVERT_E0_DIR);}}
|
||||||
|
#define REV_E_DIR() {switch(current_block->active_extruder){case 3:E3_DIR_WRITE(INVERT_E3_DIR);break;case 2:E2_DIR_WRITE(INVERT_E2_DIR);break;case 1:E1_DIR_WRITE(INVERT_E1_DIR);break;default:E0_DIR_WRITE(INVERT_E0_DIR);}}
|
||||||
|
#elif EXTRUDERS > 2
|
||||||
|
#define E_STEP_WRITE(v) {switch(current_block->active_extruder){case 2:E2_STEP_WRITE(v);break;case 1:E1_STEP_WRITE(v);break;default:E0_STEP_WRITE(v);}}
|
||||||
|
#define NORM_E_DIR() {switch(current_block->active_extruder){case 2:E2_DIR_WRITE(!INVERT_E2_DIR);break;case 1:E1_DIR_WRITE(!INVERT_E1_DIR);break;default:E0_DIR_WRITE(!INVERT_E0_DIR);}}
|
||||||
|
#define REV_E_DIR() {switch(current_block->active_extruder){case 2:E2_DIR_WRITE(INVERT_E2_DIR);break;case 1:E1_DIR_WRITE(INVERT_E1_DIR);break;default:E0_DIR_WRITE(INVERT_E0_DIR);}}
|
||||||
|
#elif EXTRUDERS > 1
|
||||||
|
#define _E_STEP_WRITE(v) {if(current_block->active_extruder==1){E1_STEP_WRITE(v);}else{E0_STEP_WRITE(v);}}
|
||||||
|
#define _NORM_E_DIR() {if(current_block->active_extruder==1){E1_DIR_WRITE(!INVERT_E1_DIR);}else{E0_DIR_WRITE(!INVERT_E0_DIR);}}
|
||||||
|
#define _REV_E_DIR() {if(current_block->active_extruder==1){E1_DIR_WRITE(INVERT_E1_DIR);}else{E0_DIR_WRITE(INVERT_E0_DIR);}}
|
||||||
|
#if DISABLED(DUAL_X_CARRIAGE)
|
||||||
|
#define E_STEP_WRITE(v) _E_STEP_WRITE(v)
|
||||||
|
#define NORM_E_DIR() _NORM_E_DIR()
|
||||||
|
#define REV_E_DIR() _REV_E_DIR()
|
||||||
|
#else
|
||||||
|
extern bool extruder_duplication_enabled;
|
||||||
|
#define E_STEP_WRITE(v) {if(extruder_duplication_enabled){E0_STEP_WRITE(v);E1_STEP_WRITE(v);}else _E_STEP_WRITE(v);}
|
||||||
|
#define NORM_E_DIR() {if(extruder_duplication_enabled){E0_DIR_WRITE(!INVERT_E0_DIR);E1_DIR_WRITE(!INVERT_E1_DIR);}else _NORM_E_DIR();}
|
||||||
|
#define REV_E_DIR() {if(extruder_duplication_enabled){E0_DIR_WRITE(INVERT_E0_DIR);E1_DIR_WRITE(INVERT_E1_DIR);}else _REV_E_DIR();}
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define E_STEP_WRITE(v) E0_STEP_WRITE(v)
|
||||||
|
#define NORM_E_DIR() E0_DIR_WRITE(!INVERT_E0_DIR)
|
||||||
|
#define REV_E_DIR() E0_DIR_WRITE(INVERT_E0_DIR)
|
||||||
|
#endif
|
||||||
|
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
// Pin redefines for TMC drivers.
|
// Pin redefines for TMC drivers.
|
||||||
// TMC26X drivers have step and dir on normal pins, but everything else via SPI
|
// TMC26X drivers have step and dir on normal pins, but everything else via SPI
|
||||||
|
|
Loading…
Reference in a new issue