mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-30 15:26:18 +00:00
🚸 Laser with only PWM pin (#24345)
This commit is contained in:
parent
59c2fe4561
commit
a167e2e948
@ -67,7 +67,7 @@ cutter_frequency_t SpindleLaser::frequency; // PWM fre
|
|||||||
void SpindleLaser::init() {
|
void SpindleLaser::init() {
|
||||||
#if ENABLED(SPINDLE_SERVO)
|
#if ENABLED(SPINDLE_SERVO)
|
||||||
servo[SPINDLE_SERVO_NR].move(SPINDLE_SERVO_MIN);
|
servo[SPINDLE_SERVO_NR].move(SPINDLE_SERVO_MIN);
|
||||||
#else
|
#elif PIN_EXISTS(SPINDLE_LASER_ENA)
|
||||||
OUT_WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Init spindle to off
|
OUT_WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Init spindle to off
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(SPINDLE_CHANGE_DIR)
|
#if ENABLED(SPINDLE_CHANGE_DIR)
|
||||||
@ -104,12 +104,16 @@ void SpindleLaser::init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SpindleLaser::set_ocr(const uint8_t ocr) {
|
void SpindleLaser::set_ocr(const uint8_t ocr) {
|
||||||
WRITE(SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_ACTIVE_STATE); // Cutter ON
|
#if PIN_EXISTS(SPINDLE_LASER_ENA)
|
||||||
|
WRITE(SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_ACTIVE_STATE); // Cutter ON
|
||||||
|
#endif
|
||||||
_set_ocr(ocr);
|
_set_ocr(ocr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpindleLaser::ocr_off() {
|
void SpindleLaser::ocr_off() {
|
||||||
WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Cutter OFF
|
#if PIN_EXISTS(SPINDLE_LASER_ENA)
|
||||||
|
WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Cutter OFF
|
||||||
|
#endif
|
||||||
_set_ocr(0);
|
_set_ocr(0);
|
||||||
}
|
}
|
||||||
#endif // SPINDLE_LASER_USE_PWM
|
#endif // SPINDLE_LASER_USE_PWM
|
||||||
|
@ -3912,8 +3912,8 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
|
|||||||
#define _PIN_CONFLICT(P) (PIN_EXISTS(P) && P##_PIN == SPINDLE_LASER_PWM_PIN)
|
#define _PIN_CONFLICT(P) (PIN_EXISTS(P) && P##_PIN == SPINDLE_LASER_PWM_PIN)
|
||||||
#if BOTH(SPINDLE_FEATURE, LASER_FEATURE)
|
#if BOTH(SPINDLE_FEATURE, LASER_FEATURE)
|
||||||
#error "Enable only one of SPINDLE_FEATURE or LASER_FEATURE."
|
#error "Enable only one of SPINDLE_FEATURE or LASER_FEATURE."
|
||||||
#elif !PIN_EXISTS(SPINDLE_LASER_ENA) && DISABLED(SPINDLE_SERVO)
|
#elif NONE(SPINDLE_SERVO, SPINDLE_LASER_USE_PWM) && !PIN_EXISTS(SPINDLE_LASER_ENA)
|
||||||
#error "(SPINDLE|LASER)_FEATURE requires SPINDLE_LASER_ENA_PIN or SPINDLE_SERVO to control the power."
|
#error "(SPINDLE|LASER)_FEATURE requires SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_USE_PWM, or SPINDLE_SERVO to control the power."
|
||||||
#elif ENABLED(SPINDLE_CHANGE_DIR) && !PIN_EXISTS(SPINDLE_DIR)
|
#elif ENABLED(SPINDLE_CHANGE_DIR) && !PIN_EXISTS(SPINDLE_DIR)
|
||||||
#error "SPINDLE_DIR_PIN is required for SPINDLE_CHANGE_DIR."
|
#error "SPINDLE_DIR_PIN is required for SPINDLE_CHANGE_DIR."
|
||||||
#elif ENABLED(SPINDLE_LASER_USE_PWM)
|
#elif ENABLED(SPINDLE_LASER_USE_PWM)
|
||||||
|
Loading…
Reference in New Issue
Block a user