| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1286,9 +1286,7 @@ void Temperature::disable_all_heaters() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }
 | 
					 | 
					 | 
					 | 
					  }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #if HAS_TEMP_HOTEND
 | 
					 | 
					 | 
					 | 
					  #if HAS_TEMP_HOTEND
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    setTargetHotend(0, 0);
 | 
					 | 
					 | 
					 | 
					    DISABLE_HEATER(0);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    soft_pwm[0] = 0;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    WRITE_HEATER_0P(LOW); // Should HEATERS_PARALLEL apply here? Then change to DISABLE_HEATER(0)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #endif
 | 
					 | 
					 | 
					 | 
					  #endif
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #if HOTENDS > 1 && HAS_TEMP_1
 | 
					 | 
					 | 
					 | 
					  #if HOTENDS > 1 && HAS_TEMP_1
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1431,7 +1429,7 @@ void Temperature::isr() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // Statics per heater
 | 
					 | 
					 | 
					 | 
					  // Statics per heater
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ISR_STATICS(0);
 | 
					 | 
					 | 
					 | 
					  ISR_STATICS(0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #if (HOTENDS > 1) || ENABLED(HEATERS_PARALLEL)
 | 
					 | 
					 | 
					 | 
					  #if HOTENDS > 1
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    ISR_STATICS(1);
 | 
					 | 
					 | 
					 | 
					    ISR_STATICS(1);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    #if HOTENDS > 2
 | 
					 | 
					 | 
					 | 
					    #if HOTENDS > 2
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ISR_STATICS(2);
 | 
					 | 
					 | 
					 | 
					      ISR_STATICS(2);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1450,15 +1448,11 @@ void Temperature::isr() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #if DISABLED(SLOW_PWM_HEATERS)
 | 
					 | 
					 | 
					 | 
					  #if DISABLED(SLOW_PWM_HEATERS)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    /**
 | 
					 | 
					 | 
					 | 
					    /**
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * standard PWM modulation
 | 
					 | 
					 | 
					 | 
					     * Standard PWM modulation
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     */
 | 
					 | 
					 | 
					 | 
					     */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (pwm_count == 0) {
 | 
					 | 
					 | 
					 | 
					    if (pwm_count == 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      soft_pwm_0 = soft_pwm[0];
 | 
					 | 
					 | 
					 | 
					      soft_pwm_0 = soft_pwm[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (soft_pwm_0 > 0) {
 | 
					 | 
					 | 
					 | 
					      WRITE_HEATER_0(soft_pwm_0 > 0 ? 1 : 0);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        WRITE_HEATER_0(1);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      }
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      else WRITE_HEATER_0P(0); // If HEATERS_PARALLEL should apply, change to WRITE_HEATER_0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      #if HOTENDS > 1
 | 
					 | 
					 | 
					 | 
					      #if HOTENDS > 1
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        soft_pwm_1 = soft_pwm[1];
 | 
					 | 
					 | 
					 | 
					        soft_pwm_1 = soft_pwm[1];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        WRITE_HEATER_1(soft_pwm_1 > 0 ? 1 : 0);
 | 
					 | 
					 | 
					 | 
					        WRITE_HEATER_1(soft_pwm_1 > 0 ? 1 : 0);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1535,7 +1529,7 @@ void Temperature::isr() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      #define MIN_STATE_TIME 16 // MIN_STATE_TIME * 65.5 = time in milliseconds
 | 
					 | 
					 | 
					 | 
					      #define MIN_STATE_TIME 16 // MIN_STATE_TIME * 65.5 = time in milliseconds
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    #endif
 | 
					 | 
					 | 
					 | 
					    #endif
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    // Macros for Slow PWM timer logic - HEATERS_PARALLEL applies
 | 
					 | 
					 | 
					 | 
					    // Macros for Slow PWM timer logic
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    #define _SLOW_PWM_ROUTINE(NR, src) \
 | 
					 | 
					 | 
					 | 
					    #define _SLOW_PWM_ROUTINE(NR, src) \
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      soft_pwm_ ## NR = src; \
 | 
					 | 
					 | 
					 | 
					      soft_pwm_ ## NR = src; \
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (soft_pwm_ ## NR > 0) { \
 | 
					 | 
					 | 
					 | 
					      if (soft_pwm_ ## NR > 0) { \
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |