Browse Source

PID_ADD_EXTRUSION_RATE based on MarlinKimbra

Scott Lahteine 8 years ago
parent
commit
0c7c45063b
1 changed files with 16 additions and 6 deletions
  1. 16
    6
      Marlin/temperature.cpp

+ 16
- 6
Marlin/temperature.cpp View File

417
 
417
 
418
         pid_output = pTerm[e] + iTerm[e] - dTerm[e];
418
         pid_output = pTerm[e] + iTerm[e] - dTerm[e];
419
 
419
 
420
+        #if ENABLED(SINGLENOZZLE)
421
+          #define _NOZZLE_TEST     true
422
+          #define _NOZZLE_EXTRUDER active_extruder
423
+          #define _CTERM_INDEX     0
424
+        #else
425
+          #define _NOZZLE_TEST     e == active_extruder
426
+          #define _NOZZLE_EXTRUDER e
427
+          #define _CTERM_INDEX     e
428
+        #endif
429
+
420
         #if ENABLED(PID_ADD_EXTRUSION_RATE)
430
         #if ENABLED(PID_ADD_EXTRUSION_RATE)
421
-          cTerm[e] = 0;
422
-          if (e == active_extruder) {
431
+          cTerm[_CTERM_INDEX] = 0;
432
+          if (_NOZZLE_TEST) {
423
             long e_position = stepper.position(E_AXIS);
433
             long e_position = stepper.position(E_AXIS);
424
-            if (e_position > last_position[e]) {
425
-              lpq[lpq_ptr++] = e_position - last_position[e];
426
-              last_position[e] = e_position;
434
+            if (e_position > last_position[_NOZZLE_EXTRUDER]) {
435
+              lpq[lpq_ptr++] = e_position - last_position[_NOZZLE_EXTRUDER];
436
+              last_position[_NOZZLE_EXTRUDER] = e_position;
427
             }
437
             }
428
             else {
438
             else {
429
               lpq[lpq_ptr++] = 0;
439
               lpq[lpq_ptr++] = 0;
430
             }
440
             }
431
             if (lpq_ptr >= lpq_len) lpq_ptr = 0;
441
             if (lpq_ptr >= lpq_len) lpq_ptr = 0;
432
-            cTerm[e] = (lpq[lpq_ptr] / planner.axis_steps_per_unit[E_AXIS]) * PID_PARAM(Kc, e);
442
+            cTerm[_CTERM_INDEX] = (lpq[lpq_ptr] / planner.axis_steps_per_unit[E_AXIS]) * PID_PARAM(Kc, e);
433
             pid_output += cTerm[e];
443
             pid_output += cTerm[e];
434
           }
444
           }
435
         #endif //PID_ADD_EXTRUSION_RATE
445
         #endif //PID_ADD_EXTRUSION_RATE

Loading…
Cancel
Save