Parcourir la source

Fix Switching Extruder with Linear Advance

Scott Lahteine il y a 6 ans
Parent
révision
3614e6ce0f
1 fichiers modifiés avec 11 ajouts et 0 suppressions
  1. 11
    0
      Marlin/src/module/stepper.cpp

+ 11
- 0
Marlin/src/module/stepper.cpp Voir le fichier

@@ -1659,6 +1659,17 @@ void Stepper::isr() {
1659 1659
     #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
1660 1660
       #define START_E_PULSE(INDEX) do{ if (e_steps) E_STEP_WRITE(!INVERT_E_STEP_PIN); }while(0)
1661 1661
       #define STOP_E_PULSE(INDEX) do{ if (e_steps) { E_STEP_WRITE(INVERT_E_STEP_PIN); e_steps < 0 ? ++e_steps : --e_steps; } }while(0)
1662
+    #elif ENABLED(SWITCHING_EXTRUDER)
1663
+      #define START_E_PULSE(INDEX) do{ if (e_steps) { switch (INDEX) { \
1664
+          case 0: case 1: E0_DIR_WRITE(!INVERT_E_STEP_PIN); break; \
1665
+          case 2: case 3: E1_DIR_WRITE(!INVERT_E_STEP_PIN); break; \
1666
+                  case 4: E2_DIR_WRITE(!INVERT_E_STEP_PIN); \
1667
+      } } }while(0)
1668
+      #define STOP_E_PULSE(INDEX) do{ if (e_steps) { switch (INDEX) { \
1669
+          case 0: case 1: E0_DIR_WRITE(!INVERT_E_STEP_PIN); break; \
1670
+          case 2: case 3: E1_DIR_WRITE(!INVERT_E_STEP_PIN); break; \
1671
+                  case 4: E2_DIR_WRITE(!INVERT_E_STEP_PIN); \
1672
+      } } }while(0)
1662 1673
     #else
1663 1674
       #define START_E_PULSE(INDEX) do{ if (e_steps) E## INDEX ##_STEP_WRITE(!INVERT_E_STEP_PIN); }while(0)
1664 1675
       #define STOP_E_PULSE(INDEX) do { if (e_steps) { e_steps < 0 ? ++e_steps : --e_steps; E## INDEX ##_STEP_WRITE(INVERT_E_STEP_PIN); } }while(0)

Chargement…
Annuler
Enregistrer