Browse Source

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

AnHardt 6 years ago
parent
commit
74bbb13008
1 changed files with 10 additions and 3 deletions
  1. 10
    3
      Marlin/src/feature/mixing.h

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

27
   #define MIXER_ACCU_SIGNED
27
   #define MIXER_ACCU_SIGNED
28
   typedef uint8_t mixer_color_t;
28
   typedef uint8_t mixer_color_t;
29
   typedef int8_t mixer_accu_t;
29
   typedef int8_t mixer_accu_t;
30
+  #define COLOR_A_MASK 0x80
31
+  #define COLOR_MASK 0x7F
30
 #else
32
 #else
31
   typedef uint_fast16_t mixer_color_t;
33
   typedef uint_fast16_t mixer_color_t;
32
   typedef uint_fast16_t mixer_accu_t;
34
   typedef uint_fast16_t mixer_accu_t;
35
+  #define COLOR_A_MASK 0x8000
36
+  #define COLOR_MASK 0x7FFF
33
 #endif
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
 #ifndef MIXING_VIRTUAL_TOOLS
39
 #ifndef MIXING_VIRTUAL_TOOLS
39
   #define MIXING_VIRTUAL_TOOLS 1
40
   #define MIXING_VIRTUAL_TOOLS 1
40
 #endif
41
 #endif
42
 #ifdef RETRACT_SYNC_MIXING
43
 #ifdef RETRACT_SYNC_MIXING
43
   #define NR_MIXING_VIRTUAL_TOOLS (MIXING_VIRTUAL_TOOLS + 1)
44
   #define NR_MIXING_VIRTUAL_TOOLS (MIXING_VIRTUAL_TOOLS + 1)
44
   #define MIXER_AUTORETRACT_TOOL MIXING_VIRTUAL_TOOLS
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
 #else
49
 #else
46
   #define NR_MIXING_VIRTUAL_TOOLS (MIXING_VIRTUAL_TOOLS)
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
 #endif
54
 #endif
48
 
55
 
49
 #define MIXER_STEPPER_LOOP(VAR) \
56
 #define MIXER_STEPPER_LOOP(VAR) \

Loading…
Cancel
Save