Erik van der Zalm 13 лет назад
Родитель
Сommit
2e8e8878e5
5 измененных файлов: 2052 добавлений и 2050 удалений
  1. 245
    245
      Marlin/Configuration.h
  2. 1235
    1235
      Marlin/Marlin.pde
  3. 503
    501
      Marlin/temperature.cpp
  4. 58
    58
      Marlin/temperature.h
  5. 11
    11
      Marlin/ultralcd.pde

+ 245
- 245
Marlin/Configuration.h Просмотреть файл

@@ -1,245 +1,245 @@
1
-#ifndef CONFIGURATION_H
2
-#define CONFIGURATION_H
3
-
4
-//#define DEBUG_STEPS
5
-
6
-// BASIC SETTINGS: select your board type, thermistor type, axis scaling, and endstop configuration
7
-
8
-//// The following define selects which electronics board you have. Please choose the one that matches your setup
9
-// MEGA/RAMPS up to 1.2 = 3,
10
-// RAMPS 1.3 = 33
11
-// Gen6 = 5,
12
-// Sanguinololu 1.2 and above = 62
13
-// Ultimaker = 7,
14
-#define MOTHERBOARD 7
15
-//#define MOTHERBOARD 5
16
-
17
-
18
-//// Thermistor settings:
19
-// 1 is 100k thermistor
20
-// 2 is 200k thermistor
21
-// 3 is mendel-parts thermistor
22
-// 4 is 10k thermistor
23
-// 5 is ParCan supplied 104GT-2 100K
24
-// 6 is EPCOS 100k
25
-// 7 is 100k Honeywell thermistor 135-104LAG-J01
26
-#define THERMISTORHEATER_1 3
27
-#define THERMISTORHEATER_2 3
28
-#define THERMISTORBED 3
29
-
30
-//#define HEATER_0_USES_THERMISTOR
31
-//#define HEATER_1_USES_THERMISTOR
32
-#define HEATER_0_USES_AD595
33
-//#define HEATER_1_USES_AD595
34
-
35
-// Select one of these only to define how the bed temp is read.
36
-//#define BED_USES_THERMISTOR
37
-//#define BED_USES_AD595
38
-
39
-#define HEATER_CHECK_INTERVAL 50
40
-#define BED_CHECK_INTERVAL 5000
41
-
42
-
43
-//// Endstop Settings
44
-#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
45
-// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
46
-const bool ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops. 
47
-// For optos H21LOB set to true, for Mendel-Parts newer optos TCST2103 set to false
48
-
49
-// This determines the communication speed of the printer
50
-#define BAUDRATE 250000
51
-//#define BAUDRATE 115200
52
-//#define BAUDRATE 230400
53
-
54
-// Comment out (using // at the start of the line) to disable SD support:
55
-
56
-// #define ULTRA_LCD  //any lcd 
57
-
58
-#define ULTIPANEL
59
-#define ULTIPANEL
60
-#ifdef ULTIPANEL
61
- //#define NEWPANEL  //enable this if you have a click-encoder panel
62
- #define SDSUPPORT
63
- #define ULTRA_LCD
64
- #define LCD_WIDTH 20
65
-#define LCD_HEIGHT 4
66
-#else //no panel but just lcd 
67
-  #ifdef ULTRA_LCD
68
-    #define LCD_WIDTH 16
69
-    #define LCD_HEIGHT 2
70
-  #endif
71
-#endif
72
-
73
-
74
-//#define SDSUPPORT // Enable SD Card Support in Hardware Console
75
-
76
-
77
-
78
-const int dropsegments=5; //everything with this number of steps  will be ignored as move
79
-
80
-//// ADVANCED SETTINGS - to tweak parameters
81
-
82
-#include "thermistortables.h"
83
-
84
-// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
85
-#define X_ENABLE_ON 0
86
-#define Y_ENABLE_ON 0
87
-#define Z_ENABLE_ON 0
88
-#define E_ENABLE_ON 0
89
-
90
-// Disables axis when it's not being used.
91
-#define DISABLE_X false
92
-#define DISABLE_Y false
93
-#define DISABLE_Z false
94
-#define DISABLE_E false
95
-
96
-// Inverting axis direction
97
-#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
98
-#define INVERT_Y_DIR false   // for Mendel set to true, for Orca set to false
99
-#define INVERT_Z_DIR true    // for Mendel set to false, for Orca set to true
100
-#define INVERT_E_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
101
-
102
-//// ENDSTOP SETTINGS:
103
-// Sets direction of endstops when homing; 1=MAX, -1=MIN
104
-#define X_HOME_DIR -1
105
-#define Y_HOME_DIR -1
106
-#define Z_HOME_DIR -1
107
-
108
-#define min_software_endstops false //If true, axis won't move to coordinates less than zero.
109
-#define max_software_endstops false  //If true, axis won't move to coordinates greater than the defined lengths below.
110
-#define X_MAX_LENGTH 210
111
-#define Y_MAX_LENGTH 210
112
-#define Z_MAX_LENGTH 210
113
-
114
-//// MOVEMENT SETTINGS
115
-#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
116
-//note: on bernhards ultimaker 200 200 12 are working well.
117
-#define HOMING_FEEDRATE {50*60, 50*60, 12*60, 0}  // set the homing speeds
118
-//the followint checks if an extrusion is existent in the move. if _not_, the speed of the move is set to the maximum speed. 
119
-//!!!!!!Use only if you know that your printer works at the maximum declared speeds.
120
-// works around the skeinforge cool-bug. There all moves are slowed to have a minimum layer time. However slow travel moves= ooze
121
-#define TRAVELING_AT_MAXSPEED  
122
-#define AXIS_RELATIVE_MODES {false, false, false, false}
123
-
124
-#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
125
-
126
-// default settings 
127
-
128
-#define DEFAULT_AXIS_STEPS_PER_UNIT   {79.87220447,79.87220447,200*8/3,14}                    // default steps per unit for ultimaker 
129
-#define DEFAULT_MAX_FEEDRATE          {160*60, 160*60, 10*60, 500000}        
130
-#define DEFAULT_MAX_ACCELERATION      {9000,9000,150,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
131
-
132
-#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves 
133
-#define DEFAULT_RETRACT_ACCELERATION  7000   // X, Y, Z and E max acceleration in mm/s^2 for r retracts
134
-
135
-#define DEFAULT_MINIMUMFEEDRATE       10     // minimum feedrate
136
-#define DEFAULT_MINTRAVELFEEDRATE     10
137
-
138
-// minimum time in microseconds that a movement needs to take if the buffer is emptied.   Increase this number if you see blobs while printing high speed & high detail.  It will slowdown on the detailed stuff.
139
-#define DEFAULT_MINSEGMENTTIME        20000
140
-#define DEFAULT_XYJERK                30.0*60    
141
-#define DEFAULT_ZJERK                 10.0*60
142
-
143
-
144
-// The watchdog waits for the watchperiod in milliseconds whenever an M104 or M109 increases the target temperature
145
-//this enables the watchdog interrupt.
146
-#define USE_WATCHDOG
147
-//you cannot reboot on a mega2560 due to a bug in he bootloader. Hence, you have to reset manually, and this is done hereby:
148
-#define RESET_MANUAL
149
-
150
-#define WATCHDOG_TIMEOUT 4
151
-
152
-
153
-
154
-//// Experimental watchdog and minimal temp
155
-// The watchdog waits for the watchperiod in milliseconds whenever an M104 or M109 increases the target temperature
156
-// If the temperature has not increased at the end of that period, the target temperature is set to zero. It can be reset with another M104/M109
157
-//#define WATCHPERIOD 5000 //5 seconds
158
-
159
-// Actual temperature must be close to target for this long before M109 returns success
160
-//#define TEMP_RESIDENCY_TIME 20  // (seconds)
161
-//#define TEMP_HYSTERESIS 5       // (C°) range of +/- temperatures considered "close" to the target one
162
-
163
-//// The minimal temperature defines the temperature below which the heater will not be enabled
164
-#define HEATER_0_MINTEMP 5
165
-//#define HEATER_1_MINTEMP 5
166
-//#define BED_MINTEMP 5
167
-
168
-
169
-// When temperature exceeds max temp, your heater will be switched off.
170
-// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
171
-// You should use MINTEMP for thermistor short/failure protection.
172
-#define HEATER_0_MAXTEMP 275
173
-//#define_HEATER_1_MAXTEMP 275
174
-//#define BED_MAXTEMP 150
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
-#define PIDTEMP
183
-#ifdef PIDTEMP
184
-  /// PID settings:
185
-  // Uncomment the following line to enable PID support.
186
-  //#define SMOOTHING
187
-  //#define SMOOTHFACTOR 5.0
188
-  //float current_raw_average=0;
189
-    #define K1 0.95 //smoothing of the PID
190
-  //#define PID_DEBUG // Sends debug data to the serial port. 
191
-  //#define PID_OPENLOOP 1 // Puts PID in open loop. M104 sets the output power in %
192
-  #define PID_MAX 255 // limits current to nozzle
193
-  #define PID_INTEGRAL_DRIVE_MAX 255
194
-  #define PID_dT 0.1
195
- //machine with red silicon: 1950:45 second ; with fan fully blowin 3000:47
196
-
197
-  #define PID_CRITIAL_GAIN 3000
198
-  #define PID_SWING_AT_CRITIAL 45 //seconds
199
-  #define PIDIADD 5
200
-  /*
201
-  //PID according to Ziegler-Nichols method
202
-  float Kp = 0.6*PID_CRITIAL_GAIN; 
203
-  float Ki =PIDIADD+2*Kp/PID_SWING_AT_CRITIAL*PID_dT;  
204
-  float Kd = Kp*PID_SWING_AT_CRITIAL/8./PID_dT;  
205
-  */
206
-  //PI according to Ziegler-Nichols method
207
-  #define  DEFAULT_Kp (PID_CRITIAL_GAIN/2.2) 
208
-  #define  DEFAULT_Ki (1.2*Kp/PID_SWING_AT_CRITIAL*PID_dT)
209
-  #define  DEFAULT_Kd (0)
210
-  
211
-  #define PID_ADD_EXTRUSION_RATE  
212
-  #ifdef PID_ADD_EXTRUSION_RATE
213
-    #define  DEFAULT_Kc (5) //heatingpower=Kc*(e_speed)
214
-  #endif
215
-#endif // PIDTEMP
216
-
217
-// extruder advance constant (s2/mm3)
218
-//
219
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTUDER_ADVANCE_K * cubic mm per second ^ 2
220
-//
221
-// hooke's law says:		force = k * distance
222
-// bernoulli's priniciple says:	v ^ 2 / 2 + g . h + pressure / density = constant
223
-// so: v ^ 2 is proportional to number of steps we advance the extruder
224
-//#define ADVANCE
225
-
226
-#ifdef ADVANCE
227
-#define EXTRUDER_ADVANCE_K .3
228
-
229
-#define D_FILAMENT 1.7
230
-#define STEPS_MM_E 65
231
-#define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)
232
-#define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA)
233
-
234
-#endif // ADVANCE
235
-
236
-// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, e.g. 8,16,32 
237
-#if defined SDSUPPORT
238
-// The number of linear motions that can be in the plan at any give time.  
239
-  #define BLOCK_BUFFER_SIZE 16   // SD,LCD,Buttons take more memory, block buffer needs to be smaller
240
-#else
241
-  #define BLOCK_BUFFER_SIZE 16 // maximize block buffer
242
-#endif
243
-
244
-
245
-#endif
1
+#ifndef CONFIGURATION_H


2
+#define CONFIGURATION_H


3
+


4
+//#define DEBUG_STEPS


5
+


6
+// BASIC SETTINGS: select your board type, thermistor type, axis scaling, and endstop configuration


7
+


8
+//// The following define selects which electronics board you have. Please choose the one that matches your setup


9
+// MEGA/RAMPS up to 1.2 = 3,


10
+// RAMPS 1.3 = 33


11
+// Gen6 = 5,


12
+// Sanguinololu 1.2 and above = 62


13
+// Ultimaker = 7,


14
+#define MOTHERBOARD 7


15
+//#define MOTHERBOARD 5


16
+


17
+


18
+//// Thermistor settings:


19
+// 1 is 100k thermistor


20
+// 2 is 200k thermistor


21
+// 3 is mendel-parts thermistor


22
+// 4 is 10k thermistor


23
+// 5 is ParCan supplied 104GT-2 100K


24
+// 6 is EPCOS 100k


25
+// 7 is 100k Honeywell thermistor 135-104LAG-J01


26
+#define THERMISTORHEATER_1 3


27
+#define THERMISTORHEATER_2 3


28
+#define THERMISTORBED 3


29
+


30
+//#define HEATER_0_USES_THERMISTOR


31
+//#define HEATER_1_USES_THERMISTOR


32
+#define HEATER_0_USES_AD595


33
+//#define HEATER_1_USES_AD595


34
+


35
+// Select one of these only to define how the bed temp is read.


36
+//#define BED_USES_THERMISTOR


37
+//#define BED_USES_AD595


38
+


39
+#define HEATER_CHECK_INTERVAL 50


40
+#define BED_CHECK_INTERVAL 5000


41
+


42
+


43
+//// Endstop Settings


44
+#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors


45
+// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.


46
+const bool ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops. 


47
+// For optos H21LOB set to true, for Mendel-Parts newer optos TCST2103 set to false


48
+


49
+// This determines the communication speed of the printer


50
+#define BAUDRATE 250000


51
+//#define BAUDRATE 115200


52
+//#define BAUDRATE 230400


53
+


54
+// Comment out (using // at the start of the line) to disable SD support:


55
+


56
+// #define ULTRA_LCD  //any lcd 


57
+


58
+#define ULTIPANEL


59
+#define ULTIPANEL


60
+#ifdef ULTIPANEL


61
+ //#define NEWPANEL  //enable this if you have a click-encoder panel


62
+ #define SDSUPPORT


63
+ #define ULTRA_LCD


64
+ #define LCD_WIDTH 20


65
+#define LCD_HEIGHT 4


66
+#else //no panel but just lcd 


67
+  #ifdef ULTRA_LCD


68
+    #define LCD_WIDTH 16


69
+    #define LCD_HEIGHT 2


70
+  #endif


71
+#endif


72
+


73
+


74
+//#define SDSUPPORT // Enable SD Card Support in Hardware Console


75
+


76
+


77
+


78
+const int dropsegments=5; //everything with this number of steps  will be ignored as move


79
+


80
+//// ADVANCED SETTINGS - to tweak parameters


81
+


82
+#include "thermistortables.h"


83
+


84
+// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1


85
+#define X_ENABLE_ON 0


86
+#define Y_ENABLE_ON 0


87
+#define Z_ENABLE_ON 0


88
+#define E_ENABLE_ON 0


89
+


90
+// Disables axis when it's not being used.


91
+#define DISABLE_X false


92
+#define DISABLE_Y false


93
+#define DISABLE_Z false


94
+#define DISABLE_E false


95
+


96
+// Inverting axis direction


97
+#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true


98
+#define INVERT_Y_DIR false   // for Mendel set to true, for Orca set to false


99
+#define INVERT_Z_DIR true    // for Mendel set to false, for Orca set to true


100
+#define INVERT_E_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false


101
+


102
+//// ENDSTOP SETTINGS:


103
+// Sets direction of endstops when homing; 1=MAX, -1=MIN


104
+#define X_HOME_DIR -1


105
+#define Y_HOME_DIR -1


106
+#define Z_HOME_DIR -1


107
+


108
+#define min_software_endstops false //If true, axis won't move to coordinates less than zero.


109
+#define max_software_endstops false  //If true, axis won't move to coordinates greater than the defined lengths below.


110
+#define X_MAX_LENGTH 210


111
+#define Y_MAX_LENGTH 210


112
+#define Z_MAX_LENGTH 210


113
+


114
+//// MOVEMENT SETTINGS


115
+#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E


116
+//note: on bernhards ultimaker 200 200 12 are working well.


117
+#define HOMING_FEEDRATE {50*60, 50*60, 12*60, 0}  // set the homing speeds


118
+//the followint checks if an extrusion is existent in the move. if _not_, the speed of the move is set to the maximum speed. 


119
+//!!!!!!Use only if you know that your printer works at the maximum declared speeds.


120
+// works around the skeinforge cool-bug. There all moves are slowed to have a minimum layer time. However slow travel moves= ooze


121
+#define TRAVELING_AT_MAXSPEED  


122
+#define AXIS_RELATIVE_MODES {false, false, false, false}


123
+


124
+#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)


125
+


126
+// default settings 


127
+


128
+#define DEFAULT_AXIS_STEPS_PER_UNIT   {79.87220447,79.87220447,200*8/3,14}                    // default steps per unit for ultimaker 


129
+#define DEFAULT_MAX_FEEDRATE          {160*60, 160*60, 10*60, 500000}        


130
+#define DEFAULT_MAX_ACCELERATION      {9000,9000,150,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.


131
+


132
+#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves 


133
+#define DEFAULT_RETRACT_ACCELERATION  7000   // X, Y, Z and E max acceleration in mm/s^2 for r retracts


134
+


135
+#define DEFAULT_MINIMUMFEEDRATE       10     // minimum feedrate


136
+#define DEFAULT_MINTRAVELFEEDRATE     10


137
+


138
+// minimum time in microseconds that a movement needs to take if the buffer is emptied.   Increase this number if you see blobs while printing high speed & high detail.  It will slowdown on the detailed stuff.


139
+#define DEFAULT_MINSEGMENTTIME        20000


140
+#define DEFAULT_XYJERK                30.0*60    


141
+#define DEFAULT_ZJERK                 10.0*60


142
+


143
+


144
+// The watchdog waits for the watchperiod in milliseconds whenever an M104 or M109 increases the target temperature


145
+//this enables the watchdog interrupt.


146
+#define USE_WATCHDOG


147
+//you cannot reboot on a mega2560 due to a bug in he bootloader. Hence, you have to reset manually, and this is done hereby:


148
+#define RESET_MANUAL


149
+


150
+#define WATCHDOG_TIMEOUT 4


151
+


152
+


153
+


154
+//// Experimental watchdog and minimal temp


155
+// The watchdog waits for the watchperiod in milliseconds whenever an M104 or M109 increases the target temperature


156
+// If the temperature has not increased at the end of that period, the target temperature is set to zero. It can be reset with another M104/M109


157
+//#define WATCHPERIOD 5000 //5 seconds


158
+


159
+// Actual temperature must be close to target for this long before M109 returns success


160
+//#define TEMP_RESIDENCY_TIME 20  // (seconds)


161
+//#define TEMP_HYSTERESIS 5       // (C°) range of +/- temperatures considered "close" to the target one


162
+


163
+//// The minimal temperature defines the temperature below which the heater will not be enabled


164
+#define HEATER_0_MINTEMP 5


165
+//#define HEATER_1_MINTEMP 5


166
+//#define BED_MINTEMP 5


167
+


168
+


169
+// When temperature exceeds max temp, your heater will be switched off.


170
+// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!


171
+// You should use MINTEMP for thermistor short/failure protection.


172
+#define HEATER_0_MAXTEMP 275


173
+//#define_HEATER_1_MAXTEMP 275


174
+//#define BED_MAXTEMP 150


175
+


176
+


177
+


178
+


179
+


180
+


181
+


182
+#define PIDTEMP


183
+#ifdef PIDTEMP


184
+  /// PID settings:


185
+  // Uncomment the following line to enable PID support.


186
+  //#define SMOOTHING


187
+  //#define SMOOTHFACTOR 5.0


188
+  //float current_raw_average=0;


189
+    #define K1 0.95 //smoothing of the PID


190
+  //#define PID_DEBUG // Sends debug data to the serial port. 


191
+  //#define PID_OPENLOOP 1 // Puts PID in open loop. M104 sets the output power in %


192
+  #define PID_MAX 255 // limits current to nozzle


193
+  #define PID_INTEGRAL_DRIVE_MAX 255


194
+  #define PID_dT 0.1


195
+ //machine with red silicon: 1950:45 second ; with fan fully blowin 3000:47


196
+


197
+  #define PID_CRITIAL_GAIN 3000


198
+  #define PID_SWING_AT_CRITIAL 45 //seconds


199
+  #define PIDIADD 5


200
+  /*


201
+  //PID according to Ziegler-Nichols method


202
+  float Kp = 0.6*PID_CRITIAL_GAIN; 


203
+  float Ki =PIDIADD+2*Kp/PID_SWING_AT_CRITIAL*PID_dT;  


204
+  float Kd = Kp*PID_SWING_AT_CRITIAL/8./PID_dT;  


205
+  */


206
+  //PI according to Ziegler-Nichols method


207
+  #define  DEFAULT_Kp (PID_CRITIAL_GAIN/2.2) 


208
+  #define  DEFAULT_Ki (1.2*Kp/PID_SWING_AT_CRITIAL*PID_dT)


209
+  #define  DEFAULT_Kd (0)


210
+  


211
+  #define PID_ADD_EXTRUSION_RATE  


212
+  #ifdef PID_ADD_EXTRUSION_RATE


213
+    #define  DEFAULT_Kc (5) //heatingpower=Kc*(e_speed)


214
+  #endif


215
+#endif // PIDTEMP


216
+


217
+// extruder advance constant (s2/mm3)


218
+//


219
+// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTUDER_ADVANCE_K * cubic mm per second ^ 2


220
+//


221
+// hooke's law says:		force = k * distance


222
+// bernoulli's priniciple says:	v ^ 2 / 2 + g . h + pressure / density = constant


223
+// so: v ^ 2 is proportional to number of steps we advance the extruder


224
+//#define ADVANCE


225
+


226
+#ifdef ADVANCE


227
+#define EXTRUDER_ADVANCE_K .3


228
+


229
+#define D_FILAMENT 1.7


230
+#define STEPS_MM_E 65


231
+#define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)


232
+#define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA)


233
+


234
+#endif // ADVANCE


235
+


236
+// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, e.g. 8,16,32 


237
+#if defined SDSUPPORT


238
+// The number of linear motions that can be in the plan at any give time.  


239
+  #define BLOCK_BUFFER_SIZE 16   // SD,LCD,Buttons take more memory, block buffer needs to be smaller


240
+#else


241
+  #define BLOCK_BUFFER_SIZE 16 // maximize block buffer


242
+#endif


243
+


244
+


245
+#endif



+ 1235
- 1235
Marlin/Marlin.pde
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 503
- 501
Marlin/temperature.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 58
- 58
Marlin/temperature.h Просмотреть файл

@@ -1,58 +1,58 @@
1
-/*
2
-  temperature.h - temperature controller
3
-  Part of Marlin
4
-
5
-  Copyright (c) 2011 Erik van der Zalm
6
-
7
-  Grbl is free software: you can redistribute it and/or modify
8
-  it under the terms of the GNU General Public License as published by
9
-  the Free Software Foundation, either version 3 of the License, or
10
-  (at your option) any later version.
11
-
12
-  Grbl is distributed in the hope that it will be useful,
13
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
14
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
-  GNU General Public License for more details.
16
-
17
-  You should have received a copy of the GNU General Public License
18
-  along with Grbl.  If not, see <http://www.gnu.org/licenses/>.
19
-*/
20
-
21
-#ifndef temperature_h
22
-#define temperature_h 
23
-
24
-#include "Marlin.h"
25
-#ifdef PID_ADD_EXTRUSION_RATE
26
-  #include "stepper.h"
27
-#endif
28
-void tp_init();
29
-void manage_heater();
30
-//int temp2analogu(int celsius, const short table[][2], int numtemps);
31
-//float analog2tempu(int raw, const short table[][2], int numtemps);
32
-int temp2analog(int celsius);
33
-int temp2analogBed(int celsius);
34
-float analog2temp(int raw);
35
-float analog2tempBed(int raw);
36
-
37
-#ifdef HEATER_USES_THERMISTOR
38
-    #define HEATERSOURCE 1
39
-#endif
40
-#ifdef BED_USES_THERMISTOR
41
-    #define BEDSOURCE 1
42
-#endif
43
-
44
-//#define temp2analogh( c ) temp2analogu((c),temptable,NUMTEMPS)
45
-//#define analog2temp( c ) analog2tempu((c),temptable,NUMTEMPS
46
-
47
-
48
-extern float Kp;
49
-extern float Ki;
50
-extern float Kd;
51
-extern float Kc;
52
-
53
-enum {TEMPSENSOR_HOTEND=0,TEMPSENSOR_BED=1, TEMPSENSOR_AUX=2};
54
-extern int target_raw[3];
55
-extern int current_raw[3];
56
-extern double pid_setpoint;
57
-
58
-#endif
1
+/*
2
+  temperature.h - temperature controller
3
+  Part of Marlin
4
+
5
+  Copyright (c) 2011 Erik van der Zalm
6
+
7
+  Grbl is free software: you can redistribute it and/or modify
8
+  it under the terms of the GNU General Public License as published by
9
+  the Free Software Foundation, either version 3 of the License, or
10
+  (at your option) any later version.
11
+
12
+  Grbl is distributed in the hope that it will be useful,
13
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
+  GNU General Public License for more details.
16
+
17
+  You should have received a copy of the GNU General Public License
18
+  along with Grbl.  If not, see <http://www.gnu.org/licenses/>.
19
+*/
20
+
21
+#ifndef temperature_h
22
+#define temperature_h 
23
+
24
+#include "Marlin.h"
25
+#ifdef PID_ADD_EXTRUSION_RATE
26
+  #include "stepper.h"
27
+#endif
28
+void tp_init();
29
+void manage_heater();
30
+//int temp2analogu(int celsius, const short table[][2], int numtemps);
31
+//float analog2tempu(int raw, const short table[][2], int numtemps);
32
+int temp2analog(int celsius);
33
+int temp2analogBed(int celsius);
34
+float analog2temp(int raw);
35
+float analog2tempBed(int raw);
36
+
37
+#ifdef HEATER_0_USES_THERMISTOR
38
+    #define HEATERSOURCE 1
39
+#endif
40
+#ifdef BED_USES_THERMISTOR
41
+    #define BEDSOURCE 1
42
+#endif
43
+
44
+//#define temp2analogh( c ) temp2analogu((c),temptable,NUMTEMPS)
45
+//#define analog2temp( c ) analog2tempu((c),temptable,NUMTEMPS
46
+
47
+
48
+extern float Kp;
49
+extern float Ki;
50
+extern float Kd;
51
+extern float Kc;
52
+
53
+enum {TEMPSENSOR_HOTEND_0=0,TEMPSENSOR_BED=1, TEMPSENSOR_HOTEND_1=2};
54
+extern int target_raw[3];
55
+extern int current_raw[3];
56
+extern double pid_setpoint;
57
+
58
+#endif


+ 11
- 11
Marlin/ultralcd.pde Просмотреть файл

@@ -253,17 +253,17 @@ void MainMenu::showStatus()
253 253
   }
254 254
     
255 255
 
256
-  if((abs(current_raw[TEMPSENSOR_HOTEND]-oldcurrentraw)>3)||force_lcd_update)
256
+  if((abs(current_raw[TEMPSENSOR_HOTEND_0]-oldcurrentraw)>3)||force_lcd_update)
257 257
   {
258 258
     lcd.setCursor(1,0);
259
-    lcd.print(ftostr3(analog2temp(current_raw[TEMPSENSOR_HOTEND])));
260
-    oldcurrentraw=current_raw[TEMPSENSOR_HOTEND];
259
+    lcd.print(ftostr3(analog2temp(current_raw[TEMPSENSOR_HOTEND_0])));
260
+    oldcurrentraw=current_raw[TEMPSENSOR_HOTEND_0];
261 261
   }
262
-  if((target_raw[TEMPSENSOR_HOTEND]!=oldtargetraw)||force_lcd_update)
262
+  if((target_raw[TEMPSENSOR_HOTEND_0]!=oldtargetraw)||force_lcd_update)
263 263
   {
264 264
     lcd.setCursor(5,0);
265
-    lcd.print(ftostr3(analog2temp(target_raw[TEMPSENSOR_HOTEND])));
266
-    oldtargetraw=target_raw[TEMPSENSOR_HOTEND];
265
+    lcd.print(ftostr3(analog2temp(target_raw[TEMPSENSOR_HOTEND_0])));
266
+    oldtargetraw=target_raw[TEMPSENSOR_HOTEND_0];
267 267
   }
268 268
   #if defined BED_USES_THERMISTOR || defined BED_USES_AD595 
269 269
   static int oldcurrentbedraw=-1;
@@ -426,7 +426,7 @@ void MainMenu::showPrepare()
426 426
         if((activeline==line) && CLICKED)
427 427
         {
428 428
           BLOCK
429
-          target_raw[TEMPSENSOR_HOTEND] = temp2analog(170);
429
+          target_raw[TEMPSENSOR_HOTEND_0] = temp2analog(170);
430 430
           beepshort();
431 431
         }
432 432
       }break;
@@ -531,7 +531,7 @@ void MainMenu::showControl()
531 531
         if(force_lcd_update)
532 532
         {
533 533
           lcd.setCursor(0,line);lcd.print(" \002Nozzle:");
534
-          lcd.setCursor(13,line);lcd.print(ftostr3(analog2temp(target_raw[TEMPSENSOR_HOTEND])));
534
+          lcd.setCursor(13,line);lcd.print(ftostr3(analog2temp(target_raw[TEMPSENSOR_HOTEND_0])));
535 535
         }
536 536
         
537 537
         if((activeline==line) )
@@ -541,11 +541,11 @@ void MainMenu::showControl()
541 541
             linechanging=!linechanging;
542 542
             if(linechanging)
543 543
             {
544
-               encoderpos=(int)analog2temp(target_raw[TEMPSENSOR_HOTEND]);
544
+               encoderpos=(int)analog2temp(target_raw[TEMPSENSOR_HOTEND_0]);
545 545
             }
546 546
             else
547 547
             {
548
-              target_raw[TEMPSENSOR_HOTEND] = temp2analog(encoderpos);
548
+              target_raw[TEMPSENSOR_HOTEND_0] = temp2analog(encoderpos);
549 549
               encoderpos=activeline*lcdslow;
550 550
               beepshort();
551 551
             }
@@ -1590,4 +1590,4 @@ char *fillto(int8_t n,char *c)
1590 1590
 #else
1591 1591
 inline void lcd_status() {};
1592 1592
 #endif
1593
-
1593
+


Загрузка…
Отмена
Сохранить