Move TMC2130 g-codes to cpp

This commit is contained in:
Scott Lahteine 2017-09-17 18:34:04 -05:00
parent 19dde5be03
commit 2e89685154
7 changed files with 73 additions and 56 deletions

View file

@ -95,6 +95,10 @@
#include "HAL/HAL_endstop_interrupts.h"
#endif
#if ENABLED(HAVE_TMC2130)
#include "feature/tmc2130.h"
#endif
#if ENABLED(SDSUPPORT)
CardReader card;
#endif
@ -114,10 +118,6 @@
#include "feature/bedlevel/bedlevel.h"
#endif
#if ENABLED(SENSORLESS_HOMING)
#include "feature/tmc2130.h"
#endif
#if ENABLED(ADVANCED_PAUSE_FEATURE) && ENABLED(PAUSE_PARK_NO_STEPPER_TIMEOUT)
#include "feature/pause.h"
#endif
@ -359,19 +359,6 @@ void quickstop_stepper() {
SYNC_PLAN_POSITION_KINEMATIC();
}
#if ENABLED(HAVE_TMC2130)
#include "feature/tmc2130.h"
#include "gcode/feature/trinamic/M906.h"
#include "gcode/feature/trinamic/M911.h"
#include "gcode/feature/trinamic/M912.h"
#if ENABLED(HYBRID_THRESHOLD)
#include "gcode/feature/trinamic/M913.h"
#endif
#if ENABLED(SENSORLESS_HOMING)
#include "gcode/feature/trinamic/M914.h"
#endif
#endif
#include "gcode/feature/digipot/M907.h"
#if HAS_DIGIPOTSS || ENABLED(DAC_STEPPER_CURRENT)

View file

@ -20,12 +20,20 @@
*
*/
static void tmc2130_get_current(TMC2130Stepper &st, const char name) {
#include "../../../inc/MarlinConfig.h"
#if ENABLED(HAVE_TMC2130)
#include "../../gcode.h"
#include "../../../feature/tmc2130.h"
#include "../../../module/stepper_indirection.h"
inline void tmc2130_get_current(TMC2130Stepper &st, const char name) {
SERIAL_CHAR(name);
SERIAL_ECHOPGM(" axis driver current: ");
SERIAL_ECHOLN(st.getCurrent());
}
static void tmc2130_set_current(TMC2130Stepper &st, const char name, const int mA) {
inline void tmc2130_set_current(TMC2130Stepper &st, const char name, const int mA) {
st.setCurrent(mA, R_SENSE, HOLD_MULTIPLIER);
tmc2130_get_current(st, name);
}
@ -37,7 +45,7 @@ static void tmc2130_set_current(TMC2130Stepper &st, const char name, const int m
* S1: Enable automatic current control
* S0: Disable
*/
void gcode_M906() {
void GcodeSuite::M906() {
uint16_t values[XYZE];
LOOP_XYZE(i)
values[i] = parser.intval(axis_codes[i]);
@ -63,3 +71,5 @@ void gcode_M906() {
if (parser.seen('S')) auto_current_control = parser.value_bool();
#endif
}
#endif // HAVE_TMC2130

View file

@ -20,7 +20,15 @@
*
*/
static void tmc2130_report_otpw(TMC2130Stepper &st, const char name) {
#include "../../../inc/MarlinConfig.h"
#if ENABLED(HAVE_TMC2130)
#include "../../gcode.h"
#include "../../../feature/tmc2130.h"
#include "../../../module/stepper_indirection.h"
inline void tmc2130_report_otpw(TMC2130Stepper &st, const char name) {
SERIAL_CHAR(name);
SERIAL_ECHOPGM(" axis temperature prewarn triggered: ");
serialprintPGM(st.getOTPW() ? PSTR("true") : PSTR("false"));
@ -31,7 +39,7 @@ static void tmc2130_report_otpw(TMC2130Stepper &st, const char name) {
* M911: Report TMC2130 stepper driver overtemperature pre-warn flag
* The flag is held by the library and persist until manually cleared by M912
*/
void gcode_M911() {
void GcodeSuite::M911() {
const bool reportX = parser.seen('X'), reportY = parser.seen('Y'), reportZ = parser.seen('Z'), reportE = parser.seen('E'),
reportAll = (!reportX && !reportY && !reportZ && !reportE) || (reportX && reportY && reportZ && reportE);
#if ENABLED(X_IS_TMC2130)
@ -47,3 +55,5 @@ void gcode_M911() {
if (reportE || reportAll) tmc2130_report_otpw(stepperE0, 'E');
#endif
}
#endif // HAVE_TMC2130

View file

@ -20,7 +20,15 @@
*
*/
static void tmc2130_clear_otpw(TMC2130Stepper &st, const char name) {
#include "../../../inc/MarlinConfig.h"
#if ENABLED(HAVE_TMC2130)
#include "../../gcode.h"
#include "../../../feature/tmc2130.h"
#include "../../../module/stepper_indirection.h"
inline void tmc2130_clear_otpw(TMC2130Stepper &st, const char name) {
st.clear_otpw();
SERIAL_CHAR(name);
SERIAL_ECHOLNPGM(" prewarn flag cleared");
@ -29,7 +37,7 @@ static void tmc2130_clear_otpw(TMC2130Stepper &st, const char name) {
/**
* M912: Clear TMC2130 stepper driver overtemperature pre-warn flag held by the library
*/
void gcode_M912() {
void GcodeSuite::M912() {
const bool clearX = parser.seen('X'), clearY = parser.seen('Y'), clearZ = parser.seen('Z'), clearE = parser.seen('E'),
clearAll = (!clearX && !clearY && !clearZ && !clearE) || (clearX && clearY && clearZ && clearE);
#if ENABLED(X_IS_TMC2130)
@ -45,3 +53,5 @@ void gcode_M912() {
if (clearE || clearAll) tmc2130_clear_otpw(stepperE0, 'E');
#endif
}
#endif // HAVE_TMC2130

View file

@ -20,12 +20,21 @@
*
*/
static void tmc2130_get_pwmthrs(TMC2130Stepper &st, const char name, const uint16_t spmm) {
#include "../../../inc/MarlinConfig.h"
#if ENABLED(HAVE_TMC2130) && ENABLED(HYBRID_THRESHOLD)
#include "../../gcode.h"
#include "../../../feature/tmc2130.h"
#include "../../../module/planner.h"
#include "../../../module/stepper_indirection.h"
inline void tmc2130_get_pwmthrs(TMC2130Stepper &st, const char name, const uint16_t spmm) {
SERIAL_CHAR(name);
SERIAL_ECHOPGM(" stealthChop max speed set to ");
SERIAL_ECHOLN(12650000UL * st.microsteps() / (256 * st.stealth_max_speed() * spmm));
}
static void tmc2130_set_pwmthrs(TMC2130Stepper &st, const char name, const int32_t thrs, const uint32_t spmm) {
inline void tmc2130_set_pwmthrs(TMC2130Stepper &st, const char name, const int32_t thrs, const uint32_t spmm) {
st.stealth_max_speed(12650000UL * st.microsteps() / (256 * thrs * spmm));
tmc2130_get_pwmthrs(st, name, spmm);
}
@ -33,7 +42,7 @@ static void tmc2130_set_pwmthrs(TMC2130Stepper &st, const char name, const int32
/**
* M913: Set HYBRID_THRESHOLD speed.
*/
void gcode_M913() {
void GcodeSuite::M913() {
uint16_t values[XYZE];
LOOP_XYZE(i)
values[i] = parser.intval(axis_codes[i]);
@ -55,3 +64,5 @@ void gcode_M913() {
else tmc2130_get_pwmthrs(stepperE0, 'E', planner.axis_steps_per_mm[E_AXIS]);
#endif
}
#endif // HAVE_TMC2130 && HYBRID_THRESHOLD

View file

@ -20,12 +20,20 @@
*
*/
static void tmc2130_get_sgt(TMC2130Stepper &st, const char name) {
#include "../../../inc/MarlinConfig.h"
#if ENABLED(HAVE_TMC2130) && ENABLED(SENSORLESS_HOMING)
#include "../../gcode.h"
#include "../../../feature/tmc2130.h"
#include "../../../module/stepper_indirection.h"
inline void tmc2130_get_sgt(TMC2130Stepper &st, const char name) {
SERIAL_CHAR(name);
SERIAL_ECHOPGM(" driver homing sensitivity set to ");
SERIAL_ECHOLN(st.sgt());
}
static void tmc2130_set_sgt(TMC2130Stepper &st, const char name, const int8_t sgt_val) {
inline void tmc2130_set_sgt(TMC2130Stepper &st, const char name, const int8_t sgt_val) {
st.sgt(sgt_val);
tmc2130_get_sgt(st, name);
}
@ -33,7 +41,7 @@ static void tmc2130_set_sgt(TMC2130Stepper &st, const char name, const int8_t sg
/**
* M914: Set SENSORLESS_HOMING sensitivity.
*/
void gcode_M914() {
void GcodeSuite::M914() {
#if ENABLED(X_IS_TMC2130)
if (parser.seen(axis_codes[X_AXIS])) tmc2130_set_sgt(stepperX, 'X', parser.value_int());
else tmc2130_get_sgt(stepperX, 'X');
@ -43,3 +51,5 @@ void gcode_M914() {
else tmc2130_get_sgt(stepperY, 'Y');
#endif
}
#endif // HAVE_TMC2130 && SENSORLESS_HOMING

View file

@ -122,11 +122,6 @@ extern void gcode_M165();
extern void gcode_M350();
extern void gcode_M351();
extern void gcode_M355();
extern void gcode_M906();
extern void gcode_M911();
extern void gcode_M912();
extern void gcode_M913();
extern void gcode_M914();
extern void gcode_M907();
extern void gcode_M908();
extern void gcode_M909();
@ -660,12 +655,6 @@ void GcodeSuite::process_next_command() {
case 900: M900(); break; // M900: Set advance K factor.
#endif
#if ENABLED(HAVE_TMC2130)
case 906: // M906: Set motor current in milliamps using axis codes X, Y, Z, E
gcode_M906();
break;
#endif
case 907: // M907: Set digital trimpot motor current using axis codes.
gcode_M907();
break;
@ -691,24 +680,14 @@ void GcodeSuite::process_next_command() {
#endif // HAS_DIGIPOTSS || DAC_STEPPER_CURRENT
#if ENABLED(HAVE_TMC2130)
case 911: // M911: Report TMC2130 prewarn triggered flags
gcode_M911();
break;
case 912: // M911: Clear TMC2130 prewarn triggered flags
gcode_M912();
break;
case 906: M906(); break; // M906: Set motor current in milliamps using axis codes X, Y, Z, E
case 911: M911(); break; // M911: Report TMC2130 prewarn triggered flags
case 912: M912(); break; // M912: Clear TMC2130 prewarn triggered flags
#if ENABLED(HYBRID_THRESHOLD)
case 913: // M913: Set HYBRID_THRESHOLD speed.
gcode_M913();
break;
case 913: M913(); break; // M913: Set HYBRID_THRESHOLD speed.
#endif
#if ENABLED(SENSORLESS_HOMING)
case 914: // M914: Set SENSORLESS_HOMING sensitivity.
gcode_M914();
break;
case 914: M914(); break; // M914: Set SENSORLESS_HOMING sensitivity.
#endif
#endif