瀏覽代碼

Merge remote-tracking branch 'daid/Marlin_v1' into Test

Erik van der Zalm 13 年之前
父節點
當前提交
4fbda5c3f5
共有 2 個文件被更改,包括 10 次插入4 次删除
  1. 6
    0
      Marlin/Configuration.h
  2. 4
    4
      Marlin/temperature.cpp

+ 6
- 0
Marlin/Configuration.h 查看文件

@@ -71,6 +71,12 @@
71 71
 #define HEATER_2_MAXTEMP 275
72 72
 #define BED_MAXTEMP 150
73 73
 
74
+//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
75
+//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
76
+#define TEMP_SENSOR_AD595_OFFSET 0.0
77
+#define TEMP_SENSOR_AD595_GAIN   1.0
78
+
79
+
74 80
 // PID settings:
75 81
 // Comment the following line to disable PID and enable bang-bang.
76 82
 #define PIDTEMP

+ 4
- 4
Marlin/temperature.cpp 查看文件

@@ -312,7 +312,7 @@ int temp2analog(int celsius, uint8_t e) {
312 312
 
313 313
     return (1023 * OVERSAMPLENR) - raw;
314 314
   }
315
-  return celsius * (1024.0 / (5.0 * 100.0) ) * OVERSAMPLENR;
315
+  return ((celsius-TEMP_SENSOR_AD595_OFFSET)/TEMP_SENSOR_AD595_GAIN) * (1024.0 / (5.0 * 100.0) ) * OVERSAMPLENR;
316 316
 }
317 317
 
318 318
 // Takes bed temperature value as input and returns corresponding raw value. 
@@ -342,7 +342,7 @@ int temp2analogBed(int celsius) {
342 342
 
343 343
     return (1023 * OVERSAMPLENR) - raw;
344 344
 #elif defined BED_USES_AD595
345
-    return lround(celsius * (1024.0 * OVERSAMPLENR/ (5.0 * 100.0) ) );
345
+    return lround(((celsius-TEMP_SENSOR_AD595_OFFSET)/TEMP_SENSOR_AD595_GAIN) * (1024.0 * OVERSAMPLENR/ (5.0 * 100.0) ) );
346 346
 #else
347 347
     #warning No heater-type defined for the bed.
348 348
     return 0;
@@ -390,7 +390,7 @@ float analog2temp(int raw, uint8_t e) {
390 390
 
391 391
     return celsius;
392 392
   }
393
-  return raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR;
393
+  return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET;
394 394
 }
395 395
 
396 396
 // Derived from RepRap FiveD extruder::getTemperature()
@@ -421,7 +421,7 @@ float analog2tempBed(int raw) {
421 421
     return celsius;
422 422
     
423 423
   #elif defined BED_USES_AD595
424
-    return raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR;
424
+    return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET;
425 425
   #else
426 426
     #warning No heater-type defined for the bed.
427 427
   #endif

Loading…
取消
儲存