Commit 222bcf87 authored by MagoKimbra's avatar MagoKimbra

Fix Color Mixing

parent 6f6b1d04
......@@ -93,7 +93,16 @@
224, 0, 0, 0, 0, 0, 0, 0, 0, 1, 255, 255, 128, 0,
0, 0
};
#define STATUS_HOTENDWIDTH 5 //Width in pixels
#define STATUS_HOTENDHEIGHT 12 //Height in pixels
#define STATUS_HOTENDBYTEWIDTH 1 //Width in bytes
const unsigned char hot_nozzle_bmp[] PROGMEM = {
16, 16, 48, 32, 0, 32, 32, 112, 120, 216, 248, 112
};
#else // no COLOR_MIXING_EXTRUDER
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
......
......@@ -44,7 +44,6 @@
#undef USE_BIG_EDIT_FONT
#endif
#if ENABLED(USE_SMALL_INFOFONT)
#include "dogm_font_data_6x9_marlin.h"
#define FONT_STATUSMENU_NAME u8g_font_6x9
......@@ -265,23 +264,55 @@ static void lcd_implementation_clear() { } // Automatically cleared by Picture L
static void _draw_heater_status(int x, int heater) {
bool isBed = heater < 0;
int y = 17 + (isBed ? 1 : 0);
lcd_setFont(FONT_STATUSMENU);
u8g.setPrintPos(x, 7);
lcd_print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5)));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
u8g.setPrintPos(x, 28);
lcd_print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
if (heater >= 0 ? !isHeatingHotend(heater) : !isHeatingBed()) {
u8g.drawBox(x + 7, y, 2, 2);
}
else {
u8g.setColorIndex(0); // white on black
u8g.drawBox(x + 7, y, 2, 2);
u8g.setColorIndex(1); // black on white
}
#ifdef COLOR_MIXING_EXTRUDER
if (isBed) {
u8g.setPrintPos(x, 7);
lcd_print(itostr3(int(degTargetBed()) + 0.5));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
u8g.setPrintPos(x, 28);
lcd_print(itostr3(int(degBed()) + 0.5));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
if (!isHeatingBed()) {
u8g.drawBox(x + 7, y, 2, 2);
}
else {
u8g.setColorIndex(0); // white on black
u8g.drawBox(x + 7, y, 2, 2);
u8g.setColorIndex(1); // black on white
}
}
else {
u8g.setPrintPos(0, 7);
lcd_print('T');
lcd_printPGM(PSTR(LCD_STR_DEGREE));
lcd_print(':');
lcd_print(itostr3(int(degHotend(heater)) + 0.5));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
u8g.setPrintPos(44, 7);
lcd_print('/');
lcd_print(itostr3(int(degTargetHotend(heater)) + 0.5));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
}
#else
u8g.setPrintPos(x, 7);
lcd_print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5)));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
u8g.setPrintPos(x, 28);
lcd_print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
if (heater >= 0 ? !isHeatingHotend(heater) : !isHeatingBed()) {
u8g.drawBox(x + 7, y, 2, 2);
}
else {
u8g.setColorIndex(0); // white on black
u8g.drawBox(x + 7, y, 2, 2);
u8g.setColorIndex(1); // black on white
}
#endif
}
static void lcd_implementation_status_screen() {
......@@ -342,11 +373,11 @@ static void lcd_implementation_status_screen() {
lcd_print(':');
lcd_print(itostr2(time %60));
u8g.setPrintPos(90,47);
u8g.setPrintPos(90, 47);
if (end_time > (60 * 23))
if (end_time > 1380 || end_time == 0)
u8g.print('E--:--');
else if (end_time >= 0) {
else if (end_time > 0) {
u8g.print('E');
u8g.print(itostr2(end_time / 60));
u8g.print(':');
......@@ -356,7 +387,7 @@ static void lcd_implementation_status_screen() {
}
else {
lcd_printPGM(PSTR("S--:--"));
u8g.setPrintPos(90,47);
u8g.setPrintPos(90, 47);
lcd_printPGM(PSTR("E--:--"));
}
#endif
......
......@@ -279,16 +279,16 @@
#if ENABLED(COLOR_MIXING_EXTRUDER)
#if MIXING_EXTRUDER > 5
#if DRIVER_EXTRUDERS > 5
#define enable_e0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); E3_ENABLE_WRITE( E_ENABLE_ON); E4_ENABLE_WRITE( E_ENABLE_ON); E5_ENABLE_WRITE( E_ENABLE_ON); }
#define disable_e0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); E3_ENABLE_WRITE(!E_ENABLE_ON); E4_ENABLE_WRITE(!E_ENABLE_ON); E5_ENABLE_WRITE(!E_ENABLE_ON); }
#elif MIXING_EXTRUDER > 4
#elif DRIVER_EXTRUDERS > 4
#define enable_e0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); E3_ENABLE_WRITE( E_ENABLE_ON); E4_ENABLE_WRITE( E_ENABLE_ON); }
#define disable_e0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); E3_ENABLE_WRITE(!E_ENABLE_ON); E4_ENABLE_WRITE(!E_ENABLE_ON); }
#elif MIXING_EXTRUDER > 3
#elif DRIVER_EXTRUDERS > 3
#define enable_e0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); E3_ENABLE_WRITE( E_ENABLE_ON); }
#define disable_e0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); E3_ENABLE_WRITE(!E_ENABLE_ON); }
#elif MIXING_EXTRUDER > 2
#elif DRIVER_EXTRUDERS > 2
#define enable_e0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); }
#define disable_e0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); }
#else
......
......@@ -274,30 +274,65 @@
/****************************************************************************************/
// List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those!
#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, HEATER_0_PIN, analogInputToDigitalPin(TEMP_0_PIN),
#if HOTENDS > 0
#define _H0_PINS HEATER_0_PIN, analogInputToDigitalPin(TEMP_0_PIN),
#else
#define _H0_PINS
#endif
#if HOTENDS > 1
#define _H1_PINS HEATER_1_PIN, analogInputToDigitalPin(TEMP_1_PIN),
#else
#define _H1_PINS
#endif
#if HOTENDS > 2
#define _H2_PINS HEATER_2_PIN, analogInputToDigitalPin(TEMP_2_PIN),
#else
#define _H2_PINS
#endif
#if HOTENDS > 3
#define _H3_PINS HEATER_3_PIN, analogInputToDigitalPin(TEMP_3_PIN),
#else
#define _H3_PINS
#endif
#if DRIVER_EXTRUDERS > 0
#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN,
#else
#define _E0_PINS
#endif
#if DRIVER_EXTRUDERS > 1
#define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, HEATER_1_PIN, analogInputToDigitalPin(TEMP_1_PIN),
#define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN,
#else
#define _E1_PINS
#endif
#if DRIVER_EXTRUDERS > 2
#define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, HEATER_2_PIN, analogInputToDigitalPin(TEMP_2_PIN),
#define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN,
#else
#define _E2_PINS
#endif
#if DRIVER_EXTRUDERS > 3
#define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN, HEATER_3_PIN, analogInputToDigitalPin(TEMP_3_PIN),
#define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN,
#else
#define _E3_PINS
#endif
#if DRIVER_EXTRUDERS > 4
#define _E4_PINS E4_STEP_PIN, E4_DIR_PIN, E4_ENABLE_PIN,
#else
#define _E4_PINS
#endif
#if DRIVER_EXTRUDERS > 5
#define _E5_PINS E5_STEP_PIN, E5_DIR_PIN, E5_ENABLE_PIN,
#else
#define _E5_PINS
#endif
#define SENSITIVE_PINS { 0, 1, \
X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \
Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \
Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_PROBE_PIN, \
PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, \
_E0_PINS _E1_PINS _E2_PINS _E3_PINS \
_H0_PINS _H1_PINS _H2_PINS _H3_PINS \
_E0_PINS _E1_PINS _E2_PINS _E3_PINS _E4_PINS _E5_PINS \
analogInputToDigitalPin(TEMP_BED_PIN) \
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment