From a33964fc5189358a8dc76148423fd16fd699a3be Mon Sep 17 00:00:00 2001 From: Markus Hitter Date: Sun, 24 Jul 2011 20:46:12 +0200 Subject: [PATCH] Clean up enable pin handling. This includes: - Initialize them in mendel.c. - While running, switch the pin only. - Sort mendel.c the same order as in pinio.h. - Remove the requirement of a parameter for this flag, like it's with all other flags. --- mendel.c | 68 +++++++++++++++++++++++++++++++++++++++----------------- pinio.h | 52 +++++++++++++++++++++++-------------------- 2 files changed, 76 insertions(+), 44 deletions(-) diff --git a/mendel.c b/mendel.c index 67d6a02..d0c3361 100644 --- a/mendel.c +++ b/mendel.c @@ -67,16 +67,6 @@ void io_init(void) { // setup I/O pins - // Common Stepper Enable - #ifdef STEPPER_ENABLE_PIN - #ifdef STEPPER_ENABLE_INVERT - WRITE(STEPPER_ENABLE_PIN, 0); - #else - WRITE(STEPPER_ENABLE_PIN, 1); - #endif - SET_OUTPUT(STEPPER_ENABLE_PIN); - #endif - // X Stepper WRITE(X_STEP_PIN, 0); SET_OUTPUT(X_STEP_PIN); WRITE(X_DIR_PIN, 0); SET_OUTPUT(X_DIR_PIN); @@ -96,9 +86,6 @@ void io_init(void) { WRITE(X_MAX_PIN, 0); #endif #endif - #ifdef X_ENABLE_PIN - WRITE(X_ENABLE_PIN, 1); SET_OUTPUT(X_ENABLE_PIN); - #endif // Y Stepper WRITE(Y_STEP_PIN, 0); SET_OUTPUT(Y_STEP_PIN); @@ -119,9 +106,6 @@ void io_init(void) { WRITE(Y_MAX_PIN, 0); #endif #endif - #ifdef Y_ENABLE_PIN - WRITE(Y_ENABLE_PIN, 1); SET_OUTPUT(Y_ENABLE_PIN); - #endif // Z Stepper #if defined Z_STEP_PIN && defined Z_DIR_PIN @@ -144,16 +128,60 @@ void io_init(void) { WRITE(Z_MAX_PIN, 0); #endif #endif - #ifdef Z_ENABLE_PIN - WRITE(Z_ENABLE_PIN, 1); SET_OUTPUT(Z_ENABLE_PIN); - #endif #if defined E_STEP_PIN && defined E_DIR_PIN WRITE(E_STEP_PIN, 0); SET_OUTPUT(E_STEP_PIN); WRITE(E_DIR_PIN, 0); SET_OUTPUT(E_DIR_PIN); #endif + + // Common Stepper Enable + #ifdef STEPPER_ENABLE_PIN + #ifdef STEPPER_ENABLE_INVERT + WRITE(STEPPER_ENABLE_PIN, 0); + #else + WRITE(STEPPER_ENABLE_PIN, 1); + #endif + SET_OUTPUT(STEPPER_ENABLE_PIN); + #endif + + // X Stepper Enable + #ifdef X_ENABLE_PIN + #ifdef X_INVERT_ENABLE + WRITE(X_ENABLE_PIN, 0); + #else + WRITE(X_ENABLE_PIN, 1); + #endif + SET_OUTPUT(X_ENABLE_PIN); + #endif + + // Y Stepper Enable + #ifdef Y_ENABLE_PIN + #ifdef Y_INVERT_ENABLE + WRITE(Y_ENABLE_PIN, 0); + #else + WRITE(Y_ENABLE_PIN, 1); + #endif + SET_OUTPUT(Y_ENABLE_PIN); + #endif + + // Z Stepper Enable + #ifdef Z_ENABLE_PIN + #ifdef Z_INVERT_ENABLE + WRITE(Z_ENABLE_PIN, 0); + #else + WRITE(Z_ENABLE_PIN, 1); + #endif + SET_OUTPUT(Z_ENABLE_PIN); + #endif + + // E Stepper Enable #ifdef E_ENABLE_PIN - WRITE(E_ENABLE_PIN, 1); SET_OUTPUT(E_ENABLE_PIN); + #ifdef E_INVERT_ENABLE + WRITE(E_ENABLE_PIN, 0); + #else + WRITE(E_ENABLE_PIN, 1); + #endif + SET_OUTPUT(E_ENABLE_PIN); #endif // setup PWM timers: fast PWM, no prescaler diff --git a/pinio.h b/pinio.h index 1d9a6d7..4ef5c7b 100644 --- a/pinio.h +++ b/pinio.h @@ -7,22 +7,6 @@ #include "config.h" -#ifndef X_INVERT_ENABLE - #define X_INVERT_ENABLE 0 -#endif - -#ifndef Y_INVERT_ENABLE - #define Y_INVERT_ENABLE 0 -#endif - -#ifndef Z_INVERT_ENABLE - #define Z_INVERT_ENABLE 0 -#endif - -#ifndef E_INVERT_ENABLE - #define E_INVERT_ENABLE 0 -#endif - /* Power */ @@ -169,32 +153,52 @@ Stepper Enable Pins #endif #ifdef X_ENABLE_PIN - #define x_enable() do { WRITE(X_ENABLE_PIN, X_INVERT_ENABLE); SET_OUTPUT(X_ENABLE_PIN); } while (0) - #define x_disable() do { WRITE(X_ENABLE_PIN, X_INVERT_ENABLE ^ 1); SET_OUTPUT(X_ENABLE_PIN); } while (0) + #ifdef X_INVERT_ENABLE + #define x_enable() do { WRITE(X_ENABLE_PIN, 0); } while (0) + #define x_disable() do { WRITE(X_ENABLE_PIN, 1); } while (0) + #else + #define x_enable() do { WRITE(X_ENABLE_PIN, 1); } while (0) + #define x_disable() do { WRITE(X_ENABLE_PIN, 0); } while (0) + #endif #else #define x_enable() do { } while (0) #define x_disable() do { } while (0) #endif #ifdef Y_ENABLE_PIN - #define y_enable() do { WRITE(Y_ENABLE_PIN, Y_INVERT_ENABLE); SET_OUTPUT(Y_ENABLE_PIN); } while (0) - #define y_disable() do { WRITE(Y_ENABLE_PIN, Y_INVERT_ENABLE ^ 1); SET_OUTPUT(Y_ENABLE_PIN); } while (0) + #ifdef Y_INVERT_ENABLE + #define y_enable() do { WRITE(Y_ENABLE_PIN, 0); } while (0) + #define y_disable() do { WRITE(Y_ENABLE_PIN, 1); } while (0) + #else + #define y_enable() do { WRITE(Y_ENABLE_PIN, 1); } while (0) + #define y_disable() do { WRITE(Y_ENABLE_PIN, 0); } while (0) + #endif #else #define y_enable() do { } while (0) #define y_disable() do { } while (0) #endif #ifdef Z_ENABLE_PIN - #define z_enable() do { WRITE(Z_ENABLE_PIN, Z_INVERT_ENABLE); SET_OUTPUT(Z_ENABLE_PIN); } while (0) - #define z_disable() do { WRITE(Z_ENABLE_PIN, Z_INVERT_ENABLE ^ 1); SET_OUTPUT(Z_ENABLE_PIN); } while (0) + #ifdef Z_INVERT_ENABLE + #define z_enable() do { WRITE(Z_ENABLE_PIN, 0); } while (0) + #define z_disable() do { WRITE(Z_ENABLE_PIN, 1); } while (0) + #else + #define z_enable() do { WRITE(Z_ENABLE_PIN, 1); } while (0) + #define z_disable() do { WRITE(Z_ENABLE_PIN, 0); } while (0) + #endif #else #define z_enable() do { } while (0) #define z_disable() do { } while (0) #endif #ifdef E_ENABLE_PIN - #define e_enable() do { WRITE(E_ENABLE_PIN, E_INVERT_ENABLE); SET_OUTPUT(E_ENABLE_PIN); } while (0) - #define e_disable() do { WRITE(E_ENABLE_PIN, E_INVERT_ENABLE ^ 1); SET_OUTPUT(E_ENABLE_PIN); } while (0) + #ifdef E_INVERT_ENABLE + #define e_enable() do { WRITE(E_ENABLE_PIN, 0); } while (0) + #define e_disable() do { WRITE(E_ENABLE_PIN, 1); } while (0) + #else + #define e_enable() do { WRITE(E_ENABLE_PIN, 1); } while (0) + #define e_disable() do { WRITE(E_ENABLE_PIN, 0); } while (0) + #endif #else #define e_enable() do { } while (0) #define e_disable() do { } while (0)