Matching sign across filwidth vars

2.0.x
Scott Lahteine 7 years ago
parent 3cde4c78b2
commit 913d9e9a59

@ -29,8 +29,8 @@
bool filament_sensor = false; // M405/M406 turns filament sensor control ON/OFF. bool filament_sensor = false; // M405/M406 turns filament sensor control ON/OFF.
float filament_width_nominal = DEFAULT_NOMINAL_FILAMENT_DIA, // Nominal filament width. Change with M404. float filament_width_nominal = DEFAULT_NOMINAL_FILAMENT_DIA, // Nominal filament width. Change with M404.
filament_width_meas = DEFAULT_MEASURED_FILAMENT_DIA; // Measured filament diameter filament_width_meas = DEFAULT_MEASURED_FILAMENT_DIA; // Measured filament diameter
uint8_t meas_delay_cm = MEASUREMENT_DELAY_CM, // Distance delay setting uint8_t meas_delay_cm = MEASUREMENT_DELAY_CM; // Distance delay setting
measurement_delay[MAX_MEASUREMENT_DELAY + 1]; // Ring buffer to delayed measurement. Store extruder factor after subtracting 100 int8_t measurement_delay[MAX_MEASUREMENT_DELAY + 1], // Ring buffer to delayed measurement. Store extruder factor after subtracting 100
int8_t filwidth_delay_index[2] = { 0, -1 }; // Indexes into ring buffer filwidth_delay_index[2] = { 0, -1 }; // Indexes into ring buffer
#endif // FILAMENT_WIDTH_SENSOR #endif // FILAMENT_WIDTH_SENSOR

@ -25,11 +25,11 @@
#include "../inc/MarlinConfig.h" #include "../inc/MarlinConfig.h"
extern bool filament_sensor; // M405/M406 turns filament sensor control ON/OFF. extern bool filament_sensor; // M405/M406 turns filament sensor control ON/OFF.
extern float filament_width_nominal, // Nominal filament width. Change with M404. extern float filament_width_nominal, // Nominal filament width. Change with M404.
filament_width_meas; // Measured filament diameter filament_width_meas; // Measured filament diameter
extern uint8_t meas_delay_cm, // Distance delay setting extern uint8_t meas_delay_cm; // Distance delay setting
measurement_delay[MAX_MEASUREMENT_DELAY + 1]; // Ring buffer to delayed measurement. Store extruder factor after subtracting 100 extern int8_t measurement_delay[MAX_MEASUREMENT_DELAY + 1], // Ring buffer to delayed measurement. Store extruder factor after subtracting 100
extern int8_t filwidth_delay_index[2]; // Indexes into ring buffer filwidth_delay_index[2]; // Indexes into ring buffer
#endif // __FILWIDTH_H__ #endif // __FILWIDTH_H__

@ -56,7 +56,7 @@ void GcodeSuite::M405() {
} }
if (filwidth_delay_index[1] == -1) { // Initialize the ring buffer if not done since startup if (filwidth_delay_index[1] == -1) { // Initialize the ring buffer if not done since startup
const uint8_t temp_ratio = thermalManager.widthFil_to_size_ratio(); const int8_t temp_ratio = thermalManager.widthFil_to_size_ratio();
for (uint8_t i = 0; i < COUNT(measurement_delay); ++i) for (uint8_t i = 0; i < COUNT(measurement_delay); ++i)
measurement_delay[i] = temp_ratio; measurement_delay[i] = temp_ratio;

@ -1092,7 +1092,7 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
// If the index has changed (must have gone forward)... // If the index has changed (must have gone forward)...
if (filwidth_delay_index[0] != filwidth_delay_index[1]) { if (filwidth_delay_index[0] != filwidth_delay_index[1]) {
filwidth_e_count = 0; // Reset the E movement counter filwidth_e_count = 0; // Reset the E movement counter
const uint8_t meas_sample = thermalManager.widthFil_to_size_ratio(); const int8_t meas_sample = thermalManager.widthFil_to_size_ratio();
do { do {
filwidth_delay_index[1] = (filwidth_delay_index[1] + 1) % MMD_CM; // The next unused slot filwidth_delay_index[1] = (filwidth_delay_index[1] + 1) % MMD_CM; // The next unused slot
measurement_delay[filwidth_delay_index[1]] = meas_sample; // Store the measurement measurement_delay[filwidth_delay_index[1]] = meas_sample; // Store the measurement

Loading…
Cancel
Save