Ruedi Steinmann 2 лет назад
Родитель
Сommit
a167e2e948
Аккаунт пользователя с таким Email не найден
2 измененных файлов: 9 добавлений и 5 удалений
  1. 7
    3
      Marlin/src/feature/spindle_laser.cpp
  2. 2
    2
      Marlin/src/inc/SanityCheck.h

+ 7
- 3
Marlin/src/feature/spindle_laser.cpp Просмотреть файл

67
 void SpindleLaser::init() {
67
 void SpindleLaser::init() {
68
   #if ENABLED(SPINDLE_SERVO)
68
   #if ENABLED(SPINDLE_SERVO)
69
     servo[SPINDLE_SERVO_NR].move(SPINDLE_SERVO_MIN);
69
     servo[SPINDLE_SERVO_NR].move(SPINDLE_SERVO_MIN);
70
-  #else
70
+  #elif PIN_EXISTS(SPINDLE_LASER_ENA)
71
     OUT_WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE);    // Init spindle to off
71
     OUT_WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE);    // Init spindle to off
72
   #endif
72
   #endif
73
   #if ENABLED(SPINDLE_CHANGE_DIR)
73
   #if ENABLED(SPINDLE_CHANGE_DIR)
104
   }
104
   }
105
 
105
 
106
   void SpindleLaser::set_ocr(const uint8_t ocr) {
106
   void SpindleLaser::set_ocr(const uint8_t ocr) {
107
-    WRITE(SPINDLE_LASER_ENA_PIN,  SPINDLE_LASER_ACTIVE_STATE); // Cutter ON
107
+    #if PIN_EXISTS(SPINDLE_LASER_ENA)
108
+      WRITE(SPINDLE_LASER_ENA_PIN,  SPINDLE_LASER_ACTIVE_STATE); // Cutter ON
109
+    #endif
108
     _set_ocr(ocr);
110
     _set_ocr(ocr);
109
   }
111
   }
110
 
112
 
111
   void SpindleLaser::ocr_off() {
113
   void SpindleLaser::ocr_off() {
112
-    WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Cutter OFF
114
+    #if PIN_EXISTS(SPINDLE_LASER_ENA)
115
+      WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Cutter OFF
116
+    #endif
113
     _set_ocr(0);
117
     _set_ocr(0);
114
   }
118
   }
115
 #endif // SPINDLE_LASER_USE_PWM
119
 #endif // SPINDLE_LASER_USE_PWM

+ 2
- 2
Marlin/src/inc/SanityCheck.h Просмотреть файл

3912
   #define _PIN_CONFLICT(P) (PIN_EXISTS(P) && P##_PIN == SPINDLE_LASER_PWM_PIN)
3912
   #define _PIN_CONFLICT(P) (PIN_EXISTS(P) && P##_PIN == SPINDLE_LASER_PWM_PIN)
3913
   #if BOTH(SPINDLE_FEATURE, LASER_FEATURE)
3913
   #if BOTH(SPINDLE_FEATURE, LASER_FEATURE)
3914
     #error "Enable only one of SPINDLE_FEATURE or LASER_FEATURE."
3914
     #error "Enable only one of SPINDLE_FEATURE or LASER_FEATURE."
3915
-  #elif !PIN_EXISTS(SPINDLE_LASER_ENA) && DISABLED(SPINDLE_SERVO)
3916
-    #error "(SPINDLE|LASER)_FEATURE requires SPINDLE_LASER_ENA_PIN or SPINDLE_SERVO to control the power."
3915
+  #elif NONE(SPINDLE_SERVO, SPINDLE_LASER_USE_PWM) && !PIN_EXISTS(SPINDLE_LASER_ENA)
3916
+    #error "(SPINDLE|LASER)_FEATURE requires SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_USE_PWM, or SPINDLE_SERVO to control the power."
3917
   #elif ENABLED(SPINDLE_CHANGE_DIR) && !PIN_EXISTS(SPINDLE_DIR)
3917
   #elif ENABLED(SPINDLE_CHANGE_DIR) && !PIN_EXISTS(SPINDLE_DIR)
3918
     #error "SPINDLE_DIR_PIN is required for SPINDLE_CHANGE_DIR."
3918
     #error "SPINDLE_DIR_PIN is required for SPINDLE_CHANGE_DIR."
3919
   #elif ENABLED(SPINDLE_LASER_USE_PWM)
3919
   #elif ENABLED(SPINDLE_LASER_USE_PWM)

Загрузка…
Отмена
Сохранить