Browse Source

EEPROM read code grouping

Scott Lahteine 6 years ago
parent
commit
946cf8b453
1 changed files with 177 additions and 163 deletions
  1. 177
    163
      Marlin/src/module/configuration_store.cpp

+ 177
- 163
Marlin/src/module/configuration_store.cpp View File

1008
     }
1008
     }
1009
     else {
1009
     else {
1010
       float dummy = 0;
1010
       float dummy = 0;
1011
-      #if DISABLED(AUTO_BED_LEVELING_UBL) || DISABLED(FWRETRACT) || DISABLED(FWRETRACT_AUTORETRACT) || ENABLED(NO_VOLUMETRICS)
1012
-        bool dummyb;
1013
-      #endif
1014
-
1015
       working_crc = 0;  // Init to 0. Accumulated by EEPROM_READ
1011
       working_crc = 0;  // Init to 0. Accumulated by EEPROM_READ
1016
 
1012
 
1017
       _FIELD_TEST(esteppers);
1013
       _FIELD_TEST(esteppers);
1023
       //
1019
       //
1024
       // Planner Motion
1020
       // Planner Motion
1025
       //
1021
       //
1022
+      {
1023
+        // Get only the number of E stepper parameters previously stored
1024
+        // Any steppers added later are set to their defaults
1025
+        const uint32_t def1[] = DEFAULT_MAX_ACCELERATION;
1026
+        const float def2[] = DEFAULT_AXIS_STEPS_PER_UNIT, def3[] = DEFAULT_MAX_FEEDRATE;
1027
+
1028
+        uint32_t tmp1[XYZ + esteppers];
1029
+        EEPROM_READ(tmp1);                         // max_acceleration_mm_per_s2
1030
+        EEPROM_READ(planner.settings.min_segment_time_us);
1031
+
1032
+        float tmp2[XYZ + esteppers], tmp3[XYZ + esteppers];
1033
+        EEPROM_READ(tmp2);                         // axis_steps_per_mm
1034
+        EEPROM_READ(tmp3);                         // max_feedrate_mm_s
1035
+        if (!validating) LOOP_XYZE_N(i) {
1036
+          const bool in = (i < esteppers + XYZ);
1037
+          planner.settings.max_acceleration_mm_per_s2[i] = in ? tmp1[i] : def1[ALIM(i, def1)];
1038
+          planner.settings.axis_steps_per_mm[i]          = in ? tmp2[i] : def2[ALIM(i, def2)];
1039
+          planner.settings.max_feedrate_mm_s[i]          = in ? tmp3[i] : def3[ALIM(i, def3)];
1040
+        }
1026
 
1041
 
1027
-      // Get only the number of E stepper parameters previously stored
1028
-      // Any steppers added later are set to their defaults
1029
-      const uint32_t def1[] = DEFAULT_MAX_ACCELERATION;
1030
-      const float def2[] = DEFAULT_AXIS_STEPS_PER_UNIT, def3[] = DEFAULT_MAX_FEEDRATE;
1031
-
1032
-      uint32_t tmp1[XYZ + esteppers];
1033
-      EEPROM_READ(tmp1);                         // max_acceleration_mm_per_s2
1034
-      EEPROM_READ(planner.settings.min_segment_time_us);
1035
-
1036
-      float tmp2[XYZ + esteppers], tmp3[XYZ + esteppers];
1037
-      EEPROM_READ(tmp2);                         // axis_steps_per_mm
1038
-      EEPROM_READ(tmp3);                         // max_feedrate_mm_s
1039
-      if (!validating) LOOP_XYZE_N(i) {
1040
-        const bool in = (i < esteppers + XYZ);
1041
-        planner.settings.max_acceleration_mm_per_s2[i] = in ? tmp1[i] : def1[ALIM(i, def1)];
1042
-        planner.settings.axis_steps_per_mm[i]          = in ? tmp2[i] : def2[ALIM(i, def2)];
1043
-        planner.settings.max_feedrate_mm_s[i]          = in ? tmp3[i] : def3[ALIM(i, def3)];
1044
-      }
1042
+        EEPROM_READ(planner.settings.acceleration);
1043
+        EEPROM_READ(planner.settings.retract_acceleration);
1044
+        EEPROM_READ(planner.settings.travel_acceleration);
1045
+        EEPROM_READ(planner.settings.min_feedrate_mm_s);
1046
+        EEPROM_READ(planner.settings.min_travel_feedrate_mm_s);
1045
 
1047
 
1046
-      EEPROM_READ(planner.settings.acceleration);
1047
-      EEPROM_READ(planner.settings.retract_acceleration);
1048
-      EEPROM_READ(planner.settings.travel_acceleration);
1049
-      EEPROM_READ(planner.settings.min_feedrate_mm_s);
1050
-      EEPROM_READ(planner.settings.min_travel_feedrate_mm_s);
1048
+        #if HAS_CLASSIC_JERK
1049
+          EEPROM_READ(planner.max_jerk);
1050
+          #if ENABLED(JUNCTION_DEVIATION) && ENABLED(LIN_ADVANCE)
1051
+            EEPROM_READ(dummy);
1052
+          #endif
1053
+        #else
1054
+          for (uint8_t q = 4; q--;) EEPROM_READ(dummy);
1055
+        #endif
1051
 
1056
 
1052
-      #if HAS_CLASSIC_JERK
1053
-        EEPROM_READ(planner.max_jerk);
1054
-        #if ENABLED(JUNCTION_DEVIATION) && ENABLED(LIN_ADVANCE)
1057
+        #if ENABLED(JUNCTION_DEVIATION)
1058
+          EEPROM_READ(planner.junction_deviation_mm);
1059
+        #else
1055
           EEPROM_READ(dummy);
1060
           EEPROM_READ(dummy);
1056
         #endif
1061
         #endif
1057
-      #else
1058
-        for (uint8_t q = 4; q--;) EEPROM_READ(dummy);
1059
-      #endif
1060
-
1061
-      #if ENABLED(JUNCTION_DEVIATION)
1062
-        EEPROM_READ(planner.junction_deviation_mm);
1063
-      #else
1064
-        EEPROM_READ(dummy);
1065
-      #endif
1062
+      }
1066
 
1063
 
1067
       //
1064
       //
1068
       // Home Offset (M206)
1065
       // Home Offset (M206)
1069
       //
1066
       //
1067
+      {
1068
+        _FIELD_TEST(home_offset);
1070
 
1069
 
1071
-      _FIELD_TEST(home_offset);
1072
-
1073
-      #if !HAS_HOME_OFFSET
1074
-        float home_offset[XYZ];
1075
-      #endif
1076
-      EEPROM_READ(home_offset);
1070
+        #if !HAS_HOME_OFFSET
1071
+          float home_offset[XYZ];
1072
+        #endif
1073
+        EEPROM_READ(home_offset);
1074
+      }
1077
 
1075
 
1078
       //
1076
       //
1079
       // Hotend Offsets, if any
1077
       // Hotend Offsets, if any
1080
       //
1078
       //
1081
-
1082
-      #if HAS_HOTEND_OFFSET
1083
-        // Skip hotend 0 which must be 0
1084
-        for (uint8_t e = 1; e < HOTENDS; e++)
1085
-          LOOP_XYZ(i) EEPROM_READ(hotend_offset[i][e]);
1086
-      #endif
1079
+      {
1080
+        #if HAS_HOTEND_OFFSET
1081
+          // Skip hotend 0 which must be 0
1082
+          for (uint8_t e = 1; e < HOTENDS; e++)
1083
+            LOOP_XYZ(i) EEPROM_READ(hotend_offset[i][e]);
1084
+        #endif
1085
+      }
1087
 
1086
 
1088
       //
1087
       //
1089
       // Global Leveling
1088
       // Global Leveling
1090
       //
1089
       //
1091
-
1092
-      #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1093
-        EEPROM_READ(new_z_fade_height);
1094
-      #else
1095
-        EEPROM_READ(dummy);
1096
-      #endif
1090
+      {
1091
+        #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1092
+          EEPROM_READ(new_z_fade_height);
1093
+        #else
1094
+          EEPROM_READ(dummy);
1095
+        #endif
1096
+      }
1097
 
1097
 
1098
       //
1098
       //
1099
       // Mesh (Manual) Bed Leveling
1099
       // Mesh (Manual) Bed Leveling
1100
       //
1100
       //
1101
-
1102
-      uint8_t mesh_num_x, mesh_num_y;
1103
-      EEPROM_READ(dummy);
1104
-      EEPROM_READ_ALWAYS(mesh_num_x);
1105
-      EEPROM_READ_ALWAYS(mesh_num_y);
1106
-
1107
-      #if ENABLED(MESH_BED_LEVELING)
1108
-        if (!validating) mbl.z_offset = dummy;
1109
-        if (mesh_num_x == GRID_MAX_POINTS_X && mesh_num_y == GRID_MAX_POINTS_Y) {
1110
-          // EEPROM data fits the current mesh
1111
-          EEPROM_READ(mbl.z_values);
1112
-        }
1113
-        else {
1114
-          // EEPROM data is stale
1115
-          if (!validating) mbl.reset();
1101
+      {
1102
+        uint8_t mesh_num_x, mesh_num_y;
1103
+        EEPROM_READ(dummy);
1104
+        EEPROM_READ_ALWAYS(mesh_num_x);
1105
+        EEPROM_READ_ALWAYS(mesh_num_y);
1106
+
1107
+        #if ENABLED(MESH_BED_LEVELING)
1108
+          if (!validating) mbl.z_offset = dummy;
1109
+          if (mesh_num_x == GRID_MAX_POINTS_X && mesh_num_y == GRID_MAX_POINTS_Y) {
1110
+            // EEPROM data fits the current mesh
1111
+            EEPROM_READ(mbl.z_values);
1112
+          }
1113
+          else {
1114
+            // EEPROM data is stale
1115
+            if (!validating) mbl.reset();
1116
+            for (uint16_t q = mesh_num_x * mesh_num_y; q--;) EEPROM_READ(dummy);
1117
+          }
1118
+        #else
1119
+          // MBL is disabled - skip the stored data
1116
           for (uint16_t q = mesh_num_x * mesh_num_y; q--;) EEPROM_READ(dummy);
1120
           for (uint16_t q = mesh_num_x * mesh_num_y; q--;) EEPROM_READ(dummy);
1117
-        }
1118
-      #else
1119
-        // MBL is disabled - skip the stored data
1120
-        for (uint16_t q = mesh_num_x * mesh_num_y; q--;) EEPROM_READ(dummy);
1121
-      #endif // MESH_BED_LEVELING
1121
+        #endif // MESH_BED_LEVELING
1122
+      }
1122
 
1123
 
1123
-      _FIELD_TEST(zprobe_zoffset);
1124
+      //
1125
+      // Probe Z Offset
1126
+      //
1127
+      {
1128
+        _FIELD_TEST(zprobe_zoffset);
1124
 
1129
 
1125
-      #if !HAS_BED_PROBE
1126
-        float zprobe_zoffset;
1127
-      #endif
1128
-      EEPROM_READ(zprobe_zoffset);
1130
+        #if !HAS_BED_PROBE
1131
+          float zprobe_zoffset;
1132
+        #endif
1133
+        EEPROM_READ(zprobe_zoffset);
1134
+      }
1129
 
1135
 
1130
       //
1136
       //
1131
       // Planar Bed Leveling matrix
1137
       // Planar Bed Leveling matrix
1132
       //
1138
       //
1133
-
1134
-      #if ABL_PLANAR
1135
-        EEPROM_READ(planner.bed_level_matrix);
1136
-      #else
1137
-        for (uint8_t q = 9; q--;) EEPROM_READ(dummy);
1138
-      #endif
1139
+      {
1140
+        #if ABL_PLANAR
1141
+          EEPROM_READ(planner.bed_level_matrix);
1142
+        #else
1143
+          for (uint8_t q = 9; q--;) EEPROM_READ(dummy);
1144
+        #endif
1145
+      }
1139
 
1146
 
1140
       //
1147
       //
1141
       // Bilinear Auto Bed Leveling
1148
       // Bilinear Auto Bed Leveling
1142
       //
1149
       //
1143
-
1144
-      uint8_t grid_max_x, grid_max_y;
1145
-      EEPROM_READ_ALWAYS(grid_max_x);                       // 1 byte
1146
-      EEPROM_READ_ALWAYS(grid_max_y);                       // 1 byte
1147
-      #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
1148
-        if (grid_max_x == GRID_MAX_POINTS_X && grid_max_y == GRID_MAX_POINTS_Y) {
1149
-          if (!validating) set_bed_leveling_enabled(false);
1150
-          EEPROM_READ(bilinear_grid_spacing);        // 2 ints
1151
-          EEPROM_READ(bilinear_start);               // 2 ints
1152
-          EEPROM_READ(z_values);                     // 9 to 256 floats
1153
-        }
1154
-        else // EEPROM data is stale
1155
-      #endif // AUTO_BED_LEVELING_BILINEAR
1156
-        {
1157
-          // Skip past disabled (or stale) Bilinear Grid data
1158
-          int bgs[2], bs[2];
1159
-          EEPROM_READ(bgs);
1160
-          EEPROM_READ(bs);
1161
-          for (uint16_t q = grid_max_x * grid_max_y; q--;) EEPROM_READ(dummy);
1162
-        }
1150
+      {
1151
+        uint8_t grid_max_x, grid_max_y;
1152
+        EEPROM_READ_ALWAYS(grid_max_x);                       // 1 byte
1153
+        EEPROM_READ_ALWAYS(grid_max_y);                       // 1 byte
1154
+        #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
1155
+          if (grid_max_x == GRID_MAX_POINTS_X && grid_max_y == GRID_MAX_POINTS_Y) {
1156
+            if (!validating) set_bed_leveling_enabled(false);
1157
+            EEPROM_READ(bilinear_grid_spacing);        // 2 ints
1158
+            EEPROM_READ(bilinear_start);               // 2 ints
1159
+            EEPROM_READ(z_values);                     // 9 to 256 floats
1160
+          }
1161
+          else // EEPROM data is stale
1162
+        #endif // AUTO_BED_LEVELING_BILINEAR
1163
+          {
1164
+            // Skip past disabled (or stale) Bilinear Grid data
1165
+            int bgs[2], bs[2];
1166
+            EEPROM_READ(bgs);
1167
+            EEPROM_READ(bs);
1168
+            for (uint16_t q = grid_max_x * grid_max_y; q--;) EEPROM_READ(dummy);
1169
+          }
1170
+      }
1163
 
1171
 
1164
       //
1172
       //
1165
       // Unified Bed Leveling active state
1173
       // Unified Bed Leveling active state
1166
       //
1174
       //
1175
+      {
1176
+        _FIELD_TEST(planner_leveling_active);
1167
 
1177
 
1168
-      _FIELD_TEST(planner_leveling_active);
1169
-
1170
-      #if ENABLED(AUTO_BED_LEVELING_UBL)
1171
-        EEPROM_READ(planner.leveling_active);
1172
-        EEPROM_READ(ubl.storage_slot);
1173
-      #else
1174
-        uint8_t dummyui8;
1175
-        EEPROM_READ(dummyb);
1176
-        EEPROM_READ(dummyui8);
1177
-      #endif // AUTO_BED_LEVELING_UBL
1178
+        #if ENABLED(AUTO_BED_LEVELING_UBL)
1179
+          EEPROM_READ(planner.leveling_active);
1180
+          EEPROM_READ(ubl.storage_slot);
1181
+        #else
1182
+          bool planner_leveling_active;
1183
+          uint8_t ubl_storage_slot;
1184
+          EEPROM_READ(planner_leveling_active);
1185
+          EEPROM_READ(ubl_storage_slot);
1186
+        #endif
1187
+      }
1178
 
1188
 
1179
       //
1189
       //
1180
       // SERVO_ANGLES
1190
       // SERVO_ANGLES
1181
       //
1191
       //
1182
-      #if !HAS_SERVOS || DISABLED(EDITABLE_SERVO_ANGLES)
1183
-        uint16_t servo_angles[NUM_SERVOS][2];
1184
-      #endif
1185
-      EEPROM_READ(servo_angles);
1192
+      {
1193
+        #if !HAS_SERVOS || DISABLED(EDITABLE_SERVO_ANGLES)
1194
+          uint16_t servo_angles[NUM_SERVOS][2];
1195
+        #endif
1196
+        EEPROM_READ(servo_angles);
1197
+      }
1186
 
1198
 
1187
       //
1199
       //
1188
       // DELTA Geometry or Dual Endstops offsets
1200
       // DELTA Geometry or Dual Endstops offsets
1189
       //
1201
       //
1202
+      {
1203
+        #if ENABLED(DELTA)
1190
 
1204
 
1191
-      #if ENABLED(DELTA)
1205
+          _FIELD_TEST(delta_height);
1192
 
1206
 
1193
-        _FIELD_TEST(delta_height);
1207
+          EEPROM_READ(delta_height);              // 1 float
1208
+          EEPROM_READ(delta_endstop_adj);         // 3 floats
1209
+          EEPROM_READ(delta_radius);              // 1 float
1210
+          EEPROM_READ(delta_diagonal_rod);        // 1 float
1211
+          EEPROM_READ(delta_segments_per_second); // 1 float
1212
+          EEPROM_READ(delta_calibration_radius);  // 1 float
1213
+          EEPROM_READ(delta_tower_angle_trim);    // 3 floats
1194
 
1214
 
1195
-        EEPROM_READ(delta_height);              // 1 float
1196
-        EEPROM_READ(delta_endstop_adj);         // 3 floats
1197
-        EEPROM_READ(delta_radius);              // 1 float
1198
-        EEPROM_READ(delta_diagonal_rod);        // 1 float
1199
-        EEPROM_READ(delta_segments_per_second); // 1 float
1200
-        EEPROM_READ(delta_calibration_radius);  // 1 float
1201
-        EEPROM_READ(delta_tower_angle_trim);    // 3 floats
1215
+        #elif ENABLED(X_DUAL_ENDSTOPS) || ENABLED(Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS
1202
 
1216
 
1203
-      #elif ENABLED(X_DUAL_ENDSTOPS) || ENABLED(Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS
1217
+          _FIELD_TEST(x2_endstop_adj);
1204
 
1218
 
1205
-        _FIELD_TEST(x2_endstop_adj);
1219
+          #if ENABLED(X_DUAL_ENDSTOPS)
1220
+            EEPROM_READ(endstops.x2_endstop_adj);  // 1 float
1221
+          #else
1222
+            EEPROM_READ(dummy);
1223
+          #endif
1224
+          #if ENABLED(Y_DUAL_ENDSTOPS)
1225
+            EEPROM_READ(endstops.y2_endstop_adj);  // 1 float
1226
+          #else
1227
+            EEPROM_READ(dummy);
1228
+          #endif
1229
+          #if Z_MULTI_ENDSTOPS
1230
+            EEPROM_READ(endstops.z2_endstop_adj); // 1 float
1231
+          #else
1232
+            EEPROM_READ(dummy);
1233
+          #endif
1234
+          #if ENABLED(Z_TRIPLE_ENDSTOPS)
1235
+            EEPROM_READ(endstops.z3_endstop_adj); // 1 float
1236
+          #else
1237
+            EEPROM_READ(dummy);
1238
+          #endif
1206
 
1239
 
1207
-        #if ENABLED(X_DUAL_ENDSTOPS)
1208
-          EEPROM_READ(endstops.x2_endstop_adj);  // 1 float
1209
-        #else
1210
-          EEPROM_READ(dummy);
1211
-        #endif
1212
-        #if ENABLED(Y_DUAL_ENDSTOPS)
1213
-          EEPROM_READ(endstops.y2_endstop_adj);  // 1 float
1214
-        #else
1215
-          EEPROM_READ(dummy);
1216
-        #endif
1217
-        #if Z_MULTI_ENDSTOPS
1218
-          EEPROM_READ(endstops.z2_endstop_adj); // 1 float
1219
-        #else
1220
-          EEPROM_READ(dummy);
1221
         #endif
1240
         #endif
1222
-        #if ENABLED(Z_TRIPLE_ENDSTOPS)
1223
-          EEPROM_READ(endstops.z3_endstop_adj); // 1 float
1224
-        #else
1225
-          EEPROM_READ(dummy);
1226
-        #endif
1227
-
1228
-      #endif
1241
+      }
1229
 
1242
 
1230
       //
1243
       //
1231
       // LCD Preheat settings
1244
       // LCD Preheat settings
1232
       //
1245
       //
1246
+      {
1247
+        _FIELD_TEST(lcd_preheat_hotend_temp);
1233
 
1248
 
1234
-      _FIELD_TEST(lcd_preheat_hotend_temp);
1235
-
1236
-      #if DISABLED(ULTIPANEL)
1237
-        int16_t lcd_preheat_hotend_temp[2], lcd_preheat_bed_temp[2];
1238
-        uint8_t lcd_preheat_fan_speed[2];
1239
-      #endif
1240
-      EEPROM_READ(lcd_preheat_hotend_temp); // 2 floats
1241
-      EEPROM_READ(lcd_preheat_bed_temp);    // 2 floats
1242
-      EEPROM_READ(lcd_preheat_fan_speed);   // 2 floats
1249
+        #if DISABLED(ULTIPANEL)
1250
+          int16_t lcd_preheat_hotend_temp[2], lcd_preheat_bed_temp[2];
1251
+          uint8_t lcd_preheat_fan_speed[2];
1252
+        #endif
1253
+        EEPROM_READ(lcd_preheat_hotend_temp); // 2 floats
1254
+        EEPROM_READ(lcd_preheat_bed_temp);    // 2 floats
1255
+        EEPROM_READ(lcd_preheat_fan_speed);   // 2 floats
1256
+      }
1243
 
1257
 
1244
       //
1258
       //
1245
       // Hotend PID
1259
       // Hotend PID

Loading…
Cancel
Save