Sfoglia il codice sorgente

Fix Mixer calculations for 32-bit processors (#12293)

AnHardt 6 anni fa
parent
commit
74bbb13008
1 ha cambiato i file con 10 aggiunte e 3 eliminazioni
  1. 10
    3
      Marlin/src/feature/mixing.h

+ 10
- 3
Marlin/src/feature/mixing.h Vedi File

@@ -27,14 +27,15 @@
27 27
   #define MIXER_ACCU_SIGNED
28 28
   typedef uint8_t mixer_color_t;
29 29
   typedef int8_t mixer_accu_t;
30
+  #define COLOR_A_MASK 0x80
31
+  #define COLOR_MASK 0x7F
30 32
 #else
31 33
   typedef uint_fast16_t mixer_color_t;
32 34
   typedef uint_fast16_t mixer_accu_t;
35
+  #define COLOR_A_MASK 0x8000
36
+  #define COLOR_MASK 0x7FFF
33 37
 #endif
34 38
 
35
-#define COLOR_A_MASK _BV(sizeof(mixer_color_t) * 8 - 1) // 0x80 or 0x8000
36
-#define COLOR_MASK (COLOR_A_MASK - 1)                   // 0x7F or 0x7FFF
37
-
38 39
 #ifndef MIXING_VIRTUAL_TOOLS
39 40
   #define MIXING_VIRTUAL_TOOLS 1
40 41
 #endif
@@ -42,8 +43,14 @@
42 43
 #ifdef RETRACT_SYNC_MIXING
43 44
   #define NR_MIXING_VIRTUAL_TOOLS (MIXING_VIRTUAL_TOOLS + 1)
44 45
   #define MIXER_AUTORETRACT_TOOL MIXING_VIRTUAL_TOOLS
46
+  #if NR_MIXING_VIRTUAL_TOOLS > 255
47
+    #error("MIXING_VIRTUAL_TOOLS must be <= 254!");
48
+  #endif
45 49
 #else
46 50
   #define NR_MIXING_VIRTUAL_TOOLS (MIXING_VIRTUAL_TOOLS)
51
+  #if NR_MIXING_VIRTUAL_TOOLS > 255
52
+    #error("MIXING_VIRTUAL_TOOLS must be <= 255!");
53
+  #endif
47 54
 #endif
48 55
 
49 56
 #define MIXER_STEPPER_LOOP(VAR) \

Loading…
Annulla
Salva