From 6eeea402e4564dcdcd4bce24983ae1677894217b Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Fri, 1 Sep 2017 14:06:54 +0200 Subject: [PATCH] initial --- Firmware/Marlin_main.cpp | 13 +++++++++---- Firmware/pins.h | 2 ++ Firmware/ultralcd.cpp | 10 +++++++--- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index b1f2a5f55..a6c5f9699 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4775,8 +4775,12 @@ Sigma_Exit: { if(code_seen('S')) { + saved_feedmultiply = feedmultiply; feedmultiply = code_value() ; } + if (code_seen('R')) { //restore + feedmultiply = saved_feedmultiply; + } } break; case 221: // M221 S- set extrude factor override percentage @@ -5659,6 +5663,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp pinMode(E_MUX0_PIN, OUTPUT); pinMode(E_MUX1_PIN, OUTPUT); + pinMode(E_MUX2_PIN, OUTPUT); delay(100); SERIAL_ECHO_START; @@ -5668,22 +5673,22 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp case 1: WRITE(E_MUX0_PIN, HIGH); WRITE(E_MUX1_PIN, LOW); - + WRITE(E_MUX2_PIN, LOW); break; case 2: WRITE(E_MUX0_PIN, LOW); WRITE(E_MUX1_PIN, HIGH); - + WRITE(E_MUX2_PIN, LOW); break; case 3: WRITE(E_MUX0_PIN, HIGH); WRITE(E_MUX1_PIN, HIGH); - + WRITE(E_MUX2_PIN, LOW); break; default: WRITE(E_MUX0_PIN, LOW); WRITE(E_MUX1_PIN, LOW); - + WRITE(E_MUX2_PIN, LOW); break; } delay(100); diff --git a/Firmware/pins.h b/Firmware/pins.h index 68375db79..9a979fdd3 100644 --- a/Firmware/pins.h +++ b/Firmware/pins.h @@ -67,6 +67,7 @@ #define E_MUX0_PIN 17 #define E_MUX1_PIN 16 +#define E_MUX2_PIN 84 #endif @@ -228,6 +229,7 @@ #define E_MUX0_PIN 17 #define E_MUX1_PIN 16 +#define E_MUX2_PIN 84 #endif diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index b0fd89638..a84df75d1 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -3264,26 +3264,29 @@ void change_extr(int extr) { //switches multiplexer for extruders pinMode(E_MUX0_PIN, OUTPUT); pinMode(E_MUX1_PIN, OUTPUT); + pinMode(E_MUX2_PIN, OUTPUT); switch (extr) { case 1: WRITE(E_MUX0_PIN, HIGH); WRITE(E_MUX1_PIN, LOW); - + WRITE(E_MUX2_PIN, LOW); break; case 2: WRITE(E_MUX0_PIN, LOW); WRITE(E_MUX1_PIN, HIGH); - + WRITE(E_MUX2_PIN, LOW); break; case 3: WRITE(E_MUX0_PIN, HIGH); WRITE(E_MUX1_PIN, HIGH); + WRITE(E_MUX2_PIN, LOW); break; default: WRITE(E_MUX0_PIN, LOW); WRITE(E_MUX1_PIN, LOW); + WRITE(E_MUX2_PIN, LOW); break; } @@ -3291,7 +3294,8 @@ void change_extr(int extr) { //switches multiplexer for extruders } static int get_ext_nr() { //reads multiplexer input pins and return current extruder number (counted from 0) - return(2 * READ(E_MUX1_PIN) + READ(E_MUX0_PIN)); + return(4 * READ(E_MUX2_PIN) + 2 * READ(E_MUX1_PIN) + READ(E_MUX0_PIN)); + //return(2 * READ(E_MUX1_PIN) + READ(E_MUX0_PIN)); }