Browse Source

Allow heaters to stay full On when PWM=127

In previous version, even with PWM = 127, the system turns the FET off
and then on in the next cycle. This bevavior may increase the FET heat
dissipation.
It was fixed keeping the FET always On when PWM=127.
Alex Borro 11 years ago
parent
commit
35905ea4f9
1 changed files with 11 additions and 10 deletions
  1. 11
    10
      Marlin/temperature.cpp

+ 11
- 10
Marlin/temperature.cpp View File

@@ -1057,41 +1057,42 @@ ISR(TIMER0_COMPB_vect)
1057 1057
       #ifdef HEATERS_PARALLEL
1058 1058
       WRITE(HEATER_1_PIN,1);
1059 1059
       #endif
1060
-    }
1060
+    } else WRITE(HEATER_0_PIN,0);
1061
+	
1061 1062
     #if EXTRUDERS > 1
1062 1063
     soft_pwm_1 = soft_pwm[1];
1063
-    if(soft_pwm_1 > 0) WRITE(HEATER_1_PIN,1);
1064
+    if(soft_pwm_1 > 0) WRITE(HEATER_1_PIN,1); else WRITE(HEATER_1_PIN,0);
1064 1065
     #endif
1065 1066
     #if EXTRUDERS > 2
1066 1067
     soft_pwm_2 = soft_pwm[2];
1067
-    if(soft_pwm_2 > 0) WRITE(HEATER_2_PIN,1);
1068
+    if(soft_pwm_2 > 0) WRITE(HEATER_2_PIN,1); else WRITE(HEATER_2_PIN,0);
1068 1069
     #endif
1069 1070
     #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1
1070 1071
     soft_pwm_b = soft_pwm_bed;
1071
-    if(soft_pwm_b > 0) WRITE(HEATER_BED_PIN,1);
1072
+    if(soft_pwm_b > 0) WRITE(HEATER_BED_PIN,1); else WRITE(HEATER_BED_PIN,0);
1072 1073
     #endif
1073 1074
     #ifdef FAN_SOFT_PWM
1074 1075
     soft_pwm_fan = fanSpeedSoftPwm / 2;
1075
-    if(soft_pwm_fan > 0) WRITE(FAN_PIN,1);
1076
+    if(soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0);
1076 1077
     #endif
1077 1078
   }
1078
-  if(soft_pwm_0 <= pwm_count) { 
1079
+  if(soft_pwm_0 < pwm_count) { 
1079 1080
       WRITE(HEATER_0_PIN,0);
1080 1081
       #ifdef HEATERS_PARALLEL
1081 1082
       WRITE(HEATER_1_PIN,0);
1082 1083
       #endif
1083 1084
     }
1084 1085
   #if EXTRUDERS > 1
1085
-  if(soft_pwm_1 <= pwm_count) WRITE(HEATER_1_PIN,0);
1086
+  if(soft_pwm_1 < pwm_count) WRITE(HEATER_1_PIN,0);
1086 1087
   #endif
1087 1088
   #if EXTRUDERS > 2
1088
-  if(soft_pwm_2 <= pwm_count) WRITE(HEATER_2_PIN,0);
1089
+  if(soft_pwm_2 < pwm_count) WRITE(HEATER_2_PIN,0);
1089 1090
   #endif
1090 1091
   #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1
1091
-  if(soft_pwm_b <= pwm_count) WRITE(HEATER_BED_PIN,0);
1092
+  if(soft_pwm_b < pwm_count) WRITE(HEATER_BED_PIN,0);
1092 1093
   #endif
1093 1094
   #ifdef FAN_SOFT_PWM
1094
-  if(soft_pwm_fan <= pwm_count) WRITE(FAN_PIN,0);
1095
+  if(soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0);
1095 1096
   #endif
1096 1097
   
1097 1098
   pwm_count += (1 << SOFT_PWM_SCALE);

Loading…
Cancel
Save