@ -1521,7 +1521,7 @@ void Temperature::isr() {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      static  uint8_t  state_heater_  # #  n  =  0 ;  \
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      static  uint8_t  state_timer_heater_  # #  n  =  0 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    # define ISR_STATICS(n) static uint8_t soft_pwm_ ## n 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    # define ISR_STATICS(n) static uint8_t soft_pwm_ ## n  = 0 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  // Statics per heater
 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1544,43 +1544,51 @@ void Temperature::isr() {
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  # if DISABLED(SLOW_PWM_HEATERS) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    constexpr  uint8_t  pwm_mask  = 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # if ENABLED(SOFT_PWM_DITHER) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        _BV ( SOFT_PWM_SCALE )  -  1 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        0 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    /**
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     *  Standard  PWM  modulation 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     */ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( pwm_count  > =  127 )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      pwm_count  =  0 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      soft_pwm_0  =  soft_pwm [ 0 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      WRITE_HEATER_0 ( soft_pwm_0  >  0  ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      pwm_count  -=  127  ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      soft_pwm_0  =  ( soft_pwm_0  &  pwm_mask )  +  soft_pwm [ 0 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      WRITE_HEATER_0 ( soft_pwm_0  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # if HOTENDS > 1 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        soft_pwm_1  =  soft_pwm [ 1 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WRITE_HEATER_1 ( soft_pwm_1  >  0   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        soft_pwm_1  =  ( soft_pwm_1  &  pwm_mask )  +  soft_pwm [ 1 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WRITE_HEATER_1 ( soft_pwm_1  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # if HOTENDS > 2 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_2  =  soft_pwm [ 2 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_HEATER_2 ( soft_pwm_2  >  0   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_2  =  ( soft_pwm_2  &  pwm_mask )  +  soft_pwm [ 2 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_HEATER_2 ( soft_pwm_2  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          # if HOTENDS > 3 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            soft_pwm_3  =  soft_pwm [ 3 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            WRITE_HEATER_3 ( soft_pwm_3  >  0   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            soft_pwm_3  =  ( soft_pwm_3  &  pwm_mask )  +  soft_pwm [ 3 ] ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            WRITE_HEATER_3 ( soft_pwm_3  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # if HAS_HEATER_BED 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        soft_pwm_BED  =  soft_pwm_bed ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WRITE_HEATER_BED ( soft_pwm_BED  >  0   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        soft_pwm_BED  =  ( soft_pwm_BED  &  pwm_mask )  +  soft_pwm_bed ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WRITE_HEATER_BED ( soft_pwm_BED  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # if ENABLED(FAN_SOFT_PWM) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # if HAS_FAN0 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_fan [ 0 ]  =  fanSpeedSoftPwm [ 0 ]  > >  1 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_FAN ( soft_pwm_fan [ 0 ]  >  0   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_fan [ 0 ]  =  ( soft_pwm_fan [ 0 ]  &  pwm_mask )  +  fanSpeedSoftPwm [ 0 ]  > >  1 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_FAN ( soft_pwm_fan [ 0 ]  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # if HAS_FAN1 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_fan [ 1 ]  =  fanSpeedSoftPwm [ 1 ]  > >  1 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_FAN1 ( soft_pwm_fan [ 1 ]  >  0   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_fan [ 1 ]  =  ( soft_pwm_fan [ 1 ]  &  pwm_mask )  +  fanSpeedSoftPwm [ 1 ]  > >  1 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_FAN1 ( soft_pwm_fan [ 1 ]  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # if HAS_FAN2 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_fan [ 2 ]  =  fanSpeedSoftPwm [ 2 ]  > >  1 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_FAN2 ( soft_pwm_fan [ 2 ]  >  0   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          soft_pwm_fan [ 2 ]  =  ( soft_pwm_fan [ 2 ]  &  pwm_mask )  +  fanSpeedSoftPwm [ 2 ]  > >  1 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          WRITE_FAN2 ( soft_pwm_fan [ 2 ]  >  pwm_mask   ?  HIGH  :  LOW ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      # endif 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }