瀏覽代碼

Merge pull request #9974 from thinkyhead/bf2_tmc_util_progmem

[2.0.x] Move tmc_util.* extended_axis_codes to PROGMEM
Scott Lahteine 7 年之前
父節點
當前提交
920d92aa46
No account linked to committer's email address

+ 2
- 2
Marlin/src/HAL/HAL_DUE/usb/genclk.h 查看文件

@@ -73,7 +73,7 @@ extern "C" {
73 73
 //! \name Programmable Clock Sources (PCK)
74 74
 //@{
75 75
 
76
-enum genclk_source {
76
+enum genclk_source : char {
77 77
 	GENCLK_PCK_SRC_SLCK_RC       = 0, //!< Internal 32kHz RC oscillator as PCK source clock
78 78
 	GENCLK_PCK_SRC_SLCK_XTAL     = 1, //!< External 32kHz crystal oscillator as PCK source clock
79 79
 	GENCLK_PCK_SRC_SLCK_BYPASS   = 2, //!< External 32kHz bypass oscillator as PCK source clock
@@ -92,7 +92,7 @@ enum genclk_source {
92 92
 //! \name Programmable Clock Prescalers (PCK)
93 93
 //@{
94 94
 
95
-enum genclk_divider {
95
+enum genclk_divider : char {
96 96
 	GENCLK_PCK_PRES_1  = PMC_PCK_PRES_CLK_1, //!< Set PCK clock prescaler to 1
97 97
 	GENCLK_PCK_PRES_2  = PMC_PCK_PRES_CLK_2, //!< Set PCK clock prescaler to 2
98 98
 	GENCLK_PCK_PRES_4  = PMC_PCK_PRES_CLK_4, //!< Set PCK clock prescaler to 4

+ 1
- 1
Marlin/src/HAL/HAL_DUE/usb/pll.h 查看文件

@@ -76,7 +76,7 @@ extern "C" {
76 76
 
77 77
 #define PLL_COUNT           0x3fU
78 78
 
79
-enum pll_source {
79
+enum pll_source : char {
80 80
 	PLL_SRC_MAINCK_4M_RC        = OSC_MAINCK_4M_RC,     //!< Internal 4MHz RC oscillator.
81 81
 	PLL_SRC_MAINCK_8M_RC        = OSC_MAINCK_8M_RC,     //!< Internal 8MHz RC oscillator.
82 82
 	PLL_SRC_MAINCK_12M_RC       = OSC_MAINCK_12M_RC,    //!< Internal 12MHz RC oscillator.

+ 1
- 1
Marlin/src/HAL/HAL_DUE/usb/sbc_protocol.h 查看文件

@@ -80,7 +80,7 @@
80 80
 //! \name SBC-2 Mode page definitions
81 81
 //@{
82 82
 
83
-enum scsi_sbc_mode {
83
+enum scsi_sbc_mode : char {
84 84
 	SCSI_MS_MODE_RW_ERR_RECOV = 0x01,	//!< Read-Write Error Recovery mode page
85 85
 	SCSI_MS_MODE_FORMAT_DEVICE = 0x03,	//!< Format Device mode page
86 86
 	SCSI_MS_MODE_FLEXIBLE_DISK = 0x05,	//!< Flexible Disk mode page

+ 5
- 5
Marlin/src/HAL/HAL_DUE/usb/spc_protocol.h 查看文件

@@ -184,7 +184,7 @@ struct scsi_request_sense_data {
184 184
 COMPILER_PACK_RESET()
185 185
 
186 186
 /* Vital Product Data page codes */
187
-enum scsi_vpd_page_code {
187
+enum scsi_vpd_page_code : char {
188 188
 	SCSI_VPD_SUPPORTED_PAGES = 0x00,
189 189
 	SCSI_VPD_UNIT_SERIAL_NUMBER = 0x80,
190 190
 	SCSI_VPD_DEVICE_IDENTIFICATION = 0x83,
@@ -202,7 +202,7 @@ enum scsi_vpd_page_code {
202 202
 
203 203
 
204 204
 /* Sense keys */
205
-enum scsi_sense_key {
205
+enum scsi_sense_key : char {
206 206
 	SCSI_SK_NO_SENSE = 0x0,
207 207
 	SCSI_SK_RECOVERED_ERROR = 0x1,
208 208
 	SCSI_SK_NOT_READY = 0x2,
@@ -220,7 +220,7 @@ enum scsi_sense_key {
220 220
 };
221 221
 
222 222
 /* Additional Sense Code / Additional Sense Code Qualifier pairs */
223
-enum scsi_asc_ascq {
223
+enum scsi_asc_ascq : char {
224 224
 	SCSI_ASC_NO_ADDITIONAL_SENSE_INFO = 0x0000,
225 225
 	SCSI_ASC_LU_NOT_READY_REBUILD_IN_PROGRESS = 0x0405,
226 226
 	SCSI_ASC_WRITE_ERROR = 0x0c00,
@@ -239,7 +239,7 @@ enum scsi_asc_ascq {
239 239
  * used with MODE SELECT and MODE SENSE commands
240 240
  * that are applicable to all SCSI devices.
241 241
  */
242
-enum scsi_spc_mode {
242
+enum scsi_spc_mode : char {
243 243
 	SCSI_MS_MODE_VENDOR_SPEC = 0x00,
244 244
 	SCSI_MS_MODE_INFEXP = 0x1C,    // Informational exceptions control page
245 245
 	SCSI_MS_MODE_ALL = 0x3f,
@@ -273,7 +273,7 @@ struct spc_control_page_info_execpt {
273 273
 };
274 274
 
275 275
 
276
-enum scsi_spc_mode_sense_pc {
276
+enum scsi_spc_mode_sense_pc : char {
277 277
 	SCSI_MS_SENSE_PC_CURRENT = 0,
278 278
 	SCSI_MS_SENSE_PC_CHANGEABLE = 1,
279 279
 	SCSI_MS_SENSE_PC_DEFAULT = 2,

+ 13
- 13
Marlin/src/HAL/HAL_DUE/usb/usb_protocol.h 查看文件

@@ -107,7 +107,7 @@
107 107
 /**
108 108
  * \brief Standard USB requests (bRequest)
109 109
  */
110
-enum usb_reqid {
110
+enum usb_reqid : char {
111 111
 	USB_REQ_GET_STATUS = 0,
112 112
 	USB_REQ_CLEAR_FEATURE = 1,
113 113
 	USB_REQ_SET_FEATURE = 3,
@@ -125,7 +125,7 @@ enum usb_reqid {
125 125
  * \brief Standard USB device status flags
126 126
  *
127 127
  */
128
-enum usb_device_status {
128
+enum usb_device_status : char {
129 129
 	USB_DEV_STATUS_BUS_POWERED = 0,
130 130
 	USB_DEV_STATUS_SELF_POWERED = 1,
131 131
 	USB_DEV_STATUS_REMOTEWAKEUP = 2
@@ -135,7 +135,7 @@ enum usb_device_status {
135 135
  * \brief Standard USB Interface status flags
136 136
  *
137 137
  */
138
-enum usb_interface_status {
138
+enum usb_interface_status : char {
139 139
 	USB_IFACE_STATUS_RESERVED = 0
140 140
 };
141 141
 
@@ -143,7 +143,7 @@ enum usb_interface_status {
143 143
  * \brief Standard USB endpoint status flags
144 144
  *
145 145
  */
146
-enum usb_endpoint_status {
146
+enum usb_endpoint_status : char {
147 147
 	USB_EP_STATUS_HALTED = 1,
148 148
 };
149 149
 
@@ -152,7 +152,7 @@ enum usb_endpoint_status {
152 152
  *
153 153
  * \note valid for SetFeature request.
154 154
  */
155
-enum usb_device_feature {
155
+enum usb_device_feature : char {
156 156
 	USB_DEV_FEATURE_REMOTE_WAKEUP = 1, //!< Remote wakeup enabled
157 157
 	USB_DEV_FEATURE_TEST_MODE = 2,     //!< USB test mode
158 158
 	USB_DEV_FEATURE_OTG_B_HNP_ENABLE = 3,
@@ -165,7 +165,7 @@ enum usb_device_feature {
165 165
  *
166 166
  * \note valid for USB_DEV_FEATURE_TEST_MODE request.
167 167
  */
168
-enum usb_device_hs_test_mode {
168
+enum usb_device_hs_test_mode : char {
169 169
 	USB_DEV_TEST_MODE_J = 1,
170 170
 	USB_DEV_TEST_MODE_K = 2,
171 171
 	USB_DEV_TEST_MODE_SE0_NAK = 3,
@@ -176,14 +176,14 @@ enum usb_device_hs_test_mode {
176 176
 /**
177 177
  * \brief Standard USB endpoint feature/status flags
178 178
  */
179
-enum usb_endpoint_feature {
179
+enum usb_endpoint_feature : char {
180 180
 	USB_EP_FEATURE_HALT = 0,
181 181
 };
182 182
 
183 183
 /**
184 184
  * \brief Standard USB Test Mode Selectors
185 185
  */
186
-enum usb_test_mode_selector {
186
+enum usb_test_mode_selector : char {
187 187
 	USB_TEST_J = 0x01,
188 188
 	USB_TEST_K = 0x02,
189 189
 	USB_TEST_SE0_NAK = 0x03,
@@ -194,7 +194,7 @@ enum usb_test_mode_selector {
194 194
 /**
195 195
  * \brief Standard USB descriptor types
196 196
  */
197
-enum usb_descriptor_type {
197
+enum usb_descriptor_type : char {
198 198
 	USB_DT_DEVICE = 1,
199 199
 	USB_DT_CONFIGURATION = 2,
200 200
 	USB_DT_STRING = 3,
@@ -212,7 +212,7 @@ enum usb_descriptor_type {
212 212
 /**
213 213
  * \brief USB Device Capability types
214 214
  */
215
-enum usb_capability_type {
215
+enum usb_capability_type : char {
216 216
 	USB_DC_USB20_EXTENSION = 0x02,
217 217
 };
218 218
 
@@ -220,7 +220,7 @@ enum usb_capability_type {
220 220
  * \brief USB Device Capability - USB 2.0 Extension
221 221
  * To fill bmAttributes field of usb_capa_ext_desc_t structure.
222 222
  */
223
-enum usb_capability_extension_attr {
223
+enum usb_capability_extension_attr : char {
224 224
 	USB_DC_EXT_LPM  = 0x00000002,
225 225
 };
226 226
 
@@ -253,7 +253,7 @@ enum usb_capability_extension_attr {
253 253
 /**
254 254
  * \brief Standard USB endpoint transfer types
255 255
  */
256
-enum usb_ep_type {
256
+enum usb_ep_type : char {
257 257
 	USB_EP_TYPE_CONTROL = 0x00,
258 258
 	USB_EP_TYPE_ISOCHRONOUS = 0x01,
259 259
 	USB_EP_TYPE_BULK = 0x02,
@@ -264,7 +264,7 @@ enum usb_ep_type {
264 264
 /**
265 265
  * \brief Standard USB language IDs for string descriptors
266 266
  */
267
-enum usb_langid {
267
+enum usb_langid : char {
268 268
 	USB_LANGID_EN_US = 0x0409, //!< English (United States)
269 269
 };
270 270
 

+ 2
- 2
Marlin/src/HAL/HAL_DUE/usb/usb_protocol_cdc.h 查看文件

@@ -239,13 +239,13 @@ typedef struct {
239 239
 	uint8_t bDataBits;
240 240
 } usb_cdc_line_coding_t;
241 241
 //! Possible values of bCharFormat
242
-enum cdc_char_format {
242
+enum cdc_char_format : char {
243 243
 	CDC_STOP_BITS_1 = 0,	//!< 1 stop bit
244 244
 	CDC_STOP_BITS_1_5 = 1,	//!< 1.5 stop bits
245 245
 	CDC_STOP_BITS_2 = 2,	//!< 2 stop bits
246 246
 };
247 247
 //! Possible values of bParityType
248
-enum cdc_parity {
248
+enum cdc_parity : char {
249 249
 	CDC_PAR_NONE = 0,	//!< No parity
250 250
 	CDC_PAR_ODD = 1,	//!< Odd parity
251 251
 	CDC_PAR_EVEN = 2,	//!< Even parity

+ 2
- 2
Marlin/src/HAL/HAL_DUE/usb/usb_protocol_msc.h 查看文件

@@ -93,9 +93,9 @@
93 93
 /**
94 94
  * \brief MSC USB requests (bRequest)
95 95
  */
96
-enum usb_reqid_msc {
96
+enum usb_reqid_msc : unsigned char {
97 97
 	USB_REQ_MSC_BULK_RESET = 0xFF,	//!< Mass Storage Reset
98
-	USB_REQ_MSC_GET_MAX_LUN = 0xFE,	//!< Get Max LUN
98
+	USB_REQ_MSC_GET_MAX_LUN = 0xFE 	//!< Get Max LUN
99 99
 };
100 100
 
101 101
 

+ 1
- 1
Marlin/src/HAL/HAL_STM32F1/HAL_Stm32f1.cpp 查看文件

@@ -87,7 +87,7 @@ uint8 adc_pins[] = {
87 87
   #endif
88 88
 };
89 89
 
90
-enum TEMP_PINS {
90
+enum TEMP_PINS : char {
91 91
   #if HAS_TEMP_0
92 92
     TEMP_0,
93 93
   #endif

+ 5
- 5
Marlin/src/core/enum.h 查看文件

@@ -31,8 +31,7 @@
31 31
  *  - X_HEAD and Y_HEAD is used for systems that don't have a 1:1 relationship
32 32
  *    between X_AXIS and X Head movement, like CoreXY bots
33 33
  */
34
-enum AxisEnum {
35
-  NO_AXIS   = -1,
34
+enum AxisEnum : unsigned char {
36 35
   X_AXIS    = 0,
37 36
   A_AXIS    = 0,
38 37
   Y_AXIS    = 1,
@@ -43,7 +42,8 @@ enum AxisEnum {
43 42
   X_HEAD    = 4,
44 43
   Y_HEAD    = 5,
45 44
   Z_HEAD    = 6,
46
-  ALL_AXES  = 100
45
+  ALL_AXES  = 0xFE,
46
+  NO_AXIS   = 0xFF
47 47
 };
48 48
 
49 49
 #define LOOP_S_LE_N(VAR, S, N) for (uint8_t VAR=S; VAR<=N; VAR++)
@@ -73,12 +73,12 @@ typedef enum {
73 73
 /**
74 74
  * SD Card
75 75
  */
76
-enum LsAction { LS_SerialPrint, LS_Count, LS_GetFilename };
76
+enum LsAction : char { LS_SerialPrint, LS_Count, LS_GetFilename };
77 77
 
78 78
 /**
79 79
  * Ultra LCD
80 80
  */
81
-enum LCDViewAction {
81
+enum LCDViewAction : char {
82 82
   LCDVIEW_NONE,
83 83
   LCDVIEW_REDRAW_NOW,
84 84
   LCDVIEW_CALL_REDRAW_NEXT,

+ 2
- 2
Marlin/src/core/serial.h 查看文件

@@ -32,7 +32,7 @@
32 32
 /**
33 33
  * Define debug bit-masks
34 34
  */
35
-enum DebugFlags {
35
+enum DebugFlags : unsigned char {
36 36
   DEBUG_NONE          = 0,
37 37
   DEBUG_ECHO          = _BV(0), ///< Echo commands in order as they are processed
38 38
   DEBUG_INFO          = _BV(1), ///< Print messages for code that has debug output
@@ -45,7 +45,7 @@ enum DebugFlags {
45 45
 };
46 46
 
47 47
 #if ENABLED(EMERGENCY_PARSER)
48
-  enum e_parser_state {
48
+  enum e_parser_state : char {
49 49
     state_RESET,
50 50
     state_N,
51 51
     state_M,

+ 1
- 1
Marlin/src/feature/bedlevel/mbl/mesh_bed_leveling.h 查看文件

@@ -25,7 +25,7 @@
25 25
 
26 26
 #include "../../../inc/MarlinConfig.h"
27 27
 
28
-enum MeshLevelingState {
28
+enum MeshLevelingState : char {
29 29
   MeshReport,
30 30
   MeshStart,
31 31
   MeshNext,

+ 1
- 1
Marlin/src/feature/bedlevel/ubl/ubl.h 查看文件

@@ -47,7 +47,7 @@
47 47
 
48 48
 // ubl_G29.cpp
49 49
 
50
-enum MeshPointType { INVALID, REAL, SET_IN_BITMAP };
50
+enum MeshPointType : char { INVALID, REAL, SET_IN_BITMAP };
51 51
 
52 52
 // External references
53 53
 

+ 3
- 3
Marlin/src/feature/pause.h 查看文件

@@ -32,13 +32,13 @@
32 32
 
33 33
 #include "../inc/MarlinConfigPre.h"
34 34
 
35
-enum AdvancedPauseMode {
35
+enum AdvancedPauseMode : char {
36 36
   ADVANCED_PAUSE_MODE_PAUSE_PRINT,
37 37
   ADVANCED_PAUSE_MODE_LOAD_FILAMENT,
38 38
   ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT
39 39
 };
40 40
 
41
-enum AdvancedPauseMessage {
41
+enum AdvancedPauseMessage : char {
42 42
   ADVANCED_PAUSE_MESSAGE_INIT,
43 43
   ADVANCED_PAUSE_MESSAGE_UNLOAD,
44 44
   ADVANCED_PAUSE_MESSAGE_INSERT,
@@ -51,7 +51,7 @@ enum AdvancedPauseMessage {
51 51
   ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT
52 52
 };
53 53
 
54
-enum AdvancedPauseMenuResponse {
54
+enum AdvancedPauseMenuResponse : char {
55 55
   ADVANCED_PAUSE_RESPONSE_WAIT_FOR,
56 56
   ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE,
57 57
   ADVANCED_PAUSE_RESPONSE_RESUME_PRINT

+ 50
- 41
Marlin/src/feature/tmc_util.cpp 查看文件

@@ -37,7 +37,6 @@
37 37
 #endif
38 38
 
39 39
 bool report_tmc_status = false;
40
-char extended_axis_codes[11][3] = { "X", "X2", "Y", "Y2", "Z", "Z2", "E0", "E1", "E2", "E3", "E4" };
41 40
 
42 41
 /**
43 42
  * Check for over temperature or short to ground error flags.
@@ -96,18 +95,17 @@ char extended_axis_codes[11][3] = { "X", "X2", "Y", "Y2", "Z", "Z2", "E0", "E1",
96 95
   #endif
97 96
 
98 97
   template<typename TMC>
99
-  void monitor_tmc_driver(TMC &st, const char * const axisName, uint8_t &otpw_cnt) {
98
+  void monitor_tmc_driver(TMC &st, const TMC_AxisEnum axis, uint8_t &otpw_cnt) {
100 99
     TMC_driver_data data = get_driver_data(st);
101 100
 
102 101
     #if ENABLED(STOP_ON_ERROR)
103 102
       if (data.is_error) {
104 103
         SERIAL_EOL();
105
-        SERIAL_ECHO(axisName);
106
-        SERIAL_ECHOPGM(" driver error detected:");
107
-        if (data.is_ot) SERIAL_ECHOPGM("\novertemperature");
108
-        if (st.s2ga()) SERIAL_ECHOPGM("\nshort to ground (coil A)");
109
-        if (st.s2gb()) SERIAL_ECHOPGM("\nshort to ground (coil B)");
110
-        SERIAL_EOL();
104
+        _tmc_say_axis(axis);
105
+        SERIAL_ECHOLNPGM(" driver error detected:");
106
+        if (data.is_ot) SERIAL_ECHOLNPGM("overtemperature");
107
+        if (st.s2ga()) SERIAL_ECHOLNPGM("short to ground (coil A)");
108
+        if (st.s2gb()) SERIAL_ECHOLNPGM("short to ground (coil B)");
111 109
         #if ENABLED(TMC_DEBUG)
112 110
           tmc_report_all();
113 111
         #endif
@@ -124,7 +122,7 @@ char extended_axis_codes[11][3] = { "X", "X2", "Y", "Y2", "Z", "Z2", "E0", "E1",
124 122
       SERIAL_EOL();
125 123
       SERIAL_ECHO(timestamp);
126 124
       SERIAL_ECHOPGM(": ");
127
-      SERIAL_ECHO(axisName);
125
+      _tmc_say_axis(axis);
128 126
       SERIAL_ECHOPGM(" driver overtemperature warning! (");
129 127
       SERIAL_ECHO(st.getCurrent());
130 128
       SERIAL_ECHOLNPGM("mA)");
@@ -134,7 +132,7 @@ char extended_axis_codes[11][3] = { "X", "X2", "Y", "Y2", "Z", "Z2", "E0", "E1",
134 132
       if (data.is_otpw && !st.isEnabled() && otpw_cnt > 4) {
135 133
         st.setCurrent(st.getCurrent() - CURRENT_STEP_DOWN, R_SENSE, HOLD_MULTIPLIER);
136 134
         #if ENABLED(REPORT_CURRENT_CHANGE)
137
-          SERIAL_ECHO(axisName);
135
+          _tmc_say_axis(axis);
138 136
           SERIAL_ECHOLNPAIR(" current decreased to ", st.getCurrent());
139 137
         #endif
140 138
       }
@@ -148,7 +146,7 @@ char extended_axis_codes[11][3] = { "X", "X2", "Y", "Y2", "Z", "Z2", "E0", "E1",
148 146
 
149 147
     if (report_tmc_status) {
150 148
       const uint32_t pwm_scale = get_pwm_scale(st);
151
-      SERIAL_ECHO(axisName);
149
+      _tmc_say_axis(axis);
152 150
       SERIAL_ECHOPAIR(":", pwm_scale);
153 151
       SERIAL_ECHOPGM(" |0b"); SERIAL_PRINT(get_status_response(st), BIN);
154 152
       SERIAL_ECHOPGM("| ");
@@ -169,47 +167,47 @@ char extended_axis_codes[11][3] = { "X", "X2", "Y", "Y2", "Z", "Z2", "E0", "E1",
169 167
       next_cOT = millis() + 500;
170 168
       #if HAS_HW_COMMS(X) || ENABLED(IS_TRAMS)
171 169
         static uint8_t x_otpw_cnt = 0;
172
-        monitor_tmc_driver(stepperX, extended_axis_codes[TMC_X], x_otpw_cnt);
170
+        monitor_tmc_driver(stepperX, TMC_X, x_otpw_cnt);
173 171
       #endif
174 172
       #if HAS_HW_COMMS(Y) || ENABLED(IS_TRAMS)
175 173
         static uint8_t y_otpw_cnt = 0;
176
-        monitor_tmc_driver(stepperY, extended_axis_codes[TMC_Y], y_otpw_cnt);
174
+        monitor_tmc_driver(stepperY, TMC_Y, y_otpw_cnt);
177 175
       #endif
178 176
       #if HAS_HW_COMMS(Z) || ENABLED(IS_TRAMS)
179 177
         static uint8_t z_otpw_cnt = 0;
180
-        monitor_tmc_driver(stepperZ, extended_axis_codes[TMC_Z], z_otpw_cnt);
178
+        monitor_tmc_driver(stepperZ, TMC_Z, z_otpw_cnt);
181 179
       #endif
182 180
       #if HAS_HW_COMMS(X2)
183 181
         static uint8_t x2_otpw_cnt = 0;
184
-        monitor_tmc_driver(stepperX2, extended_axis_codes[TMC_X], x2_otpw_cnt);
182
+        monitor_tmc_driver(stepperX2, TMC_X, x2_otpw_cnt);
185 183
       #endif
186 184
       #if HAS_HW_COMMS(Y2)
187 185
         static uint8_t y2_otpw_cnt = 0;
188
-        monitor_tmc_driver(stepperY2, extended_axis_codes[TMC_Y], y2_otpw_cnt);
186
+        monitor_tmc_driver(stepperY2, TMC_Y, y2_otpw_cnt);
189 187
       #endif
190 188
       #if HAS_HW_COMMS(Z2)
191 189
         static uint8_t z2_otpw_cnt = 0;
192
-        monitor_tmc_driver(stepperZ2, extended_axis_codes[TMC_Z], z2_otpw_cnt);
190
+        monitor_tmc_driver(stepperZ2, TMC_Z, z2_otpw_cnt);
193 191
       #endif
194 192
       #if HAS_HW_COMMS(E0) || ENABLED(IS_TRAMS)
195 193
         static uint8_t e0_otpw_cnt = 0;
196
-        monitor_tmc_driver(stepperE0, extended_axis_codes[TMC_E0], e0_otpw_cnt);
194
+        monitor_tmc_driver(stepperE0, TMC_E0, e0_otpw_cnt);
197 195
       #endif
198 196
       #if HAS_HW_COMMS(E1)
199 197
         static uint8_t e1_otpw_cnt = 0;
200
-        monitor_tmc_driver(stepperE1, extended_axis_codes[TMC_E1], e1_otpw_cnt);
198
+        monitor_tmc_driver(stepperE1, TMC_E1, e1_otpw_cnt);
201 199
       #endif
202 200
       #if HAS_HW_COMMS(E2)
203 201
         static uint8_t e2_otpw_cnt = 0;
204
-        monitor_tmc_driver(stepperE2, extended_axis_codes[TMC_E2], e2_otpw_cnt);
202
+        monitor_tmc_driver(stepperE2, TMC_E2, e2_otpw_cnt);
205 203
       #endif
206 204
       #if HAS_HW_COMMS(E3)
207 205
         static uint8_t e3_otpw_cnt = 0;
208
-        monitor_tmc_driver(stepperE3, extended_axis_codes[TMC_E3], e3_otpw_cnt);
206
+        monitor_tmc_driver(stepperE3, TMC_E3, e3_otpw_cnt);
209 207
       #endif
210 208
       #if HAS_HW_COMMS(E4)
211 209
         static uint8_t e4_otpw_cnt = 0;
212
-        monitor_tmc_driver(stepperE4, extended_axis_codes[TMC_E4], e4_otpw_cnt);
210
+        monitor_tmc_driver(stepperE4, TMC_E4, e4_otpw_cnt);
213 211
       #endif
214 212
 
215 213
       if (report_tmc_status) SERIAL_EOL();
@@ -218,33 +216,44 @@ char extended_axis_codes[11][3] = { "X", "X2", "Y", "Y2", "Z", "Z2", "E0", "E1",
218 216
 
219 217
 #endif // MONITOR_DRIVER_STATUS
220 218
 
221
-void _tmc_say_current(const char name[], const uint16_t curr) {
222
-  SERIAL_ECHO(name);
219
+void _tmc_say_axis(const TMC_AxisEnum axis) {
220
+  const static char ext_X[]  PROGMEM = "X",  ext_X2[] PROGMEM = "X2",
221
+                    ext_Y[]  PROGMEM = "Y",  ext_Y2[] PROGMEM = "Y2",
222
+                    ext_Z[]  PROGMEM = "Z",  ext_Z2[] PROGMEM = "Z2",
223
+                    ext_E0[] PROGMEM = "E0", ext_E1[] PROGMEM = "E1",
224
+                    ext_E2[] PROGMEM = "E2", ext_E3[] PROGMEM = "E3",
225
+                    ext_E4[] PROGMEM = "E4";
226
+  const static char* const tmc_axes[] PROGMEM = { ext_X, ext_X2, ext_Y, ext_Y2, ext_Z, ext_Z2, ext_E0, ext_E1, ext_E2, ext_E3, ext_E4 };
227
+  serialprintPGM(tmc_axes[axis]);
228
+}
229
+
230
+void _tmc_say_current(const TMC_AxisEnum axis, const uint16_t curr) {
231
+  _tmc_say_axis(axis);
223 232
   SERIAL_ECHOLNPAIR(" axis driver current: ", curr);
224 233
 }
225
-void _tmc_say_otpw(const char name[], const bool otpw) {
226
-  SERIAL_ECHO(name);
234
+void _tmc_say_otpw(const TMC_AxisEnum axis, const bool otpw) {
235
+  _tmc_say_axis(axis);
227 236
   SERIAL_ECHOPGM(" axis temperature prewarn triggered: ");
228 237
   serialprintPGM(otpw ? PSTR("true") : PSTR("false"));
229 238
   SERIAL_EOL();
230 239
 }
231
-void _tmc_say_otpw_cleared(const char name[]) {
232
-  SERIAL_ECHO(name);
240
+void _tmc_say_otpw_cleared(const TMC_AxisEnum axis) {
241
+  _tmc_say_axis(axis);
233 242
   SERIAL_ECHOLNPGM(" prewarn flag cleared");
234 243
 }
235
-void _tmc_say_pwmthrs(const char name[], const uint32_t thrs) {
236
-  SERIAL_ECHO(name);
244
+void _tmc_say_pwmthrs(const TMC_AxisEnum axis, const uint32_t thrs) {
245
+  _tmc_say_axis(axis);
237 246
   SERIAL_ECHOLNPAIR(" stealthChop max speed set to ", thrs);
238 247
 }
239
-void _tmc_say_sgt(const char name[], const int8_t sgt) {
240
-  SERIAL_ECHO(name);
248
+void _tmc_say_sgt(const TMC_AxisEnum axis, const int8_t sgt) {
249
+  _tmc_say_axis(axis);
241 250
   SERIAL_ECHOPGM(" driver homing sensitivity set to ");
242 251
   SERIAL_PRINTLN(sgt, DEC);
243 252
 }
244 253
 
245 254
 #if ENABLED(TMC_DEBUG)
246 255
 
247
-  enum TMC_debug_enum {
256
+  enum TMC_debug_enum : char {
248 257
     TMC_CODES,
249 258
     TMC_ENABLED,
250 259
     TMC_CURRENT,
@@ -268,7 +277,7 @@ void _tmc_say_sgt(const char name[], const int8_t sgt) {
268 277
     TMC_HSTRT,
269 278
     TMC_SGT
270 279
   };
271
-  enum TMC_drv_status_enum {
280
+  enum TMC_drv_status_enum : char {
272 281
     TMC_DRV_CODES,
273 282
     TMC_STST,
274 283
     TMC_OLB,
@@ -290,8 +299,8 @@ void _tmc_say_sgt(const char name[], const int8_t sgt) {
290 299
     TMC_S2VSB,
291 300
     TMC_S2VSA
292 301
   };
293
-  static void drv_status_print_hex(const char name[], const uint32_t drv_status) {
294
-    SERIAL_ECHO(name);
302
+  static void drv_status_print_hex(const TMC_AxisEnum axis, const uint32_t drv_status) {
303
+    _tmc_say_axis(axis);
295 304
     SERIAL_ECHOPGM(" = 0x");
296 305
     for (int B = 24; B >= 8; B -= 8){
297 306
       SERIAL_PRINT((drv_status >> (B + 4)) & 0xF, HEX);
@@ -345,10 +354,10 @@ void _tmc_say_sgt(const char name[], const int8_t sgt) {
345 354
   #endif
346 355
 
347 356
   template <typename TMC>
348
-  static void tmc_status(TMC &st, TMC_AxisEnum axis, const TMC_debug_enum i, const float spmm) {
357
+  static void tmc_status(TMC &st, const TMC_AxisEnum axis, const TMC_debug_enum i, const float spmm) {
349 358
     SERIAL_ECHO('\t');
350 359
     switch(i) {
351
-      case TMC_CODES: SERIAL_ECHO(extended_axis_codes[axis]); break;
360
+      case TMC_CODES: _tmc_say_axis(axis); break;
352 361
       case TMC_ENABLED: serialprintPGM(st.isEnabled() ? PSTR("true") : PSTR("false")); break;
353 362
       case TMC_CURRENT: SERIAL_ECHO(st.getCurrent()); break;
354 363
       case TMC_RMS_CURRENT: SERIAL_PROTOCOL(st.rms_current()); break;
@@ -390,10 +399,10 @@ void _tmc_say_sgt(const char name[], const int8_t sgt) {
390 399
   }
391 400
 
392 401
   template <typename TMC>
393
-  static void tmc_parse_drv_status(TMC &st, TMC_AxisEnum axis, const TMC_drv_status_enum i) {
402
+  static void tmc_parse_drv_status(TMC &st, const TMC_AxisEnum axis, const TMC_drv_status_enum i) {
394 403
     SERIAL_CHAR('\t');
395 404
     switch(i) {
396
-      case TMC_DRV_CODES:     SERIAL_ECHO(extended_axis_codes[axis]);  break;
405
+      case TMC_DRV_CODES:     _tmc_say_axis(axis);  break;
397 406
       case TMC_STST:          if (st.stst())         SERIAL_CHAR('X'); break;
398 407
       case TMC_OLB:           if (st.olb())          SERIAL_CHAR('X'); break;
399 408
       case TMC_OLA:           if (st.ola())          SERIAL_CHAR('X'); break;
@@ -402,7 +411,7 @@ void _tmc_say_sgt(const char name[], const int8_t sgt) {
402 411
       case TMC_DRV_OTPW:      if (st.otpw())         SERIAL_CHAR('X'); break;
403 412
       case TMC_OT:            if (st.ot())           SERIAL_CHAR('X'); break;
404 413
       case TMC_DRV_CS_ACTUAL: SERIAL_PRINT(st.cs_actual(), DEC);       break;
405
-      case TMC_DRV_STATUS_HEX:drv_status_print_hex(extended_axis_codes[axis], st.DRV_STATUS()); break;
414
+      case TMC_DRV_STATUS_HEX:drv_status_print_hex(axis, st.DRV_STATUS()); break;
406 415
       default: tmc_parse_drv_status(st, i); break;
407 416
     }
408 417
   }

+ 23
- 26
Marlin/src/feature/tmc_util.h 查看文件

@@ -28,58 +28,55 @@
28 28
 #include "../inc/MarlinConfig.h"
29 29
 
30 30
 extern bool report_tmc_status;
31
-extern char extended_axis_codes[11][3];
32 31
 
33
-enum TMC_AxisEnum {
34
-  TMC_X, TMC_X2, TMC_Y, TMC_Y2, TMC_Z, TMC_Z2,
35
-  TMC_E0, TMC_E1, TMC_E2, TMC_E3, TMC_E4
36
-};
32
+enum TMC_AxisEnum : char { TMC_X, TMC_X2, TMC_Y, TMC_Y2, TMC_Z, TMC_Z2, TMC_E0, TMC_E1, TMC_E2, TMC_E3, TMC_E4 };
37 33
 
38 34
 constexpr uint32_t _tmc_thrs(const uint16_t msteps, const int32_t thrs, const uint32_t spmm) {
39 35
   return 12650000UL * msteps / (256 * thrs * spmm);
40 36
 }
41 37
 
42
-void _tmc_say_current(const char name[], const uint16_t curr);
43
-void _tmc_say_otpw(const char name[], const bool otpw);
44
-void _tmc_say_otpw_cleared(const char name[]);
45
-void _tmc_say_pwmthrs(const char name[], const uint32_t thrs);
46
-void _tmc_say_sgt(const char name[], const int8_t sgt);
38
+void _tmc_say_axis(const TMC_AxisEnum axis);
39
+void _tmc_say_current(const TMC_AxisEnum axis, const uint16_t curr);
40
+void _tmc_say_otpw(const TMC_AxisEnum axis, const bool otpw);
41
+void _tmc_say_otpw_cleared(const TMC_AxisEnum axis);
42
+void _tmc_say_pwmthrs(const TMC_AxisEnum axis, const uint32_t thrs);
43
+void _tmc_say_sgt(const TMC_AxisEnum axis, const int8_t sgt);
47 44
 
48 45
 template<typename TMC>
49
-void tmc_get_current(TMC &st, const char name[]) {
50
-  _tmc_say_current(name, st.getCurrent());
46
+void tmc_get_current(TMC &st, const TMC_AxisEnum axis) {
47
+  _tmc_say_current(axis, st.getCurrent());
51 48
 }
52 49
 template<typename TMC>
53
-void tmc_set_current(TMC &st, const char name[], const int mA) {
50
+void tmc_set_current(TMC &st, const TMC_AxisEnum axis, const int mA) {
54 51
   st.setCurrent(mA, R_SENSE, HOLD_MULTIPLIER);
55
-  tmc_get_current(st, name);
52
+  tmc_get_current(st, axis);
56 53
 }
57 54
 template<typename TMC>
58
-void tmc_report_otpw(TMC &st, const char name[]) {
59
-  _tmc_say_otpw(name, st.getOTPW());
55
+void tmc_report_otpw(TMC &st, const TMC_AxisEnum axis) {
56
+  _tmc_say_otpw(axis, st.getOTPW());
60 57
 }
61 58
 template<typename TMC>
62
-void tmc_clear_otpw(TMC &st, const char name[]) {
59
+void tmc_clear_otpw(TMC &st, const TMC_AxisEnum axis) {
63 60
   st.clear_otpw();
64
-  _tmc_say_otpw_cleared(name);
61
+  _tmc_say_otpw_cleared(axis);
65 62
 }
66 63
 template<typename TMC>
67
-void tmc_get_pwmthrs(TMC &st, const char name[], const uint16_t spmm) {
68
-  _tmc_say_pwmthrs(name, _tmc_thrs(st.microsteps(), st.TPWMTHRS(), spmm));
64
+void tmc_get_pwmthrs(TMC &st, const TMC_AxisEnum axis, const uint16_t spmm) {
65
+  _tmc_say_pwmthrs(axis, _tmc_thrs(st.microsteps(), st.TPWMTHRS(), spmm));
69 66
 }
70 67
 template<typename TMC>
71
-void tmc_set_pwmthrs(TMC &st, const char name[], const int32_t thrs, const uint32_t spmm) {
68
+void tmc_set_pwmthrs(TMC &st, const TMC_AxisEnum axis, const int32_t thrs, const uint32_t spmm) {
72 69
   st.TPWMTHRS(_tmc_thrs(st.microsteps(), thrs, spmm));
73
-  tmc_get_pwmthrs(st, name, spmm);
70
+  tmc_get_pwmthrs(st, axis, spmm);
74 71
 }
75 72
 template<typename TMC>
76
-void tmc_get_sgt(TMC &st, const char name[]) {
77
-  _tmc_say_sgt(name, st.sgt());
73
+void tmc_get_sgt(TMC &st, const TMC_AxisEnum axis) {
74
+  _tmc_say_sgt(axis, st.sgt());
78 75
 }
79 76
 template<typename TMC>
80
-void tmc_set_sgt(TMC &st, const char name[], const int8_t sgt_val) {
77
+void tmc_set_sgt(TMC &st, const TMC_AxisEnum axis, const int8_t sgt_val) {
81 78
   st.sgt(sgt_val);
82
-  tmc_get_sgt(st, name);
79
+  tmc_get_sgt(st, axis);
83 80
 }
84 81
 
85 82
 void monitor_tmc_driver();

+ 1
- 1
Marlin/src/gcode/calibrate/G33.cpp 查看文件

@@ -43,7 +43,7 @@
43 43
 constexpr uint8_t _7P_STEP = 1,              // 7-point step - to change number of calibration points
44 44
                   _4P_STEP = _7P_STEP * 2,   // 4-point step
45 45
                   NPP      = _7P_STEP * 6;   // number of calibration points on the radius
46
-enum CalEnum {                               // the 7 main calibration points - add definitions if needed
46
+enum CalEnum : char {                               // the 7 main calibration points - add definitions if needed
47 47
   CEN      = 0,
48 48
   __A      = 1,
49 49
   _AB      = __A + _7P_STEP,

+ 2
- 2
Marlin/src/gcode/feature/trinamic/M906.cpp 查看文件

@@ -37,8 +37,8 @@ void GcodeSuite::M906() {
37 37
   LOOP_XYZE(i) values[i] = parser.intval(axis_codes[i]);
38 38
 
39 39
   #define TMC_SET_GET_CURRENT(P,Q) do { \
40
-    if (values[P##_AXIS]) tmc_set_current(stepper##Q, extended_axis_codes[TMC_##Q], values[P##_AXIS]); \
41
-    else tmc_get_current(stepper##Q, extended_axis_codes[TMC_##Q]); } while(0)
40
+    if (values[P##_AXIS]) tmc_set_current(stepper##Q, TMC_##Q, values[P##_AXIS]); \
41
+    else tmc_get_current(stepper##Q, TMC_##Q); } while(0)
42 42
 
43 43
   #if X_IS_TRINAMIC
44 44
     TMC_SET_GET_CURRENT(X,X);

+ 13
- 13
Marlin/src/gcode/feature/trinamic/M911-M915.cpp 查看文件

@@ -36,16 +36,16 @@
36 36
  */
37 37
 void GcodeSuite::M911() {
38 38
   #if ENABLED(X_IS_TMC2130) || (ENABLED(X_IS_TMC2208) && PIN_EXISTS(X_SERIAL_RX)) || ENABLED(IS_TRAMS)
39
-    tmc_report_otpw(stepperX, extended_axis_codes[TMC_X]);
39
+    tmc_report_otpw(stepperX, TMC_X);
40 40
   #endif
41 41
   #if ENABLED(Y_IS_TMC2130) || (ENABLED(Y_IS_TMC2208) && PIN_EXISTS(Y_SERIAL_RX)) || ENABLED(IS_TRAMS)
42
-    tmc_report_otpw(stepperY, extended_axis_codes[TMC_Y]);
42
+    tmc_report_otpw(stepperY, TMC_Y);
43 43
   #endif
44 44
   #if ENABLED(Z_IS_TMC2130) || (ENABLED(Z_IS_TMC2208) && PIN_EXISTS(Z_SERIAL_RX)) || ENABLED(IS_TRAMS)
45
-    tmc_report_otpw(stepperZ, extended_axis_codes[TMC_Z]);
45
+    tmc_report_otpw(stepperZ, TMC_Z);
46 46
   #endif
47 47
   #if ENABLED(E0_IS_TMC2130) || (ENABLED(E0_IS_TMC2208) && PIN_EXISTS(E0_SERIAL_RX)) || ENABLED(IS_TRAMS)
48
-    tmc_report_otpw(stepperE0, extended_axis_codes[TMC_E0]);
48
+    tmc_report_otpw(stepperE0, TMC_E0);
49 49
   #endif
50 50
 }
51 51
 
@@ -56,22 +56,22 @@ void GcodeSuite::M912() {
56 56
   const bool clearX = parser.seen(axis_codes[X_AXIS]), clearY = parser.seen(axis_codes[Y_AXIS]), clearZ = parser.seen(axis_codes[Z_AXIS]), clearE = parser.seen(axis_codes[E_AXIS]),
57 57
            clearAll = (!clearX && !clearY && !clearZ && !clearE) || (clearX && clearY && clearZ && clearE);
58 58
   #if ENABLED(X_IS_TMC2130) || ENABLED(IS_TRAMS) || (ENABLED(X_IS_TMC2208) && PIN_EXISTS(X_SERIAL_RX))
59
-    if (clearX || clearAll) tmc_clear_otpw(stepperX, extended_axis_codes[TMC_X]);
59
+    if (clearX || clearAll) tmc_clear_otpw(stepperX, TMC_X);
60 60
   #endif
61 61
   #if ENABLED(X2_IS_TMC2130) || (ENABLED(X2_IS_TMC2208) && PIN_EXISTS(X_SERIAL_RX))
62
-    if (clearX || clearAll) tmc_clear_otpw(stepperX, extended_axis_codes[TMC_X]);
62
+    if (clearX || clearAll) tmc_clear_otpw(stepperX, TMC_X);
63 63
   #endif
64 64
 
65 65
   #if ENABLED(Y_IS_TMC2130) || (ENABLED(Y_IS_TMC2208) && PIN_EXISTS(Y_SERIAL_RX))
66
-    if (clearY || clearAll) tmc_clear_otpw(stepperY, extended_axis_codes[TMC_Y]);
66
+    if (clearY || clearAll) tmc_clear_otpw(stepperY, TMC_Y);
67 67
   #endif
68 68
 
69 69
   #if ENABLED(Z_IS_TMC2130) || (ENABLED(Z_IS_TMC2208) && PIN_EXISTS(Z_SERIAL_RX))
70
-    if (clearZ || clearAll) tmc_clear_otpw(stepperZ, extended_axis_codes[TMC_Z]);
70
+    if (clearZ || clearAll) tmc_clear_otpw(stepperZ, TMC_Z);
71 71
   #endif
72 72
 
73 73
   #if ENABLED(E0_IS_TMC2130) || (ENABLED(E0_IS_TMC2208) && PIN_EXISTS(E0_SERIAL_RX))
74
-    if (clearE || clearAll) tmc_clear_otpw(stepperE0, extended_axis_codes[TMC_E0]);
74
+    if (clearE || clearAll) tmc_clear_otpw(stepperE0, TMC_E0);
75 75
   #endif
76 76
 }
77 77
 
@@ -84,8 +84,8 @@ void GcodeSuite::M912() {
84 84
     LOOP_XYZE(i) values[i] = parser.intval(axis_codes[i]);
85 85
 
86 86
     #define TMC_SET_GET_PWMTHRS(P,Q) do { \
87
-      if (values[P##_AXIS]) tmc_set_pwmthrs(stepper##Q, extended_axis_codes[TMC_##Q], values[P##_AXIS], planner.axis_steps_per_mm[P##_AXIS]); \
88
-      else tmc_get_pwmthrs(stepper##Q, extended_axis_codes[TMC_##Q], planner.axis_steps_per_mm[P##_AXIS]); } while(0)
87
+      if (values[P##_AXIS]) tmc_set_pwmthrs(stepper##Q, TMC_##Q, values[P##_AXIS], planner.axis_steps_per_mm[P##_AXIS]); \
88
+      else tmc_get_pwmthrs(stepper##Q, TMC_##Q, planner.axis_steps_per_mm[P##_AXIS]); } while(0)
89 89
 
90 90
     #if X_IS_TRINAMIC
91 91
       TMC_SET_GET_PWMTHRS(X,X);
@@ -129,8 +129,8 @@ void GcodeSuite::M912() {
129 129
 #if ENABLED(SENSORLESS_HOMING)
130 130
   void GcodeSuite::M914() {
131 131
     #define TMC_SET_GET_SGT(P,Q) do { \
132
-      if (parser.seen(axis_codes[P##_AXIS])) tmc_set_sgt(stepper##Q, extended_axis_codes[TMC_##Q], parser.value_int()); \
133
-      else tmc_get_sgt(stepper##Q, extended_axis_codes[TMC_##Q]); } while(0)
132
+      if (parser.seen(axis_codes[P##_AXIS])) tmc_set_sgt(stepper##Q, TMC_##Q, parser.value_int()); \
133
+      else tmc_get_sgt(stepper##Q, TMC_##Q); } while(0)
134 134
 
135 135
     #ifdef X_HOMING_SENSITIVITY
136 136
       #if ENABLED(X_IS_TMC2130) || ENABLED(IS_TRAMS)

+ 2
- 2
Marlin/src/gcode/gcode.h 查看文件

@@ -267,7 +267,7 @@ public:
267 267
      * Workspace planes only apply to G2/G3 moves
268 268
      * (and "canned cycles" - not a current feature)
269 269
      */
270
-    enum WorkspacePlane { PLANE_XY, PLANE_ZX, PLANE_YZ };
270
+    enum WorkspacePlane : char { PLANE_XY, PLANE_ZX, PLANE_YZ };
271 271
     static WorkspacePlane workspace_plane;
272 272
   #endif
273 273
 
@@ -304,7 +304,7 @@ public:
304 304
      * States for managing Marlin and host communication
305 305
      * Marlin sends messages if blocked or busy
306 306
      */
307
-    enum MarlinBusyState {
307
+    enum MarlinBusyState : char {
308 308
       NOT_BUSY,           // Not in a handler
309 309
       IN_HANDLER,         // Processing a GCode
310 310
       IN_PROCESS,         // Known to be blocking command input (as in G29)

+ 1
- 1
Marlin/src/libs/stopwatch.h 查看文件

@@ -36,7 +36,7 @@
36 36
  */
37 37
 class Stopwatch {
38 38
   private:
39
-    enum State {
39
+    enum State : char {
40 40
       STOPPED,
41 41
       RUNNING,
42 42
       PAUSED

+ 1
- 1
Marlin/src/module/endstops.h 查看文件

@@ -30,7 +30,7 @@
30 30
 #include "../inc/MarlinConfig.h"
31 31
 #include <stdint.h>
32 32
 
33
-enum EndstopEnum {
33
+enum EndstopEnum : char {
34 34
   X_MIN,
35 35
   Y_MIN,
36 36
   Z_MIN,

+ 2
- 2
Marlin/src/module/motion.h 查看文件

@@ -288,7 +288,7 @@ void homeaxis(const AxisEnum axis);
288 288
  */
289 289
 #if ENABLED(DUAL_X_CARRIAGE)
290 290
 
291
-  enum DualXMode {
291
+  enum DualXMode : char {
292 292
     DXC_FULL_CONTROL_MODE,  // DUAL_X_CARRIAGE only
293 293
     DXC_AUTO_PARK_MODE,     // DUAL_X_CARRIAGE only
294 294
     DXC_DUPLICATION_MODE
@@ -308,7 +308,7 @@ void homeaxis(const AxisEnum axis);
308 308
 
309 309
 #elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
310 310
 
311
-  enum DualXMode {
311
+  enum DualXMode : char {
312 312
     DXC_DUPLICATION_MODE = 2
313 313
   };
314 314
 

+ 2
- 2
Marlin/src/module/planner.h 查看文件

@@ -44,7 +44,7 @@
44 44
   #include "../libs/vector_3.h"
45 45
 #endif
46 46
 
47
-enum BlockFlagBit {
47
+enum BlockFlagBit : char {
48 48
   // Recalculate trapezoids on entry junction. For optimization.
49 49
   BLOCK_BIT_RECALCULATE,
50 50
 
@@ -60,7 +60,7 @@ enum BlockFlagBit {
60 60
   BLOCK_BIT_CONTINUED
61 61
 };
62 62
 
63
-enum BlockFlag {
63
+enum BlockFlag : char {
64 64
   BLOCK_FLAG_RECALCULATE          = _BV(BLOCK_BIT_RECALCULATE),
65 65
   BLOCK_FLAG_NOMINAL_LENGTH       = _BV(BLOCK_BIT_NOMINAL_LENGTH),
66 66
   BLOCK_FLAG_BUSY                 = _BV(BLOCK_BIT_BUSY),

+ 2
- 2
Marlin/src/module/temperature.h 查看文件

@@ -49,7 +49,7 @@
49 49
 /**
50 50
  * States for ADC reading in the ISR
51 51
  */
52
-enum ADCSensorState {
52
+enum ADCSensorState : char {
53 53
   #if HAS_TEMP_0
54 54
     PrepareTemp_0,
55 55
     MeasureTemp_0,
@@ -610,7 +610,7 @@ class Temperature {
610 610
 
611 611
     #if ENABLED(THERMAL_PROTECTION_HOTENDS) || HAS_THERMALLY_PROTECTED_BED
612 612
 
613
-      typedef enum TRState { TRInactive, TRFirstHeating, TRStable, TRRunaway } TRstate;
613
+      typedef enum TRState : char { TRInactive, TRFirstHeating, TRStable, TRRunaway } TRstate;
614 614
 
615 615
       static void thermal_runaway_protection(TRState * const state, millis_t * const timer, const float &current, const float &target, const int8_t heater_id, const uint16_t period_seconds, const uint16_t hysteresis_degc);
616 616
 

Loading…
取消
儲存