Browse Source

Fix DAC-related bugs (#19921)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Orel 4 years ago
parent
commit
e3f1f7cd85
No account linked to committer's email address

+ 1
- 1
Marlin/src/feature/dac/dac_mcp4728.cpp View File

124
  * DAC Values array and calls fastwrite to update the DAC.
124
  * DAC Values array and calls fastwrite to update the DAC.
125
  */
125
  */
126
 void MCP4728::setDrvPct(xyze_uint8_t &pct) {
126
 void MCP4728::setDrvPct(xyze_uint8_t &pct) {
127
-  dac_values *= 0.01 * pct * (DAC_STEPPER_MAX);
127
+  dac_values *= pct.asFloat() * 0.01f * (DAC_STEPPER_MAX);
128
   fastWrite();
128
   fastWrite();
129
 }
129
 }
130
 
130
 

+ 2
- 2
Marlin/src/gcode/calibrate/G34.cpp View File

80
     const uint16_t target_current = parser.intval('S', GANTRY_CALIBRATION_CURRENT);
80
     const uint16_t target_current = parser.intval('S', GANTRY_CALIBRATION_CURRENT);
81
     const uint32_t previous_current = stepper.motor_current_setting[Z_AXIS];
81
     const uint32_t previous_current = stepper.motor_current_setting[Z_AXIS];
82
     stepper.set_digipot_current(1, target_current);
82
     stepper.set_digipot_current(1, target_current);
83
-  #elif HAS_MOTOR_CURRENT_DAC
83
+  #elif ENABLED(HAS_MOTOR_CURRENT_DAC)
84
     const float target_current = parser.floatval('S', GANTRY_CALIBRATION_CURRENT);
84
     const float target_current = parser.floatval('S', GANTRY_CALIBRATION_CURRENT);
85
     const float previous_current = dac_amps(Z_AXIS, target_current);
85
     const float previous_current = dac_amps(Z_AXIS, target_current);
86
     stepper_dac.set_current_value(Z_AXIS, target_current);
86
     stepper_dac.set_current_value(Z_AXIS, target_current);
126
     stepper.set_digipot_current(Z_AXIS, previous_current);
126
     stepper.set_digipot_current(Z_AXIS, previous_current);
127
   #elif HAS_MOTOR_CURRENT_PWM
127
   #elif HAS_MOTOR_CURRENT_PWM
128
     stepper.set_digipot_current(1, previous_current);
128
     stepper.set_digipot_current(1, previous_current);
129
-  #elif HAS_MOTOR_CURRENT_DAC
129
+  #elif ENABLED(HAS_MOTOR_CURRENT_DAC)
130
     stepper_dac.set_current_value(Z_AXIS, previous_current);
130
     stepper_dac.set_current_value(Z_AXIS, previous_current);
131
   #elif ENABLED(HAS_MOTOR_CURRENT_I2C)
131
   #elif ENABLED(HAS_MOTOR_CURRENT_I2C)
132
     digipot_i2c.set_current(Z_AXIS, previous_current)
132
     digipot_i2c.set_current(Z_AXIS, previous_current)

+ 1
- 1
Marlin/src/lcd/menu/menu_advanced.cpp View File

72
     EDIT_DAC_PERCENT(Y);
72
     EDIT_DAC_PERCENT(Y);
73
     EDIT_DAC_PERCENT(Z);
73
     EDIT_DAC_PERCENT(Z);
74
     EDIT_DAC_PERCENT(E);
74
     EDIT_DAC_PERCENT(E);
75
-    ACTION_ITEM(MSG_DAC_EEPROM_WRITE, dac_commit_eeprom);
75
+    ACTION_ITEM(MSG_DAC_EEPROM_WRITE, stepper_dac.commit_eeprom);
76
     END_MENU();
76
     END_MENU();
77
   }
77
   }
78
 
78
 

+ 1
- 1
Marlin/src/module/settings.cpp View File

3821
     #elif HAS_MOTOR_CURRENT_I2C                                // i2c-based has any number of values
3821
     #elif HAS_MOTOR_CURRENT_I2C                                // i2c-based has any number of values
3822
       // Values sent over i2c are not stored.
3822
       // Values sent over i2c are not stored.
3823
       // Indexes map directly to drivers, not axes.
3823
       // Indexes map directly to drivers, not axes.
3824
-    #elif HAS_MOTOR_CURRENT_DAC                                // DAC-based has 4 values, for X Y Z E
3824
+    #elif ENABLED(HAS_MOTOR_CURRENT_DAC)                                // DAC-based has 4 values, for X Y Z E
3825
       // Values sent over i2c are not stored. Uses indirect mapping.
3825
       // Values sent over i2c are not stored. Uses indirect mapping.
3826
     #endif
3826
     #endif
3827
 
3827
 

Loading…
Cancel
Save