Introduce stepper_enable() and stepper_disable().

This allows to heat up with disables steppers, even if all steppers
share a common enable pin.
This commit is contained in:
Markus Hitter 2011-07-24 19:34:59 +02:00
parent b4ad459e86
commit b45969e57a
5 changed files with 25 additions and 14 deletions

1
dda.c
View File

@ -232,6 +232,7 @@ void dda_create(DDA *dda, TARGET *target) {
// get steppers ready to go
steptimeout = 0;
power_on();
stepper_enable();
x_enable();
y_enable();
// Z is enabled in dda_start()

View File

@ -377,6 +377,7 @@ void process_gcode_command() {
timer_stop();
queue_flush();
stepper_disable();
x_disable();
y_disable();
z_disable();
@ -395,6 +396,7 @@ void process_gcode_command() {
break;
// M84- stop idle hold
case 84:
stepper_disable();
x_disable();
y_disable();
z_disable();
@ -675,6 +677,7 @@ void process_gcode_command() {
//? This one is pointless in Teacup. Implemented to calm the RepRap gurus.
//?
power_on();
stepper_enable();
x_enable();
y_enable();
z_enable();
@ -690,6 +693,7 @@ void process_gcode_command() {
// wait for all moves to complete
queue_wait();
#endif
stepper_disable();
x_disable();
y_disable();
z_disable();

6
home.c
View File

@ -34,6 +34,7 @@ void home() {
void home_x_negative() {
power_on();
queue_wait();
stepper_enable();
x_enable();
#if defined X_MIN_PIN
@ -82,6 +83,7 @@ void home_x_negative() {
void home_x_positive() {
power_on();
queue_wait();
stepper_enable();
x_enable();
#if defined X_MAX_PIN
@ -130,6 +132,7 @@ void home_x_positive() {
void home_y_negative() {
power_on();
queue_wait();
stepper_enable();
y_enable();
#if defined Y_MIN_PIN
@ -178,6 +181,7 @@ void home_y_negative() {
void home_y_positive() {
power_on();
queue_wait();
stepper_enable();
y_enable();
#if defined Y_MAX_PIN
@ -226,6 +230,7 @@ void home_y_positive() {
void home_z_negative() {
power_on();
queue_wait();
stepper_enable();
z_enable();
#if defined Z_MIN_PIN
@ -275,6 +280,7 @@ void home_z_negative() {
void home_z_positive() {
power_on();
queue_wait();
stepper_enable();
z_enable();
#if defined Z_MAX_PIN

15
pinio.c
View File

@ -2,13 +2,6 @@
void power_on() {
#ifdef STEPPER_ENABLE_PIN
#ifdef STEPPER_ENABLE_INVERT
WRITE(STEPPER_ENABLE_PIN, 0);
#else
WRITE(STEPPER_ENABLE_PIN, 1);
#endif
#endif
#ifdef PS_ON_PIN
WRITE(PS_ON_PIN, 0);
SET_OUTPUT(PS_ON_PIN);
@ -17,17 +10,11 @@ void power_on() {
void power_off() {
stepper_disable();
x_disable();
y_disable();
z_disable();
#ifdef STEPPER_ENABLE_PIN
#ifdef STEPPER_ENABLE_INVERT
WRITE(STEPPER_ENABLE_PIN, 1);
#else
WRITE(STEPPER_ENABLE_PIN, 0);
#endif
#endif
#ifdef PS_ON_PIN
SET_INPUT(PS_ON_PIN);
#endif

13
pinio.h
View File

@ -155,6 +155,19 @@ End Step - All Steppers
Stepper Enable Pins
*/
#ifdef STEPPER_ENABLE_PIN
#ifdef STEPPER_ENABLE_INVERT
#define stepper_enable() do { WRITE(STEPPER_ENABLE_PIN, 0); } while (0)
#define stepper_disable() do { WRITE(STEPPER_ENABLE_PIN, 1); } while (0)
#else
#define stepper_enable() do { WRITE(STEPPER_ENABLE_PIN, 1); } while (0)
#define stepper_disable() do { WRITE(STEPPER_ENABLE_PIN, 0); } while (0)
#endif
#else
#define stepper_enable() do { } while (0)
#define stepper_disable() do { } while (0)
#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)