Merge pull request #4893 from thinkyhead/rc_stat_led_check

Define status LED pins without condition
This commit is contained in:
Scott Lahteine 2016-09-25 18:50:47 -05:00 committed by GitHub
commit 9cebbabd05
21 changed files with 1011 additions and 980 deletions

View File

@ -462,10 +462,13 @@
#define HAS_SOLENOID_1 (PIN_EXISTS(SOL1)) #define HAS_SOLENOID_1 (PIN_EXISTS(SOL1))
#define HAS_SOLENOID_2 (PIN_EXISTS(SOL2)) #define HAS_SOLENOID_2 (PIN_EXISTS(SOL2))
#define HAS_SOLENOID_3 (PIN_EXISTS(SOL3)) #define HAS_SOLENOID_3 (PIN_EXISTS(SOL3))
#define HAS_MICROSTEPS (PIN_EXISTS(X_MS1)) #define HAS_MICROSTEPS_X (PIN_EXISTS(X_MS1))
#define HAS_MICROSTEPS_Y (PIN_EXISTS(Y_MS1))
#define HAS_MICROSTEPS_Z (PIN_EXISTS(Z_MS1))
#define HAS_MICROSTEPS_E0 (PIN_EXISTS(E0_MS1)) #define HAS_MICROSTEPS_E0 (PIN_EXISTS(E0_MS1))
#define HAS_MICROSTEPS_E1 (PIN_EXISTS(E1_MS1)) #define HAS_MICROSTEPS_E1 (PIN_EXISTS(E1_MS1))
#define HAS_MICROSTEPS_E2 (PIN_EXISTS(E2_MS1)) #define HAS_MICROSTEPS_E2 (PIN_EXISTS(E2_MS1))
#define HAS_MICROSTEPS (HAS_MICROSTEPS_X || HAS_MICROSTEPS_Y || HAS_MICROSTEPS_Z || HAS_MICROSTEPS_E0 || HAS_MICROSTEPS_E1 || HAS_MICROSTEPS_E2)
#define HAS_STEPPER_RESET (PIN_EXISTS(STEPPER_RESET)) #define HAS_STEPPER_RESET (PIN_EXISTS(STEPPER_RESET))
#define HAS_X_ENABLE (PIN_EXISTS(X_ENABLE)) #define HAS_X_ENABLE (PIN_EXISTS(X_ENABLE))
#define HAS_X2_ENABLE (PIN_EXISTS(X2_ENABLE)) #define HAS_X2_ENABLE (PIN_EXISTS(X2_ENABLE))

View File

@ -781,7 +781,7 @@ void setup_killpin() {
#if ENABLED(FILAMENT_RUNOUT_SENSOR) #if ENABLED(FILAMENT_RUNOUT_SENSOR)
void setup_filrunoutpin() { void setup_filrunoutpin() {
pinMode(FIL_RUNOUT_PIN, INPUT); SET_INPUT(FIL_RUNOUT_PIN);
#if ENABLED(ENDSTOPPULLUP_FIL_RUNOUT) #if ENABLED(ENDSTOPPULLUP_FIL_RUNOUT)
WRITE(FIL_RUNOUT_PIN, HIGH); WRITE(FIL_RUNOUT_PIN, HIGH);
#endif #endif
@ -859,10 +859,9 @@ void servo_init() {
*/ */
#if HAS_STEPPER_RESET #if HAS_STEPPER_RESET
void disableStepperDrivers() { void disableStepperDrivers() {
pinMode(STEPPER_RESET_PIN, OUTPUT); OUT_WRITE(STEPPER_RESET_PIN, LOW); // drive it down to hold in reset motor driver chips
digitalWrite(STEPPER_RESET_PIN, LOW); // drive it down to hold in reset motor driver chips
} }
void enableStepperDrivers() { pinMode(STEPPER_RESET_PIN, INPUT); } // set to input, which allows it to be pulled high by pullups void enableStepperDrivers() { SET_INPUT(STEPPER_RESET_PIN); } // set to input, which allows it to be pulled high by pullups
#endif #endif
#if ENABLED(EXPERIMENTAL_I2CBUS) && I2C_SLAVE_ADDRESS > 0 #if ENABLED(EXPERIMENTAL_I2CBUS) && I2C_SLAVE_ADDRESS > 0
@ -6517,7 +6516,7 @@ inline void gcode_M907() {
if (code_seen(axis_codes[i])) stepper.digipot_current(i, code_value_int()); if (code_seen(axis_codes[i])) stepper.digipot_current(i, code_value_int());
if (code_seen('B')) stepper.digipot_current(4, code_value_int()); if (code_seen('B')) stepper.digipot_current(4, code_value_int());
if (code_seen('S')) for (int i = 0; i <= 4; i++) stepper.digipot_current(i, code_value_int()); if (code_seen('S')) for (int i = 0; i <= 4; i++) stepper.digipot_current(i, code_value_int());
#endif #elif HAS_MOTOR_CURRENT_PWM
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY) #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
if (code_seen('X')) stepper.digipot_current(0, code_value_int()); if (code_seen('X')) stepper.digipot_current(0, code_value_int());
#endif #endif
@ -6527,6 +6526,7 @@ inline void gcode_M907() {
#if PIN_EXISTS(MOTOR_CURRENT_PWM_E) #if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
if (code_seen('E')) stepper.digipot_current(2, code_value_int()); if (code_seen('E')) stepper.digipot_current(2, code_value_int());
#endif #endif
#endif
#if ENABLED(DIGIPOT_I2C) #if ENABLED(DIGIPOT_I2C)
// this one uses actual amps in floating point // this one uses actual amps in floating point
LOOP_XYZE(i) if (code_seen(axis_codes[i])) digipot_i2c_set_current(i, code_value_float()); LOOP_XYZE(i) if (code_seen(axis_codes[i])) digipot_i2c_set_current(i, code_value_float());
@ -8718,8 +8718,8 @@ void prepare_move_to_destination() {
bool new_led = (max_temp > 55.0) ? true : (max_temp < 54.0) ? false : red_led; bool new_led = (max_temp > 55.0) ? true : (max_temp < 54.0) ? false : red_led;
if (new_led != red_led) { if (new_led != red_led) {
red_led = new_led; red_led = new_led;
digitalWrite(STAT_LED_RED, new_led ? HIGH : LOW); WRITE(STAT_LED_RED_PIN, new_led ? HIGH : LOW);
digitalWrite(STAT_LED_BLUE, new_led ? LOW : HIGH); WRITE(STAT_LED_BLUE_PIN, new_led ? LOW : HIGH);
} }
} }
} }
@ -9193,20 +9193,17 @@ void setup() {
#endif #endif
#if ENABLED(Z_PROBE_SLED) && PIN_EXISTS(SLED) #if ENABLED(Z_PROBE_SLED) && PIN_EXISTS(SLED)
pinMode(SLED_PIN, OUTPUT); OUT_WRITE(SLED_PIN, LOW); // turn it off
digitalWrite(SLED_PIN, LOW); // turn it off
#endif // Z_PROBE_SLED #endif // Z_PROBE_SLED
setup_homepin(); setup_homepin();
#ifdef STAT_LED_RED #if PIN_EXISTS(STAT_LED_RED)
pinMode(STAT_LED_RED, OUTPUT); OUT_WRITE(STAT_LED_RED_PIN, LOW); // turn it off
digitalWrite(STAT_LED_RED, LOW); // turn it off
#endif #endif
#ifdef STAT_LED_BLUE #if PIN_EXISTS(STAT_LED_BLUE)
pinMode(STAT_LED_BLUE, OUTPUT); OUT_WRITE(STAT_LED_BLUE_PIN, LOW); // turn it off
digitalWrite(STAT_LED_BLUE, LOW); // turn it off
#endif #endif
lcd_init(); lcd_init();

View File

@ -61,10 +61,6 @@
#error "Z_LATE_ENABLE can't be used with COREXZ." #error "Z_LATE_ENABLE can't be used with COREXZ."
#elif defined(X_HOME_RETRACT_MM) #elif defined(X_HOME_RETRACT_MM)
#error "[XYZ]_HOME_RETRACT_MM settings have been renamed [XYZ]_HOME_BUMP_MM." #error "[XYZ]_HOME_RETRACT_MM settings have been renamed [XYZ]_HOME_BUMP_MM."
#elif defined(BEEPER)
#error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
#elif defined(SDCARDDETECT)
#error "SDCARDDETECT is now SD_DETECT_PIN. Please update your pins definitions."
#elif defined(SDCARDDETECTINVERTED) #elif defined(SDCARDDETECTINVERTED)
#error "SDCARDDETECTINVERTED is now SD_DETECT_INVERTED. Please update your configuration." #error "SDCARDDETECTINVERTED is now SD_DETECT_INVERTED. Please update your configuration."
#elif defined(BTENABLED) #elif defined(BTENABLED)
@ -143,6 +139,16 @@
#error "SCARA is now MORGAN_SCARA. Please update your configuration." #error "SCARA is now MORGAN_SCARA. Please update your configuration."
#elif defined(AUTO_BED_LEVELING_GRID_POINTS) #elif defined(AUTO_BED_LEVELING_GRID_POINTS)
#error "AUTO_BED_LEVELING_GRID_POINTS is now ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y. Please update your configuration." #error "AUTO_BED_LEVELING_GRID_POINTS is now ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y. Please update your configuration."
#elif defined(BEEPER)
#error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
#elif defined(SDCARDDETECT)
#error "SDCARDDETECT is now SD_DETECT_PIN. Please update your pins definitions."
#elif defined(STAT_LED_RED) || defined(STAT_LED_BLUE)
#error "STAT_LED_RED/STAT_LED_BLUE are now STAT_LED_RED_PIN/STAT_LED_BLUE_PIN. Please update your pins definitions."
#elif defined(LCD_PIN_BL)
#error "LCD_PIN_BL is now LCD_BACKLIGHT_PIN. Please update your pins definitions."
#elif defined(LCD_PIN_RESET)
#error "LCD_PIN_RESET is now LCD_RESET_PIN. Please update your pins definitions."
#endif #endif
/** /**
@ -722,6 +728,13 @@
#error "TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT." #error "TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT."
#endif #endif
/**
* Temperature status LEDs
*/
#if ENABLED(TEMP_STAT_LEDS) && !(PIN_EXISTS(STAT_LED_RED) && PIN_EXISTS(STAT_LED_BLUE))
#error "TEMP_STAT_LEDS requires STAT_LED_RED_PIN and STAT_LED_BLUE_PIN."
#endif
/** /**
* Basic 2-nozzle duplication mode * Basic 2-nozzle duplication mode
*/ */

View File

@ -302,16 +302,16 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
// set pin modes // set pin modes
pinMode(chipSelectPin_, OUTPUT); pinMode(chipSelectPin_, OUTPUT);
chipSelectHigh(); chipSelectHigh();
pinMode(SPI_MISO_PIN, INPUT); SET_INPUT(SPI_MISO_PIN);
pinMode(SPI_MOSI_PIN, OUTPUT); SET_OUTPUT(SPI_MOSI_PIN);
pinMode(SPI_SCK_PIN, OUTPUT); SET_OUTPUT(SPI_SCK_PIN);
#if DISABLED(SOFTWARE_SPI) #if DISABLED(SOFTWARE_SPI)
// SS must be in output mode even it is not chip select // SS must be in output mode even it is not chip select
pinMode(SS_PIN, OUTPUT); SET_OUTPUT(SS_PIN);
// set SS high - may be chip select for another SPI device // set SS high - may be chip select for another SPI device
#if SET_SPI_SS_HIGH #if SET_SPI_SS_HIGH
digitalWrite(SS_PIN, HIGH); WRITE(SS_PIN, HIGH);
#endif // SET_SPI_SS_HIGH #endif // SET_SPI_SS_HIGH
// set SCK rate for initialization commands // set SCK rate for initialization commands
spiRate_ = SPI_SD_INIT_RATE; spiRate_ = SPI_SD_INIT_RATE;

View File

@ -2402,7 +2402,6 @@
#define DIO47_DDR DDRF #define DIO47_DDR DDRF
#undef PA0 #undef PA0
#define PA0_PIN PINA0 #define PA0_PIN PINA0
#define PA0_RPORT PINA #define PA0_RPORT PINA

View File

@ -149,8 +149,6 @@
#define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board
#if ENABLED(TEMP_STAT_LEDS) #define STAT_LED_RED_PIN 22
#define STAT_LED_RED 22 #define STAT_LED_BLUE_PIN 32
#define STAT_LED_BLUE 32
#endif
#endif // VIKI2/miniVIKI #endif // VIKI2/miniVIKI

View File

@ -41,16 +41,14 @@
#define DOGLCD_CS 32 #define DOGLCD_CS 32
#define BTN_ENC 12 #define BTN_ENC 12
#if ENABLED(TEMP_STAT_LEDS) #undef STAT_LED_RED_PIN
#undef STAT_LED_RED #undef STAT_LED_BLUE_PIN
#undef STAT_LED_BLUE #define STAT_LED_RED_PIN 64
#define STAT_LED_RED 64 #define STAT_LED_BLUE_PIN 63
#define STAT_LED_BLUE 63
#endif
#elif ENABLED(TEMP_STAT_LEDS) #else
#define STAT_LED_RED 6 #define STAT_LED_RED_PIN 6
#define STAT_LED_BLUE 11 #define STAT_LED_BLUE_PIN 11
#endif #endif

View File

@ -117,6 +117,6 @@
#undef SD_DETECT_PIN #undef SD_DETECT_PIN
#define SD_DETECT_PIN 49 // For easy adapter board #define SD_DETECT_PIN 49 // For easy adapter board
#else #else
#define STAT_LED_RED 32 #define STAT_LED_RED_PIN 32
#define STAT_LED_BLUE 35 #define STAT_LED_BLUE_PIN 35
#endif #endif

View File

@ -115,5 +115,5 @@
// //
// Misc. Functions // Misc. Functions
// //
#define STAT_LED_BLUE -1 #define STAT_LED_BLUE_PIN -1
#define STAT_LED_RED 31 #define STAT_LED_RED_PIN 31

View File

@ -111,8 +111,8 @@
//#define UI1 43 //#define UI1 43
//#define UI2 37 //#define UI2 37
#define STAT_LED_BLUE -1 #define STAT_LED_BLUE_PIN -1
#define STAT_LED_RED 10 // TOOL_0_PWM_PIN #define STAT_LED_RED_PIN 10 // TOOL_0_PWM_PIN
// //
// SD Card // SD Card

View File

@ -134,7 +134,7 @@
// Pins for DOGM SPI LCD Support // Pins for DOGM SPI LCD Support
#define DOGLCD_A0 47 #define DOGLCD_A0 47
#define DOGLCD_CS 45 #define DOGLCD_CS 45
#define LCD_PIN_BL 44 // backlight LED on PA3 #define LCD_BACKLIGHT_PIN 44 // backlight LED on PA3
#define KILL_PIN 12 #define KILL_PIN 12
// GLCD features // GLCD features

View File

@ -120,9 +120,9 @@
#define BEEPER_PIN 25 #define BEEPER_PIN 25
// yellow RED-LED // yellow RED-LED
#define STAT_LED_RED 16 #define STAT_LED_RED_PIN 16
// white BLUE-LED // white BLUE-LED
#define STAT_LED_BLUE 17 #define STAT_LED_BLUE_PIN 17
#endif #endif

View File

@ -131,8 +131,8 @@
#define SDSS 45 #define SDSS 45
#define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test) #define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test)
#if ENABLED(TEMP_STAT_LEDS)
#define STAT_LED_RED 12 //Non-FastIO #define STAT_LED_RED_PIN 12 //Non-FastIO
#define STAT_LED_BLUE 10 //Non-FastIO #define STAT_LED_BLUE_PIN 10 //Non-FastIO
#endif
#endif #endif

View File

@ -117,21 +117,18 @@
#if ENABLED(VIKI2) || ENABLED(miniVIKI) #if ENABLED(VIKI2) || ENABLED(miniVIKI)
#define BEEPER_PIN 32 //FastIO #define BEEPER_PIN 32 //FastIO
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 42 //Non-FastIO #define DOGLCD_A0 42 //Non-FastIO
#define DOGLCD_CS 43 //Non-FastIO #define DOGLCD_CS 43 //Non-FastIO
#define LCD_SCREEN_ROT_180 #define LCD_SCREEN_ROT_180
//The encoder and click button (FastIO Pins) // (FastIO Pins)
#define BTN_EN1 26 #define BTN_EN1 26
#define BTN_EN2 27 #define BTN_EN2 27
#define BTN_ENC 47 #define BTN_ENC 47
#define SDSS 45 #define SDSS 45
#define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test) #define SD_DETECT_PIN -1 // FastIO (Manual says 72)
#if ENABLED(TEMP_STAT_LEDS) #define STAT_LED_RED_PIN 12 //Non-FastIO
#define STAT_LED_RED 12 //Non-FastIO #define STAT_LED_BLUE_PIN 10 //Non-FastIO
#define STAT_LED_BLUE 10 //Non-FastIO
#endif
#endif #endif

View File

@ -169,10 +169,8 @@
#define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board
#if ENABLED(TEMP_STAT_LEDS) #define STAT_LED_RED_PIN 22
#define STAT_LED_RED 22 #define STAT_LED_BLUE_PIN 32
#define STAT_LED_BLUE 32
#endif
#else #else

View File

@ -240,7 +240,7 @@
#define KILL_PIN 41 #define KILL_PIN 41
#if ENABLED(BQ_LCD_SMART_CONTROLLER) #if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define LCD_PIN_BL 39 #define LCD_BACKLIGHT_PIN 39
#endif #endif
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD) #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
@ -280,10 +280,9 @@
#define KILL_PIN 31 #define KILL_PIN 31
#if ENABLED(TEMP_STAT_LEDS) #define STAT_LED_RED_PIN 32
#define STAT_LED_RED 32 #define STAT_LED_BLUE_PIN 35
#define STAT_LED_BLUE 35
#endif
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define BTN_EN1 35 // reverse if the encoder turns the wrong way. #define BTN_EN1 35 // reverse if the encoder turns the wrong way.
#define BTN_EN2 37 #define BTN_EN2 37
@ -294,13 +293,13 @@
#define BEEPER_PIN 23 #define BEEPER_PIN 23
#define DOGLCD_CS 29 #define DOGLCD_CS 29
#define DOGLCD_A0 27 #define DOGLCD_A0 27
#define LCD_PIN_BL 33 #define LCD_BACKLIGHT_PIN 33
#elif ENABLED(MINIPANEL) #elif ENABLED(MINIPANEL)
#define BEEPER_PIN 42 #define BEEPER_PIN 42
// Pins for DOGM SPI LCD Support // Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44 #define DOGLCD_A0 44
#define DOGLCD_CS 66 #define DOGLCD_CS 66
#define LCD_PIN_BL 65 // backlight LED on A11/D65 #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
#define SDSS 53 #define SDSS 53
#define KILL_PIN 64 #define KILL_PIN 64

View File

@ -56,7 +56,7 @@
#if IS_MELZI #if IS_MELZI
#define LED_PIN 27 // On some broken versions of the Sanguino libraries the pin definitions are wrong, so LED_PIN needs to be 28. But you should upgrade your Sanguino libraries! See #368. #define LED_PIN 27 // On some broken versions of the Sanguino libraries the pin definitions are wrong, so LED_PIN needs to be 28. But you should upgrade your Sanguino libraries! See #368.
#elif MB(STB_11) #elif MB(STB_11)
#define LCD_PIN_BL 17 // LCD backlight LED #define LCD_BACKLIGHT_PIN 17 // LCD backlight LED
#endif #endif
#if ENABLED(Z_PROBE_SLED) #if ENABLED(Z_PROBE_SLED)
@ -173,7 +173,7 @@
// Pins for DOGM SPI LCD Support // Pins for DOGM SPI LCD Support
#define DOGLCD_A0 30 #define DOGLCD_A0 30
#define DOGLCD_CS 17 #define DOGLCD_CS 17
#define LCD_PIN_BL 28 // backlight LED on PA3 #define LCD_BACKLIGHT_PIN 28 // backlight LED on PA3
// GLCD features // GLCD features
#define LCD_CONTRAST 1 #define LCD_CONTRAST 1
// Uncomment screen orientation // Uncomment screen orientation

View File

@ -733,19 +733,27 @@ void Stepper::isr() {
void Stepper::init() { void Stepper::init() {
digipot_init(); //Initialize Digipot Motor Current // Init Digipot Motor Current
microstep_init(); //Initialize Microstepping Pins #if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM
digipot_init();
#endif
// initialise TMC Steppers // Init Microstepping Pins
#if HAS_MICROSTEPS
microstep_init();
#endif
// Init TMC Steppers
#if ENABLED(HAVE_TMCDRIVER) #if ENABLED(HAVE_TMCDRIVER)
tmc_init(); tmc_init();
#endif #endif
// initialise L6470 Steppers
// Init L6470 Steppers
#if ENABLED(HAVE_L6470DRIVER) #if ENABLED(HAVE_L6470DRIVER)
L6470_init(); L6470_init();
#endif #endif
// Initialize Dir Pins // Init Dir Pins
#if HAS_X_DIR #if HAS_X_DIR
X_DIR_INIT; X_DIR_INIT;
#endif #endif
@ -777,8 +785,7 @@ void Stepper::init() {
E3_DIR_INIT; E3_DIR_INIT;
#endif #endif
//Initialize Enable Pins - steppers default to disabled. // Init Enable Pins - steppers default to disabled.
#if HAS_X_ENABLE #if HAS_X_ENABLE
X_ENABLE_INIT; X_ENABLE_INIT;
if (!X_ENABLE_ON) X_ENABLE_WRITE(HIGH); if (!X_ENABLE_ON) X_ENABLE_WRITE(HIGH);
@ -787,7 +794,6 @@ void Stepper::init() {
if (!X_ENABLE_ON) X2_ENABLE_WRITE(HIGH); if (!X_ENABLE_ON) X2_ENABLE_WRITE(HIGH);
#endif #endif
#endif #endif
#if HAS_Y_ENABLE #if HAS_Y_ENABLE
Y_ENABLE_INIT; Y_ENABLE_INIT;
if (!Y_ENABLE_ON) Y_ENABLE_WRITE(HIGH); if (!Y_ENABLE_ON) Y_ENABLE_WRITE(HIGH);
@ -796,7 +802,6 @@ void Stepper::init() {
if (!Y_ENABLE_ON) Y2_ENABLE_WRITE(HIGH); if (!Y_ENABLE_ON) Y2_ENABLE_WRITE(HIGH);
#endif #endif
#endif #endif
#if HAS_Z_ENABLE #if HAS_Z_ENABLE
Z_ENABLE_INIT; Z_ENABLE_INIT;
if (!Z_ENABLE_ON) Z_ENABLE_WRITE(HIGH); if (!Z_ENABLE_ON) Z_ENABLE_WRITE(HIGH);
@ -805,7 +810,6 @@ void Stepper::init() {
if (!Z_ENABLE_ON) Z2_ENABLE_WRITE(HIGH); if (!Z_ENABLE_ON) Z2_ENABLE_WRITE(HIGH);
#endif #endif
#endif #endif
#if HAS_E0_ENABLE #if HAS_E0_ENABLE
E0_ENABLE_INIT; E0_ENABLE_INIT;
if (!E_ENABLE_ON) E0_ENABLE_WRITE(HIGH); if (!E_ENABLE_ON) E0_ENABLE_WRITE(HIGH);
@ -823,9 +827,7 @@ void Stepper::init() {
if (!E_ENABLE_ON) E3_ENABLE_WRITE(HIGH); if (!E_ENABLE_ON) E3_ENABLE_WRITE(HIGH);
#endif #endif
// // Init endstops and pullups
// Init endstops and pullups here
//
endstops.init(); endstops.init();
#define _STEP_INIT(AXIS) AXIS ##_STEP_INIT #define _STEP_INIT(AXIS) AXIS ##_STEP_INIT
@ -839,7 +841,7 @@ void Stepper::init() {
#define E_AXIS_INIT(NUM) AXIS_INIT(e## NUM, E## NUM, E) #define E_AXIS_INIT(NUM) AXIS_INIT(e## NUM, E## NUM, E)
// Initialize Step Pins // Init Step Pins
#if HAS_X_STEP #if HAS_X_STEP
#if ENABLED(X_DUAL_STEPPER_DRIVERS) || ENABLED(DUAL_X_CARRIAGE) #if ENABLED(X_DUAL_STEPPER_DRIVERS) || ENABLED(DUAL_X_CARRIAGE)
X2_STEP_INIT; X2_STEP_INIT;
@ -1155,45 +1157,45 @@ void Stepper::report_positions() {
// From Arduino DigitalPotControl example // From Arduino DigitalPotControl example
void Stepper::digitalPotWrite(int address, int value) { void Stepper::digitalPotWrite(int address, int value) {
digitalWrite(DIGIPOTSS_PIN, LOW); // take the SS pin low to select the chip WRITE(DIGIPOTSS_PIN, LOW); // take the SS pin low to select the chip
SPI.transfer(address); // send in the address and value via SPI: SPI.transfer(address); // send in the address and value via SPI:
SPI.transfer(value); SPI.transfer(value);
digitalWrite(DIGIPOTSS_PIN, HIGH); // take the SS pin high to de-select the chip: WRITE(DIGIPOTSS_PIN, HIGH); // take the SS pin high to de-select the chip:
//delay(10); //delay(10);
} }
#endif //HAS_DIGIPOTSS #endif //HAS_DIGIPOTSS
void Stepper::digipot_init() { #if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM
#if HAS_DIGIPOTSS
const uint8_t digipot_motor_current[] = DIGIPOT_MOTOR_CURRENT;
void Stepper::digipot_init() {
#if HAS_DIGIPOTSS
static const uint8_t digipot_motor_current[] = DIGIPOT_MOTOR_CURRENT;
SPI.begin(); SPI.begin();
pinMode(DIGIPOTSS_PIN, OUTPUT); SET_OUTPUT(DIGIPOTSS_PIN);
for (uint8_t i = 0; i < COUNT(digipot_motor_current); i++) { for (uint8_t i = 0; i < COUNT(digipot_motor_current); i++) {
//digitalPotWrite(digipot_ch[i], digipot_motor_current[i]); //digitalPotWrite(digipot_ch[i], digipot_motor_current[i]);
digipot_current(i, digipot_motor_current[i]); digipot_current(i, digipot_motor_current[i]);
} }
#endif #elif HAS_MOTOR_CURRENT_PWM
#if HAS_MOTOR_CURRENT_PWM
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY) #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
pinMode(MOTOR_CURRENT_PWM_XY_PIN, OUTPUT); SET_OUTPUT(MOTOR_CURRENT_PWM_XY_PIN);
digipot_current(0, motor_current_setting[0]); digipot_current(0, motor_current_setting[0]);
#endif #endif
#if PIN_EXISTS(MOTOR_CURRENT_PWM_Z) #if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
pinMode(MOTOR_CURRENT_PWM_Z_PIN, OUTPUT); SET_OUTPUT(MOTOR_CURRENT_PWM_Z_PIN);
digipot_current(1, motor_current_setting[1]); digipot_current(1, motor_current_setting[1]);
#endif #endif
#if PIN_EXISTS(MOTOR_CURRENT_PWM_E) #if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
pinMode(MOTOR_CURRENT_PWM_E_PIN, OUTPUT); SET_OUTPUT(MOTOR_CURRENT_PWM_E_PIN);
digipot_current(2, motor_current_setting[2]); digipot_current(2, motor_current_setting[2]);
#endif #endif
//Set timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise) //Set timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise)
TCCR5B = (TCCR5B & ~(_BV(CS50) | _BV(CS51) | _BV(CS52))) | _BV(CS50); TCCR5B = (TCCR5B & ~(_BV(CS50) | _BV(CS51) | _BV(CS52))) | _BV(CS50);
#endif #endif
} }
void Stepper::digipot_current(uint8_t driver, int current) { void Stepper::digipot_current(uint8_t driver, int current) {
#if HAS_DIGIPOTSS #if HAS_DIGIPOTSS
const uint8_t digipot_ch[] = DIGIPOT_CHANNELS; const uint8_t digipot_ch[] = DIGIPOT_CHANNELS;
digitalPotWrite(digipot_ch[driver], current); digitalPotWrite(digipot_ch[driver], current);
@ -1210,59 +1212,75 @@ void Stepper::digipot_current(uint8_t driver, int current) {
case 2: _WRITE_CURRENT_PWM(MOTOR_CURRENT_PWM_E_PIN); break; case 2: _WRITE_CURRENT_PWM(MOTOR_CURRENT_PWM_E_PIN); break;
#endif #endif
} }
#else
UNUSED(driver);
UNUSED(current);
#endif #endif
} }
void Stepper::microstep_init() { #endif
#if HAS_MICROSTEPS_E1
pinMode(E1_MS1_PIN, OUTPUT);
pinMode(E1_MS2_PIN, OUTPUT);
#endif
#if HAS_MICROSTEPS #if HAS_MICROSTEPS
pinMode(X_MS1_PIN, OUTPUT);
pinMode(X_MS2_PIN, OUTPUT);
pinMode(Y_MS1_PIN, OUTPUT);
pinMode(Y_MS2_PIN, OUTPUT);
pinMode(Z_MS1_PIN, OUTPUT);
pinMode(Z_MS2_PIN, OUTPUT);
pinMode(E0_MS1_PIN, OUTPUT);
pinMode(E0_MS2_PIN, OUTPUT);
const uint8_t microstep_modes[] = MICROSTEP_MODES;
for (uint16_t i = 0; i < COUNT(microstep_modes); i++)
microstep_mode(i, microstep_modes[i]);
#endif
}
/** /**
* Software-controlled Microstepping * Software-controlled Microstepping
*/ */
void Stepper::microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) { void Stepper::microstep_init() {
SET_OUTPUT(X_MS1_PIN);
SET_OUTPUT(X_MS2_PIN);
#if HAS_MICROSTEPS_Y
SET_OUTPUT(Y_MS1_PIN);
SET_OUTPUT(Y_MS2_PIN);
#endif
#if HAS_MICROSTEPS_Z
SET_OUTPUT(Z_MS1_PIN);
SET_OUTPUT(Z_MS2_PIN);
#endif
#if HAS_MICROSTEPS_E0
SET_OUTPUT(E0_MS1_PIN);
SET_OUTPUT(E0_MS2_PIN);
#endif
#if HAS_MICROSTEPS_E1
SET_OUTPUT(E1_MS1_PIN);
SET_OUTPUT(E1_MS2_PIN);
#endif
static const uint8_t microstep_modes[] = MICROSTEP_MODES;
for (uint16_t i = 0; i < COUNT(microstep_modes); i++)
microstep_mode(i, microstep_modes[i]);
}
void Stepper::microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) {
if (ms1 >= 0) switch (driver) { if (ms1 >= 0) switch (driver) {
case 0: digitalWrite(X_MS1_PIN, ms1); break; case 0: digitalWrite(X_MS1_PIN, ms1); break;
#if HAS_MICROSTEPS_Y
case 1: digitalWrite(Y_MS1_PIN, ms1); break; case 1: digitalWrite(Y_MS1_PIN, ms1); break;
#endif
#if HAS_MICROSTEPS_Z
case 2: digitalWrite(Z_MS1_PIN, ms1); break; case 2: digitalWrite(Z_MS1_PIN, ms1); break;
#endif
#if HAS_MICROSTEPS_E0
case 3: digitalWrite(E0_MS1_PIN, ms1); break; case 3: digitalWrite(E0_MS1_PIN, ms1); break;
#endif
#if HAS_MICROSTEPS_E1 #if HAS_MICROSTEPS_E1
case 4: digitalWrite(E1_MS1_PIN, ms1); break; case 4: digitalWrite(E1_MS1_PIN, ms1); break;
#endif #endif
} }
if (ms2 >= 0) switch (driver) { if (ms2 >= 0) switch (driver) {
case 0: digitalWrite(X_MS2_PIN, ms2); break; case 0: digitalWrite(X_MS2_PIN, ms2); break;
#if HAS_MICROSTEPS_Y
case 1: digitalWrite(Y_MS2_PIN, ms2); break; case 1: digitalWrite(Y_MS2_PIN, ms2); break;
#endif
#if HAS_MICROSTEPS_Z
case 2: digitalWrite(Z_MS2_PIN, ms2); break; case 2: digitalWrite(Z_MS2_PIN, ms2); break;
#endif
#if HAS_MICROSTEPS_E0
case 3: digitalWrite(E0_MS2_PIN, ms2); break; case 3: digitalWrite(E0_MS2_PIN, ms2); break;
#if PIN_EXISTS(E1_MS2) #endif
#if HAS_MICROSTEPS_E1
case 4: digitalWrite(E1_MS2_PIN, ms2); break; case 4: digitalWrite(E1_MS2_PIN, ms2); break;
#endif #endif
} }
} }
void Stepper::microstep_mode(uint8_t driver, uint8_t stepping_mode) { void Stepper::microstep_mode(uint8_t driver, uint8_t stepping_mode) {
switch (stepping_mode) { switch (stepping_mode) {
case 1: microstep_ms(driver, MICROSTEP1); break; case 1: microstep_ms(driver, MICROSTEP1); break;
case 2: microstep_ms(driver, MICROSTEP2); break; case 2: microstep_ms(driver, MICROSTEP2); break;
@ -1270,28 +1288,36 @@ void Stepper::microstep_mode(uint8_t driver, uint8_t stepping_mode) {
case 8: microstep_ms(driver, MICROSTEP8); break; case 8: microstep_ms(driver, MICROSTEP8); break;
case 16: microstep_ms(driver, MICROSTEP16); break; case 16: microstep_ms(driver, MICROSTEP16); break;
} }
} }
void Stepper::microstep_readings() { void Stepper::microstep_readings() {
SERIAL_PROTOCOLLNPGM("MS1,MS2 Pins"); SERIAL_PROTOCOLLNPGM("MS1,MS2 Pins");
SERIAL_PROTOCOLPGM("X: "); SERIAL_PROTOCOLPGM("X: ");
SERIAL_PROTOCOL(digitalRead(X_MS1_PIN)); SERIAL_PROTOCOL(READ(X_MS1_PIN));
SERIAL_PROTOCOLLN(digitalRead(X_MS2_PIN)); SERIAL_PROTOCOLLN(READ(X_MS2_PIN));
#if HAS_MICROSTEPS_Y
SERIAL_PROTOCOLPGM("Y: "); SERIAL_PROTOCOLPGM("Y: ");
SERIAL_PROTOCOL(digitalRead(Y_MS1_PIN)); SERIAL_PROTOCOL(READ(Y_MS1_PIN));
SERIAL_PROTOCOLLN(digitalRead(Y_MS2_PIN)); SERIAL_PROTOCOLLN(READ(Y_MS2_PIN));
#endif
#if HAS_MICROSTEPS_Z
SERIAL_PROTOCOLPGM("Z: "); SERIAL_PROTOCOLPGM("Z: ");
SERIAL_PROTOCOL(digitalRead(Z_MS1_PIN)); SERIAL_PROTOCOL(READ(Z_MS1_PIN));
SERIAL_PROTOCOLLN(digitalRead(Z_MS2_PIN)); SERIAL_PROTOCOLLN(READ(Z_MS2_PIN));
#endif
#if HAS_MICROSTEPS_E0
SERIAL_PROTOCOLPGM("E0: "); SERIAL_PROTOCOLPGM("E0: ");
SERIAL_PROTOCOL(digitalRead(E0_MS1_PIN)); SERIAL_PROTOCOL(READ(E0_MS1_PIN));
SERIAL_PROTOCOLLN(digitalRead(E0_MS2_PIN)); SERIAL_PROTOCOLLN(READ(E0_MS2_PIN));
#endif
#if HAS_MICROSTEPS_E1 #if HAS_MICROSTEPS_E1
SERIAL_PROTOCOLPGM("E1: "); SERIAL_PROTOCOLPGM("E1: ");
SERIAL_PROTOCOL(digitalRead(E1_MS1_PIN)); SERIAL_PROTOCOL(READ(E1_MS1_PIN));
SERIAL_PROTOCOLLN(digitalRead(E1_MS2_PIN)); SERIAL_PROTOCOLLN(READ(E1_MS2_PIN));
#endif #endif
} }
#endif // HAS_MICROSTEPS
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

View File

@ -239,13 +239,16 @@ class Stepper {
// //
static FORCE_INLINE bool motor_direction(AxisEnum axis) { return TEST(last_direction_bits, axis); } static FORCE_INLINE bool motor_direction(AxisEnum axis) { return TEST(last_direction_bits, axis); }
#if HAS_DIGIPOTSS #if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM
static void digitalPotWrite(int address, int value); static void digitalPotWrite(int address, int value);
#endif
static void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2);
static void digipot_current(uint8_t driver, int current); static void digipot_current(uint8_t driver, int current);
#endif
#if HAS_MICROSTEPS
static void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2);
static void microstep_mode(uint8_t driver, uint8_t stepping); static void microstep_mode(uint8_t driver, uint8_t stepping);
static void microstep_readings(); static void microstep_readings();
#endif
#if ENABLED(Z_DUAL_ENDSTOPS) #if ENABLED(Z_DUAL_ENDSTOPS)
static FORCE_INLINE void set_homing_flag(bool state) { performing_homing = state; } static FORCE_INLINE void set_homing_flag(bool state) { performing_homing = state; }
@ -380,7 +383,10 @@ class Stepper {
} }
static void digipot_init(); static void digipot_init();
#if HAS_MICROSTEPS
static void microstep_init(); static void microstep_init();
#endif
}; };

View File

@ -52,8 +52,7 @@
int dac_init() { int dac_init() {
#if PIN_EXISTS(DAC_DISABLE) #if PIN_EXISTS(DAC_DISABLE)
pinMode(DAC_DISABLE_PIN, OUTPUT); OUT_WRITE(DAC_DISABLE_PIN, LOW); // set pin low to enable DAC
digitalWrite(DAC_DISABLE_PIN, LOW); // set pin low to enable DAC
#endif #endif
mcp4728_init(); mcp4728_init();

View File

@ -220,14 +220,12 @@ void lcd_printPGM(const char* str) {
// Initialize or re-initializw the LCD // Initialize or re-initializw the LCD
static void lcd_implementation_init() { static void lcd_implementation_init() {
#if defined(LCD_PIN_BL) && LCD_PIN_BL > -1 // Enable LCD backlight #if PIN_EXISTS(LCD_BACKLIGHT) // Enable LCD backlight
pinMode(LCD_PIN_BL, OUTPUT); OUT_WRITE(LCD_BACKLIGHT_PIN, HIGH);
digitalWrite(LCD_PIN_BL, HIGH);
#endif #endif
#if defined(LCD_PIN_RESET) && LCD_PIN_RESET > -1 #if PIN_EXISTS(LCD_RESET)
pinMode(LCD_PIN_RESET, OUTPUT); OUT_WRITE(LCD_RESET_PIN, HIGH);
digitalWrite(LCD_PIN_RESET, HIGH);
#endif #endif
#if DISABLED(MINIPANEL) // setContrast not working for Mini Panel #if DISABLED(MINIPANEL) // setContrast not working for Mini Panel