Updates for L64XX
This commit is contained in:
@@ -39,34 +39,34 @@ L64XX_Marlin L64xxManager;
|
||||
|
||||
void echo_yes_no(const bool yes) { serialprintPGM(yes ? PSTR(" YES") : PSTR(" NO ")); }
|
||||
|
||||
char L64XX_Marlin::index_to_axis[MAX_L6470][3] = { "X ", "Y ", "Z ", "X2", "Y2", "Z2", "Z3", "E0", "E1", "E2", "E3", "E4", "E5" };
|
||||
char L64XX_Marlin::index_to_axis[MAX_L64XX][3] = { "X ", "Y ", "Z ", "X2", "Y2", "Z2", "Z3", "E0", "E1", "E2", "E3", "E4", "E5" };
|
||||
|
||||
#define DEBUG_OUT ENABLED(L6470_CHITCHAT)
|
||||
#include "../../core/debug_out.h"
|
||||
|
||||
uint8_t L64XX_Marlin::dir_commands[MAX_L6470]; // array to hold direction command for each driver
|
||||
uint8_t L64XX_Marlin::dir_commands[MAX_L64XX]; // array to hold direction command for each driver
|
||||
|
||||
uint8_t L64XX_Marlin::index_to_dir[MAX_L6470] = { (INVERT_X_DIR) , // 0 X
|
||||
(INVERT_Y_DIR) , // 1 Y
|
||||
(INVERT_Z_DIR) , // 2 Z
|
||||
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
|
||||
(INVERT_X_DIR) ^ (INVERT_X2_VS_X_DIR) , // 3 X2
|
||||
uint8_t L64XX_Marlin::index_to_dir[MAX_L64XX] = { (INVERT_X_DIR), // 0 X
|
||||
(INVERT_Y_DIR), // 1 Y
|
||||
(INVERT_Z_DIR), // 2 Z
|
||||
#if ENABLED(X_DUAL_STEPPER_DRIVERS) // 3 X2
|
||||
(INVERT_X_DIR) ^ (INVERT_X2_VS_X_DIR),
|
||||
#else
|
||||
(INVERT_X_DIR) , // 3 X2
|
||||
(INVERT_X_DIR),
|
||||
#endif
|
||||
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
|
||||
(INVERT_Y_DIR) ^ (INVERT_Y2_VS_Y_DIR) , // 4 Y2
|
||||
#if ENABLED(Y_DUAL_STEPPER_DRIVERS) // 4 Y2
|
||||
(INVERT_Y_DIR) ^ (INVERT_Y2_VS_Y_DIR),
|
||||
#else
|
||||
(INVERT_Y_DIR) , // 4 Y2
|
||||
(INVERT_Y_DIR),
|
||||
#endif
|
||||
(INVERT_Z_DIR) , // 5 Z2
|
||||
(INVERT_Z_DIR) , // 6 Z3
|
||||
(INVERT_E0_DIR) , // 7 E0
|
||||
(INVERT_E1_DIR) , // 8 E1
|
||||
(INVERT_E2_DIR) , // 9 E2
|
||||
(INVERT_E3_DIR) , // 10 E3
|
||||
(INVERT_E4_DIR) , // 11 E4
|
||||
(INVERT_E5_DIR) , // 12 E5
|
||||
(INVERT_Z_DIR), // 5 Z2
|
||||
(INVERT_Z_DIR), // 6 Z3
|
||||
(INVERT_E0_DIR), // 7 E0
|
||||
(INVERT_E1_DIR), // 8 E1
|
||||
(INVERT_E2_DIR), // 9 E2
|
||||
(INVERT_E3_DIR), // 10 E3
|
||||
(INVERT_E4_DIR), // 11 E4
|
||||
(INVERT_E5_DIR), // 12 E5
|
||||
};
|
||||
|
||||
volatile uint8_t L64XX_Marlin::spi_abort = false;
|
||||
@@ -367,7 +367,7 @@ uint8_t L64XX_Marlin::get_user_input(uint8_t &driver_count, L64XX_axis_t axis_in
|
||||
uint8_t driver_count_local = 0; // Can't use "driver_count" directly as a subscript because it's passed by reference
|
||||
if (axis_offset >= 2 || axis_mon[0][0] == 'E') { // Single axis, E0, or E1
|
||||
axis_mon[0][1] = axis_offset + '0';
|
||||
for (j = 0; j < MAX_L6470; j++) { // See how many drivers on this axis
|
||||
for (j = 0; j < MAX_L64XX; j++) { // See how many drivers on this axis
|
||||
const char * const str = index_to_axis[j];
|
||||
if (axis_mon[0][0] == str[0]) {
|
||||
char * const mon = axis_mon[driver_count_local];
|
||||
@@ -380,7 +380,7 @@ uint8_t L64XX_Marlin::get_user_input(uint8_t &driver_count, L64XX_axis_t axis_in
|
||||
}
|
||||
}
|
||||
else if (axis_offset == 0) { // One or more axes
|
||||
for (j = 0; j < MAX_L6470; j++) { // See how many drivers on this axis
|
||||
for (j = 0; j < MAX_L64XX; j++) { // See how many drivers on this axis
|
||||
const char * const str = index_to_axis[j];
|
||||
if (axis_mon[0][0] == str[0]) {
|
||||
char * const mon = axis_mon[driver_count_local];
|
||||
|
@@ -30,21 +30,19 @@
|
||||
|
||||
#define L6470_GETPARAM(P,Q) stepper##Q.GetParam(P)
|
||||
|
||||
#define MAX_L6470 (7 + MAX_EXTRUDERS) // Maximum number of axes in Marlin
|
||||
|
||||
#define dSPIN_STEP_CLOCK 0x58
|
||||
#define dSPIN_STEP_CLOCK_FWD dSPIN_STEP_CLOCK
|
||||
#define dSPIN_STEP_CLOCK_REV dSPIN_STEP_CLOCK+1
|
||||
#define HAS_L64XX_EXTRUDER (AXIS_IS_L64XX(E0) || AXIS_IS_L64XX(E1) || AXIS_IS_L64XX(E2) || AXIS_IS_L64XX(E3) || AXIS_IS_L64XX(E4) || AXIS_IS_L64XX(E5))
|
||||
|
||||
typedef enum : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, E0, E1, E2, E3, E4, E5 } L64XX_axis_t;
|
||||
enum L64XX_axis_t : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, E0, E1, E2, E3, E4, E5, MAX_L64XX };
|
||||
|
||||
class L64XX_Marlin : public L64XXHelper {
|
||||
public:
|
||||
static char index_to_axis[MAX_L6470][3];
|
||||
static char index_to_axis[MAX_L64XX][3];
|
||||
|
||||
static uint8_t index_to_dir[MAX_L6470];
|
||||
static uint8_t dir_commands[MAX_L6470];
|
||||
static uint8_t index_to_dir[MAX_L64XX];
|
||||
static uint8_t dir_commands[MAX_L64XX];
|
||||
|
||||
// Flags to guarantee graceful switch if stepper interrupts L6470 SPI transfer
|
||||
static volatile uint8_t spi_abort;
|
||||
|
Reference in New Issue
Block a user