Quellcode durchsuchen

Revert measurement loop

Scott Lahteine vor 10 Jahren
Ursprung
Commit
1fac388664
1 geänderte Dateien mit 77 neuen und 127 gelöschten Zeilen
  1. 77
    127
      Marlin/temperature.cpp

+ 77
- 127
Marlin/temperature.cpp Datei anzeigen

@@ -1145,28 +1145,28 @@ void disable_heater() {
1145 1145
   for (int i=0; i<EXTRUDERS; i++) setTargetHotend(0, i);
1146 1146
   setTargetBed(0);
1147 1147
 
1148
+  #define DISABLE_HEATER(NR) { \
1149
+    target_temperature[NR] = 0; \
1150
+    soft_pwm[NR] = 0; \
1151
+    WRITE_HEATER_ ## NR (LOW); \
1152
+  }
1153
+
1148 1154
   #if HAS_TEMP_0
1149 1155
     target_temperature[0] = 0;
1150 1156
     soft_pwm[0] = 0;
1151
-    WRITE_HEATER_0P(LOW); // If HEATERS_PARALLEL should apply, change to WRITE_HEATER_0
1157
+    WRITE_HEATER_0P(LOW); // Should HEATERS_PARALLEL apply here? Then change to DISABLE_HEATER(0)
1152 1158
   #endif
1153 1159
 
1154 1160
   #if EXTRUDERS > 1 && HAS_TEMP_1
1155
-    target_temperature[1] = 0;
1156
-    soft_pwm[1] = 0;
1157
-    WRITE_HEATER_1(LOW);
1161
+    DISABLE_HEATER(1);
1158 1162
   #endif
1159 1163
 
1160 1164
   #if EXTRUDERS > 2 && HAS_TEMP_2
1161
-    target_temperature[2] = 0;
1162
-    soft_pwm[2] = 0;
1163
-    WRITE_HEATER_2(LOW);
1165
+    DISABLE_HEATER(2);
1164 1166
   #endif
1165 1167
 
1166 1168
   #if EXTRUDERS > 3 && HAS_TEMP_3
1167
-    target_temperature[3] = 0;
1168
-    soft_pwm[3] = 0;
1169
-    WRITE_HEATER_3(LOW);
1169
+    DISABLE_HEATER(3);
1170 1170
   #endif
1171 1171
 
1172 1172
   #if HAS_TEMP_BED
@@ -1240,26 +1240,16 @@ void disable_heater() {
1240 1240
 enum TempState {
1241 1241
   PrepareTemp_0,
1242 1242
   MeasureTemp_0,
1243
-  #if HAS_TEMP_BED
1244
-    PrepareTemp_BED,
1245
-    MeasureTemp_BED,
1246
-  #endif
1247
-  #if HAS_TEMP_1
1248
-    PrepareTemp_1,
1249
-    MeasureTemp_1,
1250
-  #endif
1251
-  #if HAS_TEMP_2
1252
-    PrepareTemp_2,
1253
-    MeasureTemp_2,
1254
-  #endif
1255
-  #if HAS_TEMP_3
1256
-    PrepareTemp_3,
1257
-    MeasureTemp_3,
1258
-  #endif
1259
-  #if HAS_FILAMENT_SENSOR
1260
-    Prepare_FILWIDTH,
1261
-    Measure_FILWIDTH,
1262
-  #endif
1243
+  PrepareTemp_BED,
1244
+  MeasureTemp_BED,
1245
+  PrepareTemp_1,
1246
+  MeasureTemp_1,
1247
+  PrepareTemp_2,
1248
+  MeasureTemp_2,
1249
+  PrepareTemp_3,
1250
+  MeasureTemp_3,
1251
+  Prepare_FILWIDTH,
1252
+  Measure_FILWIDTH,
1263 1253
   StartupDelay // Startup, delay initial temp reading a tiny bit so the hardware can settle
1264 1254
 };
1265 1255
 
@@ -1483,123 +1473,83 @@ ISR(TIMER0_COMPB_vect) {
1483 1473
       #if HAS_TEMP_0
1484 1474
         raw_temp_value[0] += ADC;
1485 1475
       #endif
1486
-      temp_state =
1487
-        #if HAS_TEMP_BED
1488
-          PrepareTemp_BED
1489
-        #elif HAS_TEMP_1
1490
-          PrepareTemp_1
1491
-        #elif HAS_TEMP_2
1492
-          PrepareTemp_2
1493
-        #elif HAS_TEMP_3
1494
-          PrepareTemp_3
1495
-        #elif HAS_FILAMENT_SENSOR
1496
-          Prepare_FILWIDTH
1497
-        #else
1498
-          PrepareTemp_0
1499
-        #endif
1500
-      ;
1476
+      temp_state = PrepareTemp_BED;
1501 1477
       break;
1502 1478
 
1503
-    #if HAS_TEMP_BED
1504
-      case PrepareTemp_BED:
1479
+    case PrepareTemp_BED:
1480
+      #if HAS_TEMP_BED
1505 1481
         START_ADC(TEMP_BED_PIN);
1506
-        lcd_buttons_update();
1507
-        temp_state = MeasureTemp_BED;
1508
-        break;
1509
-      case MeasureTemp_BED:
1482
+      #endif
1483
+      lcd_buttons_update();
1484
+      temp_state = MeasureTemp_BED;
1485
+      break;
1486
+    case MeasureTemp_BED:
1487
+      #if HAS_TEMP_BED
1510 1488
         raw_temp_bed_value += ADC;
1511
-        temp_state =
1512
-          #if HAS_TEMP_1
1513
-            PrepareTemp_1
1514
-          #elif HAS_TEMP_2
1515
-            PrepareTemp_2
1516
-          #elif HAS_TEMP_3
1517
-            PrepareTemp_3
1518
-          #elif HAS_FILAMENT_SENSOR
1519
-            Prepare_FILWIDTH
1520
-          #else
1521
-            PrepareTemp_0
1522
-          #endif
1523
-        ;
1524
-        break;
1525
-    #endif
1489
+      #endif
1490
+      temp_state = PrepareTemp_1;
1491
+      break;
1526 1492
 
1527
-    #if HAS_TEMP_1
1528
-      case PrepareTemp_1:
1493
+    case PrepareTemp_1:
1494
+      #if HAS_TEMP_1
1529 1495
         START_ADC(TEMP_1_PIN);
1530
-        lcd_buttons_update();
1531
-        temp_state = MeasureTemp_1;
1532
-        break;
1533
-      case MeasureTemp_1:
1496
+      #endif
1497
+      lcd_buttons_update();
1498
+      temp_state = MeasureTemp_1;
1499
+      break;
1500
+    case MeasureTemp_1:
1501
+      #if HAS_TEMP_1
1534 1502
         raw_temp_value[1] += ADC;
1535
-        temp_state =
1536
-          #if HAS_TEMP_2
1537
-            PrepareTemp_2
1538
-          #elif HAS_TEMP_3
1539
-            PrepareTemp_3
1540
-          #elif HAS_FILAMENT_SENSOR
1541
-            Prepare_FILWIDTH
1542
-          #else
1543
-            PrepareTemp_0
1544
-          #endif
1545
-        ;
1546
-        break;
1547
-    #endif
1503
+      #endif
1504
+      temp_state = PrepareTemp_2;
1505
+      break;
1548 1506
 
1549
-    #if HAS_TEMP_2
1550
-      case PrepareTemp_2:
1507
+    case PrepareTemp_2:
1508
+      #if HAS_TEMP_2
1551 1509
         START_ADC(TEMP_2_PIN);
1552
-        lcd_buttons_update();
1553
-        temp_state = MeasureTemp_2;
1554
-        break;
1555
-      case MeasureTemp_2:
1510
+      #endif
1511
+      lcd_buttons_update();
1512
+      temp_state = MeasureTemp_2;
1513
+      break;
1514
+    case MeasureTemp_2:
1515
+      #if HAS_TEMP_2
1556 1516
         raw_temp_value[2] += ADC;
1557
-        temp_state =
1558
-          #if HAS_TEMP_3
1559
-            PrepareTemp_3
1560
-          #elif HAS_FILAMENT_SENSOR
1561
-            Prepare_FILWIDTH
1562
-          #else
1563
-            PrepareTemp_0
1564
-          #endif
1565
-        ;
1566
-        break;
1567
-    #endif
1517
+      #endif
1518
+      temp_state = PrepareTemp_3;
1519
+      break;
1568 1520
 
1569
-    #if HAS_TEMP_3
1570
-      case PrepareTemp_3:
1521
+    case PrepareTemp_3:
1522
+      #if HAS_TEMP_3
1571 1523
         START_ADC(TEMP_3_PIN);
1572
-        lcd_buttons_update();
1573
-        temp_state = MeasureTemp_3;
1574
-        break;
1575
-      case MeasureTemp_3:
1524
+      #endif
1525
+      lcd_buttons_update();
1526
+      temp_state = MeasureTemp_3;
1527
+      break;
1528
+    case MeasureTemp_3:
1529
+      #if HAS_TEMP_3
1576 1530
         raw_temp_value[3] += ADC;
1577
-        temp_state =
1578
-          #if HAS_FILAMENT_SENSOR
1579
-            Prepare_FILWIDTH
1580
-          #else
1581
-            PrepareTemp_0
1582
-          #endif
1583
-        ;
1584
-        break;
1585
-    #endif
1531
+      #endif
1532
+      temp_state = Prepare_FILWIDTH;
1533
+      break;
1586 1534
 
1587
-    #if HAS_FILAMENT_SENSOR
1588
-      case Prepare_FILWIDTH:
1535
+    case Prepare_FILWIDTH:
1536
+      #if HAS_FILAMENT_SENSOR
1589 1537
         START_ADC(FILWIDTH_PIN);
1590
-        lcd_buttons_update();
1591
-        temp_state = Measure_FILWIDTH;
1592
-        break;
1593
-      case Measure_FILWIDTH:
1538
+      #endif
1539
+      lcd_buttons_update();
1540
+      temp_state = Measure_FILWIDTH;
1541
+      break;
1542
+    case Measure_FILWIDTH:
1543
+      #if HAS_FILAMENT_SENSOR
1594 1544
         // raw_filwidth_value += ADC;  //remove to use an IIR filter approach
1595 1545
         if (ADC > 102) { //check that ADC is reading a voltage > 0.5 volts, otherwise don't take in the data.
1596 1546
           raw_filwidth_value -= (raw_filwidth_value>>7);  //multiply raw_filwidth_value by 127/128
1597 1547
           raw_filwidth_value += ((unsigned long)ADC<<7);  //add new ADC reading
1598 1548
         }
1599
-        temp_state = PrepareTemp_0;
1600
-        temp_count++;
1601
-        break;
1602
-    #endif
1549
+      #endif
1550
+      temp_state = PrepareTemp_0;
1551
+      temp_count++;
1552
+      break;
1603 1553
 
1604 1554
     case StartupDelay:
1605 1555
       temp_state = PrepareTemp_0;

Laden…
Abbrechen
Speichern