Przeglądaj źródła

Fix MAX31865 on SPI (PT100/1000) support (#20074)

JoAnn Manges 3 lat temu
rodzic
commit
40d442fde2
No account linked to committer's email address

+ 5
- 5
Marlin/Configuration.h Wyświetl plik

@@ -436,11 +436,11 @@
436 436
 #define DUMMY_THERMISTOR_998_VALUE 25
437 437
 #define DUMMY_THERMISTOR_999_VALUE 100
438 438
 
439
-// Resistor values when using a MAX31865 (sensor -5)
440
-// Sensor value is typically 100 (PT100) or 1000 (PT1000)
441
-// Calibration value is typically 430 ohm for AdaFruit PT100 modules and 4300 ohm for AdaFruit PT1000 modules.
442
-//#define MAX31865_SENSOR_OHMS      100
443
-//#define MAX31865_CALIBRATION_OHMS 430
439
+// Resistor values when using MAX31865 sensors (-5) on TEMP_SENSOR_0 / 1
440
+//#define MAX31865_SENSOR_OHMS_0      100   // (Ω) Typically 100 or 1000 (PT100 or PT1000)
441
+//#define MAX31865_CALIBRATION_OHMS_0 430   // (Ω) Typically 430 for AdaFruit PT100; 4300 for AdaFruit PT1000
442
+//#define MAX31865_SENSOR_OHMS_1      100
443
+//#define MAX31865_CALIBRATION_OHMS_1 430
444 444
 
445 445
 // Use temp sensor 1 as a redundant sensor with sensor 0. If the readings
446 446
 // from the two sensors differ too much the print will be aborted.

+ 7
- 2
Marlin/src/inc/Conditionals_post.h Wyświetl plik

@@ -445,9 +445,9 @@
445 445
     #define HEATER_0_MAX6675_TMAX 1024
446 446
   #endif
447 447
   #if TEMP_SENSOR_0 == -5
448
-    #define MAX6675_IS_MAX31865 1
448
+    #define MAX6675_0_IS_MAX31865 1
449 449
   #elif TEMP_SENSOR_0 == -3
450
-    #define MAX6675_IS_MAX31855 1
450
+    #define MAX6675_0_IS_MAX31855 1
451 451
   #endif
452 452
 #elif TEMP_SENSOR_0 == -4
453 453
   #define HEATER_0_USES_AD8495 1
@@ -473,6 +473,11 @@
473 473
     #define HEATER_1_MAX6675_TMIN    0
474 474
     #define HEATER_1_MAX6675_TMAX 1024
475 475
   #endif
476
+  #if TEMP_SENSOR_1 == -5
477
+    #define MAX6675_1_IS_MAX31865 1
478
+  #elif TEMP_SENSOR_1 == -3
479
+    #define MAX6675_1_IS_MAX31855 1
480
+  #endif
476 481
   #if TEMP_SENSOR_1 != TEMP_SENSOR_0
477 482
     #if   TEMP_SENSOR_1 == -5
478 483
       #error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."

+ 8
- 2
Marlin/src/inc/SanityCheck.h Wyświetl plik

@@ -405,6 +405,10 @@
405 405
   #error "MAX6675_SS is now MAX6675_SS_PIN. Please update your configuration and/or pins."
406 406
 #elif defined(MAX6675_SS2)
407 407
   #error "MAX6675_SS2 is now MAX6675_SS2_PIN. Please update your configuration and/or pins."
408
+#elif defined(MAX31865_SENSOR_OHMS)
409
+  #error "MAX31865_SENSOR_OHMS is now MAX31865_SENSOR_OHMS_0. Please update your configuration."
410
+#elif defined(MAX31865_CALIBRATION_OHMS)
411
+  #error "MAX31865_CALIBRATION_OHMS is now MAX31865_CALIBRATION_OHMS_0. Please update your configuration."
408 412
 #elif defined(SPINDLE_LASER_ENABLE)
409 413
   #error "SPINDLE_LASER_ENABLE is now SPINDLE_FEATURE or LASER_FEATURE. Please update your Configuration_adv.h."
410 414
 #elif defined(SPINDLE_LASER_ENABLE_PIN)
@@ -1814,8 +1818,10 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
1814 1818
   #error "TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT."
1815 1819
 #endif
1816 1820
 
1817
-#if MAX6675_IS_MAX31865 && !(defined(MAX31865_SENSOR_OHMS) && defined(MAX31865_CALIBRATION_OHMS))
1818
-  #error "MAX31865_SENSOR_OHMS and MAX31865_CALIBRATION_OHMS must be set in Configuration.h when using a MAX31865 temperature sensor."
1821
+#if MAX6675_0_IS_MAX31865 && !(defined(MAX31865_SENSOR_OHMS_0) && defined(MAX31865_CALIBRATION_OHMS_0))
1822
+  #error "MAX31865_SENSOR_OHMS_0 and MAX31865_CALIBRATION_OHMS_0 must be set in Configuration.h if TEMP_SENSOR_0 is MAX31865."
1823
+#elif MAX6675_1_IS_MAX31865 && !(defined(MAX31865_SENSOR_OHMS_1) && defined(MAX31865_CALIBRATION_OHMS_1))
1824
+  #error "MAX31865_SENSOR_OHMS_1 and MAX31865_CALIBRATION_OHMS_1 must be set in Configuration.h if TEMP_SENSOR_1 is MAX31865."
1819 1825
 #endif
1820 1826
 
1821 1827
 /**

+ 102
- 85
Marlin/src/module/temperature.cpp Wyświetl plik

@@ -44,30 +44,44 @@
44 44
   #include "../lcd/extui/ui_api.h"
45 45
 #endif
46 46
 
47
-#if MAX6675_IS_MAX31865
47
+#if MAX6675_0_IS_MAX31865 || MAX6675_1_IS_MAX31865
48 48
   #include <Adafruit_MAX31865.h>
49
-  #ifndef MAX31865_CS_PIN
50
-    #define MAX31865_CS_PIN     MAX6675_SS_PIN  // HW:49   SW:65    for example
49
+  #if MAX6675_0_IS_MAX31865 && !defined(MAX31865_CS_PIN) && PIN_EXISTS(MAX6675_SS)
50
+    #define MAX31865_CS_PIN   MAX6675_SS_PIN
51
+  #endif
52
+  #if MAX6675_1_IS_MAX31865 && !defined(MAX31865_CS2_PIN) && PIN_EXISTS(MAX6675_SS2)
53
+    #define MAX31865_CS2_PIN  MAX6675_SS2_PIN
51 54
   #endif
52 55
   #ifndef MAX31865_MOSI_PIN
53
-    #define MAX31865_MOSI_PIN   MOSI_PIN        //            63
56
+    #define MAX31865_MOSI_PIN MOSI_PIN
54 57
   #endif
55 58
   #ifndef MAX31865_MISO_PIN
56
-    #define MAX31865_MISO_PIN   MAX6675_DO_PIN  //            42
59
+    #define MAX31865_MISO_PIN MAX6675_DO_PIN
57 60
   #endif
58 61
   #ifndef MAX31865_SCK_PIN
59
-    #define MAX31865_SCK_PIN    MAX6675_SCK_PIN //            40
62
+    #define MAX31865_SCK_PIN  MAX6675_SCK_PIN
63
+  #endif
64
+  #if MAX6675_0_IS_MAX31865 && PIN_EXISTS(MAX31865_CS)
65
+    #define HAS_MAX31865 1
66
+    Adafruit_MAX31865 max31865_0 = Adafruit_MAX31865(MAX31865_CS_PIN
67
+      #if MAX31865_CS_PIN != MAX6675_SS_PIN
68
+        , MAX31865_MOSI_PIN, MAX31865_MISO_PIN, MAX31865_SCK_PIN // For software SPI also set MOSI/MISO/SCK
69
+      #endif
70
+    );
71
+  #endif
72
+  #if MAX6675_1_IS_MAX31865 && PIN_EXISTS(MAX31865_CS2)
73
+    #define HAS_MAX31865 1
74
+    Adafruit_MAX31865 max31865_1 = Adafruit_MAX31865(MAX31865_CS2_PIN
75
+      #if MAX31865_CS2_PIN != MAX6675_SS2_PIN
76
+        , MAX31865_MOSI_PIN, MAX31865_MISO_PIN, MAX31865_SCK_PIN // For software SPI also set MOSI/MISO/SCK
77
+      #endif
78
+    );
60 79
   #endif
61
-  Adafruit_MAX31865 max31865 = Adafruit_MAX31865(MAX31865_CS_PIN
62
-    #if MAX31865_CS_PIN != MAX6675_SS_PIN
63
-      , MAX31865_MOSI_PIN           // For software SPI also set MOSI/MISO/SCK
64
-      , MAX31865_MISO_PIN
65
-      , MAX31865_SCK_PIN
66
-    #endif
67
-  );
68 80
 #endif
69 81
 
70
-#define MAX6675_SEPARATE_SPI (EITHER(HEATER_0_USES_MAX6675, HEATER_1_USES_MAX6675) && PINS_EXIST(MAX6675_SCK, MAX6675_DO))
82
+#if EITHER(HEATER_0_USES_MAX6675, HEATER_1_USES_MAX6675) && PINS_EXIST(MAX6675_SCK, MAX6675_DO)
83
+  #define MAX6675_SEPARATE_SPI 1
84
+#endif
71 85
 
72 86
 #if MAX6675_SEPARATE_SPI
73 87
   #include "../libs/private_spi.h"
@@ -1471,13 +1485,7 @@ void Temperature::manage_heater() {
1471 1485
         #if HEATER_0_USER_THERMISTOR
1472 1486
           return user_thermistor_to_deg_c(CTI_HOTEND_0, raw);
1473 1487
         #elif HEATER_0_USES_MAX6675
1474
-          return (
1475
-            #if MAX6675_IS_MAX31865
1476
-              max31865.temperature(MAX31865_SENSOR_OHMS, MAX31865_CALIBRATION_OHMS)
1477
-            #else
1478
-              raw * 0.25
1479
-            #endif
1480
-          );
1488
+          return TERN(MAX6675_0_IS_MAX31865, max31865_0.temperature(MAX31865_SENSOR_OHMS_0, MAX31865_CALIBRATION_OHMS_0), raw * 0.25);
1481 1489
         #elif HEATER_0_USES_AD595
1482 1490
           return TEMP_AD595(raw);
1483 1491
         #elif HEATER_0_USES_AD8495
@@ -1489,7 +1497,7 @@ void Temperature::manage_heater() {
1489 1497
         #if HEATER_1_USER_THERMISTOR
1490 1498
           return user_thermistor_to_deg_c(CTI_HOTEND_1, raw);
1491 1499
         #elif HEATER_1_USES_MAX6675
1492
-          return raw * 0.25;
1500
+          return TERN(MAX6675_1_IS_MAX31865, max31865_1.temperature(MAX31865_SENSOR_OHMS_1, MAX31865_CALIBRATION_OHMS_1), raw * 0.25);
1493 1501
         #elif HEATER_1_USES_AD595
1494 1502
           return TEMP_AD595(raw);
1495 1503
         #elif HEATER_1_USES_AD8495
@@ -1691,7 +1699,8 @@ void Temperature::updateTemperaturesFromRawValues() {
1691 1699
  */
1692 1700
 void Temperature::init() {
1693 1701
 
1694
-  TERN_(MAX6675_IS_MAX31865, max31865.begin(MAX31865_2WIRE)); // MAX31865_2WIRE, MAX31865_3WIRE, MAX31865_4WIRE
1702
+  TERN_(MAX6675_0_IS_MAX31865, max31865_0.begin(MAX31865_2WIRE)); // MAX31865_2WIRE, MAX31865_3WIRE, MAX31865_4WIRE
1703
+  TERN_(MAX6675_1_IS_MAX31865, max31865_1.begin(MAX31865_2WIRE));
1695 1704
 
1696 1705
   #if EARLY_WATCHDOG
1697 1706
     // Flag that the thermalManager should be running
@@ -2200,50 +2209,64 @@ void Temperature::disable_all_heaters() {
2200 2209
     #define THERMOCOUPLE_MAX_ERRORS 15
2201 2210
   #endif
2202 2211
 
2203
-  int Temperature::read_max6675(
2204
-    #if COUNT_6675 > 1
2205
-      const uint8_t hindex
2206
-    #endif
2207
-  ) {
2208
-    #if COUNT_6675 == 1
2209
-      constexpr uint8_t hindex = 0;
2210
-    #else
2211
-      // Needed to return the correct temp when this is called too soon
2212
-      static uint16_t max6675_temp_previous[COUNT_6675] = { 0 };
2213
-    #endif
2214
-
2215
-    static uint8_t max6675_errors[COUNT_6675] = { 0 };
2216
-
2212
+  int Temperature::read_max6675(TERN_(HAS_MULTI_6675, const uint8_t hindex/*=0*/)) {
2217 2213
     #define MAX6675_HEAT_INTERVAL 250UL
2218 2214
 
2219
-    #if MAX6675_IS_MAX31855
2215
+    #if MAX6675_0_IS_MAX31855 || MAX6675_1_IS_MAX31855
2220 2216
       static uint32_t max6675_temp = 2000;
2221 2217
       #define MAX6675_ERROR_MASK    7
2222 2218
       #define MAX6675_DISCARD_BITS 18
2223
-      #define MAX6675_SPEED_BITS    3  // (_BV(SPR1)) // clock ÷ 64
2219
+      #define MAX6675_SPEED_BITS    3       // (_BV(SPR1)) // clock ÷ 64
2220
+    #elif HAS_MAX31865
2221
+      static uint16_t max6675_temp = 2000;  // From datasheet 16 bits D15-D0
2222
+      #define MAX6675_ERROR_MASK    1       // D0 Bit not used
2223
+      #define MAX6675_DISCARD_BITS  1       // Data is in D15-D1
2224
+      #define MAX6675_SPEED_BITS    3       //  (_BV(SPR1)) // clock ÷ 64
2224 2225
     #else
2225 2226
       static uint16_t max6675_temp = 2000;
2226 2227
       #define MAX6675_ERROR_MASK    4
2227 2228
       #define MAX6675_DISCARD_BITS  3
2228
-      #define MAX6675_SPEED_BITS    2  // (_BV(SPR0)) // clock ÷ 16
2229
+      #define MAX6675_SPEED_BITS    2       // (_BV(SPR0)) // clock ÷ 16
2229 2230
     #endif
2230 2231
 
2232
+    #if HAS_MULTI_6675
2233
+      // Needed to return the correct temp when this is called between readings
2234
+      static uint16_t max6675_temp_previous[COUNT_6675] = { 0 };
2235
+      #define MAX6675_TEMP(I) max6675_temp_previous[I]
2236
+      #define MAX6675_SEL(A,B) (hindex ? (B) : (A))
2237
+      #define MAX6675_WRITE(V)     do{ switch (hindex) { case 1:      WRITE(MAX6675_SS2_PIN, V); break; default:      WRITE(MAX6675_SS_PIN, V); } }while(0)
2238
+      #define MAX6675_SET_OUTPUT() do{ switch (hindex) { case 1: SET_OUTPUT(MAX6675_SS2_PIN);    break; default: SET_OUTPUT(MAX6675_SS_PIN);    } }while(0)
2239
+    #else
2240
+      constexpr uint8_t hindex = 0;
2241
+      #define MAX6675_TEMP(I) max6675_temp
2242
+      #if MAX6675_1_IS_MAX31865
2243
+        #define MAX6675_SEL(A,B) B
2244
+      #else
2245
+        #define MAX6675_SEL(A,B) A
2246
+      #endif
2247
+      #if HEATER_0_USES_MAX6675
2248
+        #define MAX6675_WRITE(V)          WRITE(MAX6675_SS_PIN, V)
2249
+        #define MAX6675_SET_OUTPUT() SET_OUTPUT(MAX6675_SS_PIN)
2250
+      #else
2251
+        #define MAX6675_WRITE(V)          WRITE(MAX6675_SS2_PIN, V)
2252
+        #define MAX6675_SET_OUTPUT() SET_OUTPUT(MAX6675_SS2_PIN)
2253
+      #endif
2254
+    #endif
2255
+
2256
+    static uint8_t max6675_errors[COUNT_6675] = { 0 };
2257
+
2231 2258
     // Return last-read value between readings
2232 2259
     static millis_t next_max6675_ms[COUNT_6675] = { 0 };
2233 2260
     millis_t ms = millis();
2234
-    if (PENDING(ms, next_max6675_ms[hindex]))
2235
-      return int(
2236
-        #if COUNT_6675 == 1
2237
-          max6675_temp
2238
-        #else
2239
-          max6675_temp_previous[hindex] // Need to return the correct previous value
2240
-        #endif
2241
-      );
2242
-
2261
+    if (PENDING(ms, next_max6675_ms[hindex])) return int(MAX6675_TEMP(hindex));
2243 2262
     next_max6675_ms[hindex] = ms + MAX6675_HEAT_INTERVAL;
2244 2263
 
2245
-    #if MAX6675_IS_MAX31865
2246
-      max6675_temp = int(max31865.temperature(MAX31865_SENSOR_OHMS, MAX31865_CALIBRATION_OHMS));
2264
+    #if HAS_MAX31865
2265
+      Adafruit_MAX31865 &maxref = MAX6675_SEL(max31865_0, max31865_1);
2266
+      max6675_temp = int(maxref.temperature(
2267
+        MAX6675_SEL(MAX31865_SENSOR_OHMS_0, MAX31865_SENSOR_OHMS_1),
2268
+        MAX6675_SEL(MAX31865_CALIBRATION_OHMS_0, MAX31865_CALIBRATION_OHMS_1)
2269
+      ));
2247 2270
     #endif
2248 2271
 
2249 2272
     //
@@ -2254,39 +2277,24 @@ void Temperature::disable_all_heaters() {
2254 2277
       spiInit(MAX6675_SPEED_BITS);
2255 2278
     #endif
2256 2279
 
2257
-    #if COUNT_6675 > 1
2258
-      #define WRITE_MAX6675(V) do{ switch (hindex) { case 1: WRITE(MAX6675_SS2_PIN, V); break; default: WRITE(MAX6675_SS_PIN, V); } }while(0)
2259
-      #define SET_OUTPUT_MAX6675() do{ switch (hindex) { case 1: SET_OUTPUT(MAX6675_SS2_PIN); break; default: SET_OUTPUT(MAX6675_SS_PIN); } }while(0)
2260
-    #elif HEATER_1_USES_MAX6675
2261
-      #define WRITE_MAX6675(V) WRITE(MAX6675_SS2_PIN, V)
2262
-      #define SET_OUTPUT_MAX6675() SET_OUTPUT(MAX6675_SS2_PIN)
2263
-    #else
2264
-      #define WRITE_MAX6675(V) WRITE(MAX6675_SS_PIN, V)
2265
-      #define SET_OUTPUT_MAX6675() SET_OUTPUT(MAX6675_SS_PIN)
2266
-    #endif
2267
-
2268
-    SET_OUTPUT_MAX6675();
2269
-    WRITE_MAX6675(LOW);  // enable TT_MAX6675
2280
+    MAX6675_SET_OUTPUT();
2281
+    MAX6675_WRITE(LOW);  // enable TT_MAX6675
2270 2282
 
2271 2283
     DELAY_NS(100);       // Ensure 100ns delay
2272 2284
 
2273 2285
     // Read a big-endian temperature value
2274 2286
     max6675_temp = 0;
2275 2287
     for (uint8_t i = sizeof(max6675_temp); i--;) {
2276
-      max6675_temp |= (
2277
-        #if MAX6675_SEPARATE_SPI
2278
-          max6675_spi.receive()
2279
-        #else
2280
-          spiRec()
2281
-        #endif
2282
-      );
2288
+      max6675_temp |= TERN(MAX6675_SEPARATE_SPI, max6675_spi.receive(), spiRec());
2283 2289
       if (i > 0) max6675_temp <<= 8; // shift left if not the last byte
2284 2290
     }
2285 2291
 
2286
-    WRITE_MAX6675(HIGH); // disable TT_MAX6675
2292
+    MAX6675_WRITE(HIGH); // disable TT_MAX6675
2293
+
2294
+    const uint8_t fault_31865 = TERN1(HAS_MAX31865, maxref.readFault());
2287 2295
 
2288
-    if (DISABLED(IGNORE_THERMOCOUPLE_ERRORS) && (max6675_temp & MAX6675_ERROR_MASK)) {
2289
-      max6675_errors[hindex] += 1;
2296
+    if (DISABLED(IGNORE_THERMOCOUPLE_ERRORS) && (max6675_temp & MAX6675_ERROR_MASK) && fault_31865) {
2297
+      max6675_errors[hindex]++;
2290 2298
       if (max6675_errors[hindex] > THERMOCOUPLE_MAX_ERRORS) {
2291 2299
         SERIAL_ERROR_START();
2292 2300
         SERIAL_ECHOPGM("Temp measurement error! ");
@@ -2298,18 +2306,29 @@ void Temperature::disable_all_heaters() {
2298 2306
             SERIAL_ECHOLNPGM("Short to GND");
2299 2307
           else if (max6675_temp & 4)
2300 2308
             SERIAL_ECHOLNPGM("Short to VCC");
2309
+        #elif HAS_MAX31865
2310
+          if (fault_31865) {
2311
+            maxref.clearFault();
2312
+            SERIAL_ECHOPAIR("MAX31865 Fault :(", fault_31865, ")  >>");
2313
+            if (fault_31865 & MAX31865_FAULT_HIGHTHRESH)
2314
+              SERIAL_ECHOLNPGM("RTD High Threshold");
2315
+            else if (fault_31865 & MAX31865_FAULT_LOWTHRESH)
2316
+              SERIAL_ECHOLNPGM("RTD Low Threshold");
2317
+            else if (fault_31865 & MAX31865_FAULT_REFINLOW)
2318
+              SERIAL_ECHOLNPGM("REFIN- > 0.85 x Bias");
2319
+            else if (fault_31865 & MAX31865_FAULT_REFINHIGH)
2320
+              SERIAL_ECHOLNPGM("REFIN- < 0.85 x Bias - FORCE- open");
2321
+            else if (fault_31865 & MAX31865_FAULT_RTDINLOW)
2322
+              SERIAL_ECHOLNPGM("REFIN- < 0.85 x Bias - FORCE- open");
2323
+            else if (fault_31865 & MAX31865_FAULT_OVUV)
2324
+              SERIAL_ECHOLNPGM("Under/Over voltage");
2325
+          }
2301 2326
         #else
2302 2327
           SERIAL_ECHOLNPGM("MAX6675");
2303 2328
         #endif
2304 2329
 
2305 2330
         // Thermocouple open
2306
-        max6675_temp = 4 * (
2307
-          #if COUNT_6675 > 1
2308
-            hindex ? HEATER_1_MAX6675_TMAX : HEATER_0_MAX6675_TMAX
2309
-          #else
2310
-            TERN(HEATER_1_USES_MAX6675, HEATER_1_MAX6675_TMAX, HEATER_0_MAX6675_TMAX)
2311
-          #endif
2312
-        );
2331
+        max6675_temp = 4 * MAX6675_SEL(HEATER_0_MAX6675_TMAX, HEATER_1_MAX6675_TMAX);
2313 2332
       }
2314 2333
       else
2315 2334
         max6675_temp >>= MAX6675_DISCARD_BITS;
@@ -2319,13 +2338,11 @@ void Temperature::disable_all_heaters() {
2319 2338
       max6675_errors[hindex] = 0;
2320 2339
     }
2321 2340
 
2322
-    #if ENABLED(MAX6675_IS_MAX31855)
2341
+    #if MAX6675_0_IS_MAX31855 || MAX6675_1_IS_MAX31855
2323 2342
       if (max6675_temp & 0x00002000) max6675_temp |= 0xFFFFC000; // Support negative temperature
2324 2343
     #endif
2325 2344
 
2326
-    #if COUNT_6675 > 1
2327
-      max6675_temp_previous[hindex] = max6675_temp;
2328
-    #endif
2345
+    MAX6675_TEMP(hindex) = max6675_temp;
2329 2346
 
2330 2347
     return int(max6675_temp);
2331 2348
   }

+ 1
- 1
Marlin/src/module/temperature.h Wyświetl plik

@@ -811,7 +811,7 @@ class Temperature {
811 811
     #if HAS_MAX6675
812 812
       #define COUNT_6675 1 + BOTH(HEATER_0_USES_MAX6675, HEATER_1_USES_MAX6675)
813 813
       #if COUNT_6675 > 1
814
-        #define HAS_MULTI_6675
814
+        #define HAS_MULTI_6675 1
815 815
         #define READ_MAX6675(N) read_max6675(N)
816 816
       #else
817 817
         #define READ_MAX6675(N) read_max6675()

+ 4
- 4
buildroot/share/PlatformIO/variants/archim/variant.h Wyświetl plik

@@ -55,10 +55,10 @@ extern "C"{
55 55
  *----------------------------------------------------------------------------*/
56 56
 
57 57
 // Number of pins defined in PinDescription array
58
-#define PINS_COUNT           (79U)
59
-#define NUM_DIGITAL_PINS     (66U)
60
-#define NUM_ANALOG_INPUTS    (12U)
61
-#define analogInputToDigitalPin(p)  ((p < 12U) ? (p) + 54U : -1)
58
+#define PINS_COUNT           79
59
+#define NUM_DIGITAL_PINS     66
60
+#define NUM_ANALOG_INPUTS    12
61
+#define analogInputToDigitalPin(p)  ((p < 12) ? (p) + 54 : -1)
62 62
 
63 63
 #define digitalPinToPort(P)        ( g_APinDescription[P].pPort )
64 64
 #define digitalPinToBitMask(P)     ( g_APinDescription[P].ulPin )

+ 1
- 1
platformio.ini Wyświetl plik

@@ -222,7 +222,7 @@ HAS_L64XX               = Arduino-L6470@0.8.0
222 222
                           src_filter=+<src/libs/L64XX> +<src/module/stepper/L64xx.cpp> +<src/gcode/feature/L6470>
223 223
 NEOPIXEL_LED            = Adafruit NeoPixel@1.5.0
224 224
                           src_filter=+<src/feature/leds/neopixel.cpp>
225
-MAX6675_IS_MAX31865     = Adafruit MAX31865 library@~1.1.0
225
+MAX6675_._IS_MAX31865   = Adafruit MAX31865 library@~1.1.0
226 226
 USES_LIQUIDCRYSTAL      = LiquidCrystal@1.5.0
227 227
 USES_LIQUIDCRYSTAL_I2C  = marcoschwartz/LiquidCrystal_I2C@1.1.4
228 228
 USES_LIQUIDTWI2         = LiquidTWI2@1.2.7

Ładowanie…
Anuluj
Zapisz