Let laser/spindle use free AVR servo timers (#19011)
This commit is contained in:
		| @@ -60,9 +60,11 @@ | |||||||
| #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) | #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) | ||||||
|   //#define _useTimer1 |   //#define _useTimer1 | ||||||
|   #define _useTimer3 |   #define _useTimer3 | ||||||
|   #define _useTimer4 |   #if NUM_SERVOS > SERVOS_PER_TIMER | ||||||
|   #if !HAS_MOTOR_CURRENT_PWM |     #define _useTimer4 | ||||||
|     #define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos. |     #if !HAS_MOTOR_CURRENT_PWM && SERVOS > 2 * SERVOS_PER_TIMER | ||||||
|  |       #define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos. | ||||||
|  |     #endif | ||||||
|   #endif |   #endif | ||||||
| #elif defined(__AVR_ATmega32U4__) | #elif defined(__AVR_ATmega32U4__) | ||||||
|   #define _useTimer3 |   #define _useTimer3 | ||||||
|   | |||||||
| @@ -36,9 +36,10 @@ | |||||||
|  * Sanity checks for Spindle / Laser PWM |  * Sanity checks for Spindle / Laser PWM | ||||||
|  */ |  */ | ||||||
| #if ENABLED(SPINDLE_LASER_PWM) | #if ENABLED(SPINDLE_LASER_PWM) | ||||||
|  |   #include "../ServoTimers.h"   // Needed to check timer availability (_useTimer3) | ||||||
|   #if SPINDLE_LASER_PWM_PIN == 4 || WITHIN(SPINDLE_LASER_PWM_PIN, 11, 13) |   #if SPINDLE_LASER_PWM_PIN == 4 || WITHIN(SPINDLE_LASER_PWM_PIN, 11, 13) | ||||||
|     #error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by a system interrupt." |     #error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by a system interrupt." | ||||||
|   #elif NUM_SERVOS > 0 && (WITHIN(SPINDLE_LASER_PWM_PIN, 2, 3) || SPINDLE_LASER_PWM_PIN == 5) |   #elif NUM_SERVOS > 0 && defined(_useTimer3) && (WITHIN(SPINDLE_LASER_PWM_PIN, 2, 3) || SPINDLE_LASER_PWM_PIN == 5) | ||||||
|     #error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by the servo system." |     #error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by the servo system." | ||||||
|   #endif |   #endif | ||||||
| #elif defined(SPINDLE_LASER_FREQUENCY) | #elif defined(SPINDLE_LASER_FREQUENCY) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user