|
@@ -2504,53 +2504,136 @@ void Stepper::report_positions() {
|
2504
|
2504
|
*/
|
2505
|
2505
|
|
2506
|
2506
|
void Stepper::microstep_init() {
|
2507
|
|
- SET_OUTPUT(X_MS1_PIN);
|
2508
|
|
- SET_OUTPUT(X_MS2_PIN);
|
|
2507
|
+ #if HAS_X_MICROSTEPS
|
|
2508
|
+ SET_OUTPUT(X_MS1_PIN);
|
|
2509
|
+ SET_OUTPUT(X_MS2_PIN);
|
|
2510
|
+ #if PIN_EXISTS(X_MS3)
|
|
2511
|
+ SET_OUTPUT(X_MS3_PIN);
|
|
2512
|
+ #endif
|
|
2513
|
+ #endif
|
|
2514
|
+ #if HAS_X2_MICROSTEPS
|
|
2515
|
+ SET_OUTPUT(X2_MS1_PIN);
|
|
2516
|
+ SET_OUTPUT(X2_MS2_PIN);
|
|
2517
|
+ #if PIN_EXISTS(X2_MS3)
|
|
2518
|
+ SET_OUTPUT(X2_MS3_PIN);
|
|
2519
|
+ #endif
|
|
2520
|
+ #endif
|
2509
|
2521
|
#if HAS_Y_MICROSTEPS
|
2510
|
2522
|
SET_OUTPUT(Y_MS1_PIN);
|
2511
|
2523
|
SET_OUTPUT(Y_MS2_PIN);
|
|
2524
|
+ #if PIN_EXISTS(Y_MS3)
|
|
2525
|
+ SET_OUTPUT(Y_MS3_PIN);
|
|
2526
|
+ #endif
|
|
2527
|
+ #endif
|
|
2528
|
+ #if HAS_Y2_MICROSTEPS
|
|
2529
|
+ SET_OUTPUT(Y2_MS1_PIN);
|
|
2530
|
+ SET_OUTPUT(Y2_MS2_PIN);
|
|
2531
|
+ #if PIN_EXISTS(Y2_MS3)
|
|
2532
|
+ SET_OUTPUT(Y2_MS3_PIN);
|
|
2533
|
+ #endif
|
2512
|
2534
|
#endif
|
2513
|
2535
|
#if HAS_Z_MICROSTEPS
|
2514
|
2536
|
SET_OUTPUT(Z_MS1_PIN);
|
2515
|
2537
|
SET_OUTPUT(Z_MS2_PIN);
|
|
2538
|
+ #if PIN_EXISTS(Z_MS3)
|
|
2539
|
+ SET_OUTPUT(Z_MS3_PIN);
|
|
2540
|
+ #endif
|
|
2541
|
+ #endif
|
|
2542
|
+ #if HAS_Z2_MICROSTEPS
|
|
2543
|
+ SET_OUTPUT(Z2_MS1_PIN);
|
|
2544
|
+ SET_OUTPUT(Z2_MS2_PIN);
|
|
2545
|
+ #if PIN_EXISTS(Z2_MS3)
|
|
2546
|
+ SET_OUTPUT(Z2_MS3_PIN);
|
|
2547
|
+ #endif
|
2516
|
2548
|
#endif
|
|
2549
|
+ #if HAS_Z3_MICROSTEPS
|
|
2550
|
+ SET_OUTPUT(Z3_MS1_PIN);
|
|
2551
|
+ SET_OUTPUT(Z3_MS2_PIN);
|
|
2552
|
+ #if PIN_EXISTS(Z3_MS3)
|
|
2553
|
+ SET_OUTPUT(Z3_MS3_PIN);
|
|
2554
|
+ #endif
|
|
2555
|
+ #endif
|
2517
|
2556
|
#if HAS_E0_MICROSTEPS
|
2518
|
2557
|
SET_OUTPUT(E0_MS1_PIN);
|
2519
|
2558
|
SET_OUTPUT(E0_MS2_PIN);
|
|
2559
|
+ #if PIN_EXISTS(E0_MS3)
|
|
2560
|
+ SET_OUTPUT(E0_MS3_PIN);
|
|
2561
|
+ #endif
|
2520
|
2562
|
#endif
|
2521
|
2563
|
#if HAS_E1_MICROSTEPS
|
2522
|
2564
|
SET_OUTPUT(E1_MS1_PIN);
|
2523
|
2565
|
SET_OUTPUT(E1_MS2_PIN);
|
|
2566
|
+ #if PIN_EXISTS(E1_MS3)
|
|
2567
|
+ SET_OUTPUT(E1_MS3_PIN);
|
|
2568
|
+ #endif
|
2524
|
2569
|
#endif
|
2525
|
2570
|
#if HAS_E2_MICROSTEPS
|
2526
|
2571
|
SET_OUTPUT(E2_MS1_PIN);
|
2527
|
2572
|
SET_OUTPUT(E2_MS2_PIN);
|
|
2573
|
+ #if PIN_EXISTS(E2_MS3)
|
|
2574
|
+ SET_OUTPUT(E2_MS3_PIN);
|
|
2575
|
+ #endif
|
2528
|
2576
|
#endif
|
2529
|
2577
|
#if HAS_E3_MICROSTEPS
|
2530
|
2578
|
SET_OUTPUT(E3_MS1_PIN);
|
2531
|
2579
|
SET_OUTPUT(E3_MS2_PIN);
|
|
2580
|
+ #if PIN_EXISTS(E3_MS3)
|
|
2581
|
+ SET_OUTPUT(E3_MS3_PIN);
|
|
2582
|
+ #endif
|
2532
|
2583
|
#endif
|
2533
|
2584
|
#if HAS_E4_MICROSTEPS
|
2534
|
2585
|
SET_OUTPUT(E4_MS1_PIN);
|
2535
|
2586
|
SET_OUTPUT(E4_MS2_PIN);
|
|
2587
|
+ #if PIN_EXISTS(E4_MS3)
|
|
2588
|
+ SET_OUTPUT(E4_MS3_PIN);
|
|
2589
|
+ #endif
|
2536
|
2590
|
#endif
|
2537
|
2591
|
#if HAS_E5_MICROSTEPS
|
2538
|
2592
|
SET_OUTPUT(E5_MS1_PIN);
|
2539
|
2593
|
SET_OUTPUT(E5_MS2_PIN);
|
|
2594
|
+ #if PIN_EXISTS(E5_MS3)
|
|
2595
|
+ SET_OUTPUT(E5_MS3_PIN);
|
|
2596
|
+ #endif
|
2540
|
2597
|
#endif
|
2541
|
2598
|
static const uint8_t microstep_modes[] = MICROSTEP_MODES;
|
2542
|
2599
|
for (uint16_t i = 0; i < COUNT(microstep_modes); i++)
|
2543
|
2600
|
microstep_mode(i, microstep_modes[i]);
|
2544
|
2601
|
}
|
2545
|
2602
|
|
2546
|
|
- void Stepper::microstep_ms(const uint8_t driver, const int8_t ms1, const int8_t ms2) {
|
|
2603
|
+ void Stepper::microstep_ms(const uint8_t driver, const int8_t ms1, const int8_t ms2, const int8_t ms3) {
|
2547
|
2604
|
if (ms1 >= 0) switch (driver) {
|
2548
|
|
- case 0: WRITE(X_MS1_PIN, ms1); break;
|
2549
|
|
- #if HAS_Y_MICROSTEPS
|
2550
|
|
- case 1: WRITE(Y_MS1_PIN, ms1); break;
|
|
2605
|
+ #if HAS_X_MICROSTEPS || HAS_X2_MICROSTEPS
|
|
2606
|
+ case 0:
|
|
2607
|
+ #if HAS_X_MICROSTEPS
|
|
2608
|
+ WRITE(X_MS1_PIN, ms1);
|
|
2609
|
+ #endif
|
|
2610
|
+ #if HAS_X2_MICROSTEPS
|
|
2611
|
+ WRITE(X2_MS1_PIN, ms1);
|
|
2612
|
+ #endif
|
|
2613
|
+ break;
|
2551
|
2614
|
#endif
|
2552
|
|
- #if HAS_Z_MICROSTEPS
|
2553
|
|
- case 2: WRITE(Z_MS1_PIN, ms1); break;
|
|
2615
|
+ #if HAS_Y_MICROSTEPS || HAS_Y2_MICROSTEPS
|
|
2616
|
+ case 1:
|
|
2617
|
+ #if HAS_Y_MICROSTEPS
|
|
2618
|
+ WRITE(Y_MS1_PIN, ms1);
|
|
2619
|
+ #endif
|
|
2620
|
+ #if HAS_Y2_MICROSTEPS
|
|
2621
|
+ WRITE(Y2_MS1_PIN, ms1);
|
|
2622
|
+ #endif
|
|
2623
|
+ break;
|
|
2624
|
+ #endif
|
|
2625
|
+ #if HAS_Z_MICROSTEPS || HAS_Z2_MICROSTEPS || HAS_Z3_MICROSTEPS
|
|
2626
|
+ case 2:
|
|
2627
|
+ #if HAS_Z_MICROSTEPS
|
|
2628
|
+ WRITE(Z_MS1_PIN, ms1);
|
|
2629
|
+ #endif
|
|
2630
|
+ #if HAS_Z2_MICROSTEPS
|
|
2631
|
+ WRITE(Z2_MS1_PIN, ms1);
|
|
2632
|
+ #endif
|
|
2633
|
+ #if HAS_Z3_MICROSTEPS
|
|
2634
|
+ WRITE(Z3_MS1_PIN, ms1);
|
|
2635
|
+ #endif
|
|
2636
|
+ break;
|
2554
|
2637
|
#endif
|
2555
|
2638
|
#if HAS_E0_MICROSTEPS
|
2556
|
2639
|
case 3: WRITE(E0_MS1_PIN, ms1); break;
|
|
@@ -2572,12 +2655,38 @@ void Stepper::report_positions() {
|
2572
|
2655
|
#endif
|
2573
|
2656
|
}
|
2574
|
2657
|
if (ms2 >= 0) switch (driver) {
|
2575
|
|
- case 0: WRITE(X_MS2_PIN, ms2); break;
|
2576
|
|
- #if HAS_Y_MICROSTEPS
|
2577
|
|
- case 1: WRITE(Y_MS2_PIN, ms2); break;
|
|
2658
|
+ #if HAS_X_MICROSTEPS || HAS_X2_MICROSTEPS
|
|
2659
|
+ case 0:
|
|
2660
|
+ #if HAS_X_MICROSTEPS
|
|
2661
|
+ WRITE(X_MS2_PIN, ms2);
|
|
2662
|
+ #endif
|
|
2663
|
+ #if HAS_X2_MICROSTEPS
|
|
2664
|
+ WRITE(X2_MS2_PIN, ms2);
|
|
2665
|
+ #endif
|
|
2666
|
+ break;
|
|
2667
|
+ #endif
|
|
2668
|
+ #if HAS_Y_MICROSTEPS || HAS_Y2_MICROSTEPS
|
|
2669
|
+ case 1:
|
|
2670
|
+ #if HAS_Y_MICROSTEPS
|
|
2671
|
+ WRITE(Y_MS2_PIN, ms2);
|
|
2672
|
+ #endif
|
|
2673
|
+ #if HAS_Y2_MICROSTEPS
|
|
2674
|
+ WRITE(Y2_MS2_PIN, ms2);
|
|
2675
|
+ #endif
|
|
2676
|
+ break;
|
2578
|
2677
|
#endif
|
2579
|
|
- #if HAS_Z_MICROSTEPS
|
2580
|
|
- case 2: WRITE(Z_MS2_PIN, ms2); break;
|
|
2678
|
+ #if HAS_Z_MICROSTEPS || HAS_Z2_MICROSTEPS || HAS_Z3_MICROSTEPS
|
|
2679
|
+ case 2:
|
|
2680
|
+ #if HAS_Z_MICROSTEPS
|
|
2681
|
+ WRITE(Z_MS2_PIN, ms2);
|
|
2682
|
+ #endif
|
|
2683
|
+ #if HAS_Z2_MICROSTEPS
|
|
2684
|
+ WRITE(Z2_MS2_PIN, ms2);
|
|
2685
|
+ #endif
|
|
2686
|
+ #if HAS_Z3_MICROSTEPS
|
|
2687
|
+ WRITE(Z3_MS2_PIN, ms2);
|
|
2688
|
+ #endif
|
|
2689
|
+ break;
|
2581
|
2690
|
#endif
|
2582
|
2691
|
#if HAS_E0_MICROSTEPS
|
2583
|
2692
|
case 3: WRITE(E0_MS2_PIN, ms2); break;
|
|
@@ -2598,70 +2707,165 @@ void Stepper::report_positions() {
|
2598
|
2707
|
case 8: WRITE(E5_MS2_PIN, ms2); break;
|
2599
|
2708
|
#endif
|
2600
|
2709
|
}
|
|
2710
|
+ if (ms3 >= 0) switch (driver) {
|
|
2711
|
+ #if HAS_X_MICROSTEPS || HAS_X2_MICROSTEPS
|
|
2712
|
+ case 0:
|
|
2713
|
+ #if HAS_X_MICROSTEPS && PIN_EXISTS(X_MS3)
|
|
2714
|
+ WRITE(X_MS3_PIN, ms3);
|
|
2715
|
+ #endif
|
|
2716
|
+ #if HAS_X2_MICROSTEPS && PIN_EXISTS(X2_MS3)
|
|
2717
|
+ WRITE(X2_MS3_PIN, ms3);
|
|
2718
|
+ #endif
|
|
2719
|
+ break;
|
|
2720
|
+ #endif
|
|
2721
|
+ #if HAS_Y_MICROSTEPS || HAS_Y2_MICROSTEPS
|
|
2722
|
+ case 1:
|
|
2723
|
+ #if HAS_Y_MICROSTEPS && PIN_EXISTS(Y_MS3)
|
|
2724
|
+ WRITE(Y_MS3_PIN, ms3);
|
|
2725
|
+ #endif
|
|
2726
|
+ #if HAS_Y2_MICROSTEPS && PIN_EXISTS(Y2_MS3)
|
|
2727
|
+ WRITE(Y2_MS3_PIN, ms3);
|
|
2728
|
+ #endif
|
|
2729
|
+ break;
|
|
2730
|
+ #endif
|
|
2731
|
+ #if HAS_Z_MICROSTEPS || HAS_Z2_MICROSTEPS || HAS_Z3_MICROSTEPS
|
|
2732
|
+ case 2:
|
|
2733
|
+ #if HAS_Z_MICROSTEPS && PIN_EXISTS(Z_MS3)
|
|
2734
|
+ WRITE(Z_MS3_PIN, ms3);
|
|
2735
|
+ #endif
|
|
2736
|
+ #if HAS_Z2_MICROSTEPS && PIN_EXISTS(Z2_MS3)
|
|
2737
|
+ WRITE(Z2_MS3_PIN, ms3);
|
|
2738
|
+ #endif
|
|
2739
|
+ #if HAS_Z3_MICROSTEPS && PIN_EXISTS(Z3_MS3)
|
|
2740
|
+ WRITE(Z3_MS3_PIN, ms3);
|
|
2741
|
+ #endif
|
|
2742
|
+ break;
|
|
2743
|
+ #endif
|
|
2744
|
+ #if HAS_E0_MICROSTEPS && PIN_EXISTS(E0_MS3)
|
|
2745
|
+ case 3: WRITE(E0_MS3_PIN, ms3); break;
|
|
2746
|
+ #endif
|
|
2747
|
+ #if HAS_E1_MICROSTEPS && PIN_EXISTS(E1_MS3)
|
|
2748
|
+ case 4: WRITE(E1_MS3_PIN, ms3); break;
|
|
2749
|
+ #endif
|
|
2750
|
+ #if HAS_E2_MICROSTEPS && PIN_EXISTS(E2_MS3)
|
|
2751
|
+ case 5: WRITE(E2_MS3_PIN, ms3); break;
|
|
2752
|
+ #endif
|
|
2753
|
+ #if HAS_E3_MICROSTEPS && PIN_EXISTS(E3_MS3)
|
|
2754
|
+ case 6: WRITE(E3_MS3_PIN, ms3); break;
|
|
2755
|
+ #endif
|
|
2756
|
+ #if HAS_E4_MICROSTEPS && PIN_EXISTS(E4_MS3)
|
|
2757
|
+ case 7: WRITE(E4_MS3_PIN, ms3); break;
|
|
2758
|
+ #endif
|
|
2759
|
+ #if HAS_E5_MICROSTEPS && PIN_EXISTS(E5_MS3)
|
|
2760
|
+ case 8: WRITE(E5_MS3_PIN, ms3); break;
|
|
2761
|
+ #endif
|
|
2762
|
+ }
|
2601
|
2763
|
}
|
2602
|
2764
|
|
2603
|
2765
|
void Stepper::microstep_mode(const uint8_t driver, const uint8_t stepping_mode) {
|
2604
|
2766
|
switch (stepping_mode) {
|
2605
|
|
- case 1: microstep_ms(driver, MICROSTEP1); break;
|
2606
|
|
- #if ENABLED(HEROIC_STEPPER_DRIVERS)
|
2607
|
|
- case 128: microstep_ms(driver, MICROSTEP128); break;
|
2608
|
|
- #else
|
|
2767
|
+ #if HAS_MICROSTEP1
|
|
2768
|
+ case 1: microstep_ms(driver, MICROSTEP1); break;
|
|
2769
|
+ #endif
|
|
2770
|
+ #if HAS_MICROSTEP2
|
2609
|
2771
|
case 2: microstep_ms(driver, MICROSTEP2); break;
|
|
2772
|
+ #endif
|
|
2773
|
+ #if HAS_MICROSTEP4
|
2610
|
2774
|
case 4: microstep_ms(driver, MICROSTEP4); break;
|
2611
|
2775
|
#endif
|
2612
|
|
- case 8: microstep_ms(driver, MICROSTEP8); break;
|
2613
|
|
- case 16: microstep_ms(driver, MICROSTEP16); break;
|
2614
|
|
- #if MB(ALLIGATOR)
|
|
2776
|
+ #if HAS_MICROSTEP8
|
|
2777
|
+ case 8: microstep_ms(driver, MICROSTEP8); break;
|
|
2778
|
+ #endif
|
|
2779
|
+ #if HAS_MICROSTEP16
|
|
2780
|
+ case 16: microstep_ms(driver, MICROSTEP16); break;
|
|
2781
|
+ #endif
|
|
2782
|
+ #if HAS_MICROSTEP32
|
2615
|
2783
|
case 32: microstep_ms(driver, MICROSTEP32); break;
|
2616
|
2784
|
#endif
|
|
2785
|
+ #if HAS_MICROSTEP64
|
|
2786
|
+ case 64: microstep_ms(driver, MICROSTEP64); break;
|
|
2787
|
+ #endif
|
|
2788
|
+ #if HAS_MICROSTEP128
|
|
2789
|
+ case 128: microstep_ms(driver, MICROSTEP128); break;
|
|
2790
|
+ #endif
|
|
2791
|
+
|
2617
|
2792
|
default: SERIAL_ERROR_START(); SERIAL_ERRORLNPGM("Microsteps unavailable"); break;
|
2618
|
2793
|
}
|
2619
|
2794
|
}
|
2620
|
2795
|
|
2621
|
2796
|
void Stepper::microstep_readings() {
|
2622
|
|
- SERIAL_PROTOCOLLNPGM("MS1,MS2 Pins");
|
|
2797
|
+ SERIAL_PROTOCOLLNPGM("MS1,MS2,MS3 Pins");
|
2623
|
2798
|
SERIAL_PROTOCOLPGM("X: ");
|
2624
|
|
- SERIAL_PROTOCOL(READ(X_MS1_PIN));
|
2625
|
|
- SERIAL_PROTOCOLLN(READ(X_MS2_PIN));
|
|
2799
|
+ #if HAS_X_MICROSTEPS
|
|
2800
|
+ SERIAL_PROTOCOL(READ(X_MS1_PIN));
|
|
2801
|
+ SERIAL_PROTOCOL(READ(X_MS2_PIN));
|
|
2802
|
+ #if PIN_EXISTS(X_MS3)
|
|
2803
|
+ SERIAL_PROTOCOLLN(READ(X_MS3_PIN));
|
|
2804
|
+ #endif
|
|
2805
|
+ #endif
|
2626
|
2806
|
#if HAS_Y_MICROSTEPS
|
2627
|
2807
|
SERIAL_PROTOCOLPGM("Y: ");
|
2628
|
2808
|
SERIAL_PROTOCOL(READ(Y_MS1_PIN));
|
2629
|
|
- SERIAL_PROTOCOLLN(READ(Y_MS2_PIN));
|
|
2809
|
+ SERIAL_PROTOCOL(READ(Y_MS2_PIN));
|
|
2810
|
+ #if PIN_EXISTS(Y_MS3)
|
|
2811
|
+ SERIAL_PROTOCOLLN(READ(Y_MS3_PIN));
|
|
2812
|
+ #endif
|
2630
|
2813
|
#endif
|
2631
|
2814
|
#if HAS_Z_MICROSTEPS
|
2632
|
2815
|
SERIAL_PROTOCOLPGM("Z: ");
|
2633
|
2816
|
SERIAL_PROTOCOL(READ(Z_MS1_PIN));
|
2634
|
|
- SERIAL_PROTOCOLLN(READ(Z_MS2_PIN));
|
|
2817
|
+ SERIAL_PROTOCOL(READ(Z_MS2_PIN));
|
|
2818
|
+ #if PIN_EXISTS(Z_MS3)
|
|
2819
|
+ SERIAL_PROTOCOLLN(READ(Z_MS3_PIN));
|
|
2820
|
+ #endif
|
2635
|
2821
|
#endif
|
2636
|
2822
|
#if HAS_E0_MICROSTEPS
|
2637
|
2823
|
SERIAL_PROTOCOLPGM("E0: ");
|
2638
|
2824
|
SERIAL_PROTOCOL(READ(E0_MS1_PIN));
|
2639
|
|
- SERIAL_PROTOCOLLN(READ(E0_MS2_PIN));
|
|
2825
|
+ SERIAL_PROTOCOL(READ(E0_MS2_PIN));
|
|
2826
|
+ #if PIN_EXISTS(E0_MS3)
|
|
2827
|
+ SERIAL_PROTOCOLLN(READ(E0_MS3_PIN));
|
|
2828
|
+ #endif
|
2640
|
2829
|
#endif
|
2641
|
2830
|
#if HAS_E1_MICROSTEPS
|
2642
|
2831
|
SERIAL_PROTOCOLPGM("E1: ");
|
2643
|
2832
|
SERIAL_PROTOCOL(READ(E1_MS1_PIN));
|
2644
|
|
- SERIAL_PROTOCOLLN(READ(E1_MS2_PIN));
|
|
2833
|
+ SERIAL_PROTOCOL(READ(E1_MS2_PIN));
|
|
2834
|
+ #if PIN_EXISTS(E1_MS3)
|
|
2835
|
+ SERIAL_PROTOCOLLN(READ(E1_MS3_PIN));
|
|
2836
|
+ #endif
|
2645
|
2837
|
#endif
|
2646
|
2838
|
#if HAS_E2_MICROSTEPS
|
2647
|
2839
|
SERIAL_PROTOCOLPGM("E2: ");
|
2648
|
2840
|
SERIAL_PROTOCOL(READ(E2_MS1_PIN));
|
2649
|
|
- SERIAL_PROTOCOLLN(READ(E2_MS2_PIN));
|
|
2841
|
+ SERIAL_PROTOCOL(READ(E2_MS2_PIN));
|
|
2842
|
+ #if PIN_EXISTS(E2_MS3)
|
|
2843
|
+ SERIAL_PROTOCOLLN(READ(E2_MS3_PIN));
|
|
2844
|
+ #endif
|
2650
|
2845
|
#endif
|
2651
|
2846
|
#if HAS_E3_MICROSTEPS
|
2652
|
2847
|
SERIAL_PROTOCOLPGM("E3: ");
|
2653
|
2848
|
SERIAL_PROTOCOL(READ(E3_MS1_PIN));
|
2654
|
|
- SERIAL_PROTOCOLLN(READ(E3_MS2_PIN));
|
|
2849
|
+ SERIAL_PROTOCOL(READ(E3_MS2_PIN));
|
|
2850
|
+ #if PIN_EXISTS(E3_MS3)
|
|
2851
|
+ SERIAL_PROTOCOLLN(READ(E3_MS3_PIN));
|
|
2852
|
+ #endif
|
2655
|
2853
|
#endif
|
2656
|
2854
|
#if HAS_E4_MICROSTEPS
|
2657
|
2855
|
SERIAL_PROTOCOLPGM("E4: ");
|
2658
|
2856
|
SERIAL_PROTOCOL(READ(E4_MS1_PIN));
|
2659
|
|
- SERIAL_PROTOCOLLN(READ(E4_MS2_PIN));
|
|
2857
|
+ SERIAL_PROTOCOL(READ(E4_MS2_PIN));
|
|
2858
|
+ #if PIN_EXISTS(E4_MS3)
|
|
2859
|
+ SERIAL_PROTOCOLLN(READ(E4_MS3_PIN));
|
|
2860
|
+ #endif
|
2660
|
2861
|
#endif
|
2661
|
2862
|
#if HAS_E5_MICROSTEPS
|
2662
|
2863
|
SERIAL_PROTOCOLPGM("E5: ");
|
2663
|
2864
|
SERIAL_PROTOCOL(READ(E5_MS1_PIN));
|
2664
|
2865
|
SERIAL_PROTOCOLLN(READ(E5_MS2_PIN));
|
|
2866
|
+ #if PIN_EXISTS(E5_MS3)
|
|
2867
|
+ SERIAL_PROTOCOLLN(READ(E5_MS3_PIN));
|
|
2868
|
+ #endif
|
2665
|
2869
|
#endif
|
2666
|
2870
|
}
|
2667
|
2871
|
|