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__) | ||||
|   //#define _useTimer1 | ||||
|   #define _useTimer3 | ||||
|   #define _useTimer4 | ||||
|   #if !HAS_MOTOR_CURRENT_PWM | ||||
|     #define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos. | ||||
|   #if NUM_SERVOS > SERVOS_PER_TIMER | ||||
|     #define _useTimer4 | ||||
|     #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 | ||||
| #elif defined(__AVR_ATmega32U4__) | ||||
|   #define _useTimer3 | ||||
|   | ||||
| @@ -36,9 +36,10 @@ | ||||
|  * Sanity checks for 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) | ||||
|     #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." | ||||
|   #endif | ||||
| #elif defined(SPINDLE_LASER_FREQUENCY) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user