Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
MarlinKimbra
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
machinery
MarlinKimbra
Commits
0b6f1b8f
Commit
0b6f1b8f
authored
Apr 11, 2015
by
MagoKimbra
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Same fix
parent
96f7e11c
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
200 additions
and
227 deletions
+200
-227
Marlin.h
MarlinKimbra/Marlin.h
+12
-4
Marlin_main.cpp
MarlinKimbra/Marlin_main.cpp
+137
-159
SanityCheck.h
MarlinKimbra/SanityCheck.h
+1
-1
language_an.h
MarlinKimbra/language_an.h
+4
-4
planner.cpp
MarlinKimbra/planner.cpp
+7
-17
planner.h
MarlinKimbra/planner.h
+1
-5
temperature.cpp
MarlinKimbra/temperature.cpp
+2
-2
ultralcd.cpp
MarlinKimbra/ultralcd.cpp
+11
-13
ultralcd_implementation_hitachi_HD44780.h
MarlinKimbra/ultralcd_implementation_hitachi_HD44780.h
+25
-22
No files found.
MarlinKimbra/Marlin.h
View file @
0b6f1b8f
...
...
@@ -14,14 +14,15 @@
#ifdef __SAM3X8E__
#include "HAL.h"
#include "Fastio_sam.h"
#else
#include <util/delay.h>
#include <avr/eeprom.h>
#include "fastio.h"
#endif
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include "fastio.h"
#include "Configuration.h"
#if (ARDUINO >= 100)
...
...
@@ -239,7 +240,9 @@ void Stop();
void
filrunout
();
#endif
bool
IsStopped
();
extern
bool
Running
;
inline
bool
IsRunning
()
{
return
Running
;
}
inline
bool
IsStopped
()
{
return
!
Running
;
}
bool
enquecommand
(
const
char
*
cmd
);
//put a single ASCII command at the end of the current buffer or return false when it is full
void
enquecommands_P
(
const
char
*
cmd
);
//put one or many ASCII commands at the end of the current buffer, read from flash
...
...
@@ -291,7 +294,7 @@ extern float home_offset[3];
extern
float
delta_radius
;
extern
float
delta_diagonal_rod
;
#elif defined(Z_DUAL_ENDSTOPS)
extern
float
z_endstop_adj
;
extern
float
z_endstop_adj
;
#endif
#ifdef SCARA
...
...
@@ -303,6 +306,11 @@ extern float max_pos[3];
extern
bool
axis_known_position
[
3
];
extern
float
lastpos
[
4
];
extern
float
zprobe_zoffset
;
#ifdef PREVENT_DANGEROUS_EXTRUDE
extern
float
extrude_min_temp
;
#endif
extern
int
fanSpeed
;
#ifdef BARICUDA
...
...
@@ -319,7 +327,7 @@ extern int fanSpeed;
extern
bool
filament_sensor
;
//indicates that filament sensor readings should control extrusion
extern
float
filament_width_meas
;
//holds the filament diameter as accurately measured
extern
signed
char
measurement_delay
[];
//ring buffer to delay measurement
extern
int
delay_index1
,
delay_index2
;
//
index into ring buffer
extern
int
delay_index1
,
delay_index2
;
//
ring buffer index. used by planner, temperature, and main code
extern
float
delay_dist
;
//delay distance counter
extern
int
meas_delay_cm
;
//delay distance
#endif
...
...
MarlinKimbra/Marlin_main.cpp
View file @
0b6f1b8f
This diff is collapsed.
Click to expand it.
MarlinKimbra/SanityCheck.h
View file @
0b6f1b8f
...
...
@@ -195,7 +195,7 @@
#define Y_PROBE_ERROR
#endif
#ifdef Y_PROBE_ERROR
#error The Y axis probing range is to small to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS
#error The Y axis probing range is to
o
small to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS
#endif
#undef PROBE_SIZE_X
...
...
MarlinKimbra/language_an.h
View file @
0b6f1b8f
...
...
@@ -61,9 +61,9 @@
#define MSG_FAN_SPEED "Ixoriador"
#define MSG_FLOW "Fluxo"
#define MSG_CONTROL "Control"
#define MSG_MIN
" "
STR_THERMOMETER " Min"
#define MSG_MAX
" "
STR_THERMOMETER " Max"
#define MSG_FACTOR
" "
STR_THERMOMETER " Fact"
#define MSG_MIN
LCD_
STR_THERMOMETER " Min"
#define MSG_MAX
LCD_
STR_THERMOMETER " Max"
#define MSG_FACTOR
LCD_
STR_THERMOMETER " Fact"
#define MSG_IDLEOOZING "Anti oozing"
#define MSG_AUTOTEMP "Autotemp"
#define MSG_ON "On"
...
...
@@ -95,7 +95,7 @@
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimiento"
#define MSG_VOLUMETRIC "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm
" STR_h3
#define MSG_VOLUMETRIC_ENABLED "E in mm
4"
#define MSG_FILAMENT_SIZE_EXTRUDER "Fil. Dia."
#define MSG_CONTRAST "Contrast"
#define MSG_STORE_EPROM "Alzar Memoria"
...
...
MarlinKimbra/planner.cpp
View file @
0b6f1b8f
...
...
@@ -110,9 +110,6 @@ volatile unsigned char block_buffer_tail; // Index of the block to process now
//===========================================================================
//=============================private variables ============================
//===========================================================================
#ifdef PREVENT_DANGEROUS_EXTRUDE
float
extrude_min_temp
=
EXTRUDE_MINTEMP
;
#endif
#ifdef XY_FREQUENCY_LIMIT
// Used for the frequency limit
#define MAX_FREQ_TIME (1000000.0/XY_FREQUENCY_LIMIT)
...
...
@@ -513,27 +510,24 @@ float junction_deviation = 0.1;
#ifdef PREVENT_DANGEROUS_EXTRUDE
if
(
de
)
{
#ifdef NPR2
if
(
active_extruder
!=
1
)
{
if
(
degHotend
(
active_extruder
)
<
extrude_min_temp
&&
!
debugDryrun
())
{
if
(
active_extruder
!=
1
)
#endif // NPR2
{
if
(
degHotend
(
active_extruder
)
<
extrude_min_temp
&&
!
debugDryrun
())
{
position
[
E_AXIS
]
=
target
[
E_AXIS
];
//behave as if the move really took place, but ignore E part
de
=
0
;
// no difference
SERIAL_ECHO_START
;
SERIAL_ECHOLNPGM
(
MSG_ERR_COLD_EXTRUDE_STOP
);
}
}
#else // NO NPR2
if
(
degHotend
(
active_extruder
)
<
extrude_min_temp
&&
!
debugDryrun
())
{
position
[
E_AXIS
]
=
target
[
E_AXIS
];
//behave as if the move really took place, but ignore E part
SERIAL_ECHO_START
;
SERIAL_ECHOLNPGM
(
MSG_ERR_COLD_EXTRUDE_STOP
);
}
#endif // NPR2
#ifdef PREVENT_LENGTHY_EXTRUDE
if
(
labs
(
de
)
>
axis_steps_per_unit
[
E_AXIS
+
active_extruder
]
*
EXTRUDE_MAXLENGTH
)
{
if
(
labs
(
de
)
>
axis_steps_per_unit
[
E_AXIS
+
active_extruder
]
*
EXTRUDE_MAXLENGTH
)
{
#ifdef EASY_LOAD
if
(
!
allow_lengthy_extrude_once
)
{
#endif
position
[
E_AXIS
]
=
target
[
E_AXIS
];
// Behave as if the move really took place, but ignore E part
de
=
0
;
// no difference
SERIAL_ECHO_START
;
SERIAL_ECHOLNPGM
(
MSG_ERR_LONG_EXTRUDE_STOP
);
#ifdef EASY_LOAD
...
...
@@ -1052,10 +1046,6 @@ void plan_set_e_position(const float &e) {
st_set_e_position
(
position
[
E_AXIS
]);
}
#ifdef PREVENT_DANGEROUS_EXTRUDE
void
set_extrude_min_temp
(
float
temp
)
{
extrude_min_temp
=
temp
;
}
#endif
// Calculate the steps/s^2 acceleration rates, based on the mm/s^s
void
reset_acceleration_rates
()
{
for
(
int
i
=
0
;
i
<
3
+
EXTRUDERS
;
i
++
)
...
...
MarlinKimbra/planner.h
View file @
0b6f1b8f
...
...
@@ -161,10 +161,6 @@ FORCE_INLINE block_t *plan_get_current_block() {
return
NULL
;
}
#ifdef PREVENT_DANGEROUS_EXTRUDE
void
set_extrude_min_temp
(
float
temp
);
#endif
void
reset_acceleration_rates
();
#endif //PLANNER_H
#endif //
PLANNER_H
MarlinKimbra/temperature.cpp
View file @
0b6f1b8f
...
...
@@ -438,7 +438,7 @@ void checkExtruderAutoFans()
// Temperature Error Handlers
//
inline
void
_temp_error
(
int
e
,
const
char
*
msg1
,
const
char
*
msg2
)
{
if
(
!
IsStopped
())
{
if
(
IsRunning
())
{
SERIAL_ERROR_START
;
if
(
e
>=
0
)
SERIAL_ERRORLN
((
int
)
e
);
serialprintPGM
(
msg1
);
...
...
@@ -1255,7 +1255,7 @@ static void set_current_temp_raw() {
// Timer 0 is shared with millies
//
ISR
(
TIMER0_COMPB_vect
)
{
//these variables are only acces
s
ible from the ISR, but static, so they don't lose their value
//these variables are only accesible from the ISR, but static, so they don't lose their value
static
unsigned
char
temp_count
=
0
;
static
TempState
temp_state
=
StartupDelay
;
static
unsigned
char
pwm_count
=
BIT
(
SOFT_PWM_SCALE
);
...
...
MarlinKimbra/ultralcd.cpp
View file @
0b6f1b8f
...
...
@@ -826,6 +826,15 @@ static void lcd_prepare_menu() {
}
#endif // DELTA
inline
void
line_to_current
()
{
#ifdef DELTA
calculate_delta
(
current_position
);
plan_buffer_line
(
delta
[
X_AXIS
],
delta
[
Y_AXIS
],
delta
[
Z_AXIS
],
current_position
[
E_AXIS
],
manual_feedrate
[
X_AXIS
]
/
60
,
active_extruder
,
active_driver
);
#else
plan_buffer_line
(
current_position
[
X_AXIS
],
current_position
[
Y_AXIS
],
current_position
[
Z_AXIS
],
current_position
[
E_AXIS
],
manual_feedrate
[
X_AXIS
]
/
60
,
active_extruder
,
active_driver
);
#endif
}
float
move_menu_scale
;
static
void
lcd_move_menu_axis
();
...
...
@@ -836,12 +845,7 @@ static void _lcd_move(const char *name, int axis, int min, int max) {
if
(
min_software_endstops
&&
current_position
[
axis
]
<
min
)
current_position
[
axis
]
=
min
;
if
(
max_software_endstops
&&
current_position
[
axis
]
>
max
)
current_position
[
axis
]
=
max
;
encoderPosition
=
0
;
#ifdef DELTA
calculate_delta
(
current_position
);
plan_buffer_line
(
delta
[
X_AXIS
],
delta
[
Y_AXIS
],
delta
[
Z_AXIS
],
current_position
[
E_AXIS
],
manual_feedrate
[
X_AXIS
]
/
60
,
active_extruder
,
active_driver
);
#else
plan_buffer_line
(
current_position
[
X_AXIS
],
current_position
[
Y_AXIS
],
current_position
[
Z_AXIS
],
current_position
[
E_AXIS
],
manual_feedrate
[
X_AXIS
]
/
60
,
active_extruder
,
active_driver
);
#endif
line_to_current
();
lcdDrawUpdate
=
1
;
}
if
(
lcdDrawUpdate
)
lcd_implementation_drawedit
(
name
,
ftostr31
(
current_position
[
axis
]));
...
...
@@ -850,17 +854,11 @@ static void _lcd_move(const char *name, int axis, int min, int max) {
static
void
lcd_move_x
()
{
_lcd_move
(
PSTR
(
"X"
),
X_AXIS
,
X_MIN_POS
,
X_MAX_POS
);
}
static
void
lcd_move_y
()
{
_lcd_move
(
PSTR
(
"Y"
),
Y_AXIS
,
Y_MIN_POS
,
Y_MAX_POS
);
}
static
void
lcd_move_z
()
{
_lcd_move
(
PSTR
(
"Z"
),
Z_AXIS
,
Z_MIN_POS
,
Z_MAX_POS
);
}
static
void
lcd_move_e
()
{
if
(
encoderPosition
!=
0
)
{
current_position
[
E_AXIS
]
+=
float
((
int
)
encoderPosition
)
*
move_menu_scale
;
encoderPosition
=
0
;
#ifdef DELTA
calculate_delta
(
current_position
);
plan_buffer_line
(
delta
[
X_AXIS
],
delta
[
Y_AXIS
],
delta
[
Z_AXIS
],
current_position
[
E_AXIS
],
manual_feedrate
[
E_AXIS
]
/
60
,
active_extruder
,
active_driver
);
#else
plan_buffer_line
(
current_position
[
X_AXIS
],
current_position
[
Y_AXIS
],
current_position
[
Z_AXIS
],
current_position
[
E_AXIS
],
manual_feedrate
[
E_AXIS
]
/
60
,
active_extruder
,
active_driver
);
#endif
line_to_current
();
lcdDrawUpdate
=
1
;
}
if
(
lcdDrawUpdate
)
lcd_implementation_drawedit
(
PSTR
(
"Extruder"
),
ftostr31
(
current_position
[
E_AXIS
]));
...
...
MarlinKimbra/ultralcd_implementation_hitachi_HD44780.h
View file @
0b6f1b8f
...
...
@@ -378,34 +378,37 @@ static void lcd_implementation_init(
#endif
)
{
#if defined(LCD_I2C_TYPE_PCF8575)
#if defined(LCD_I2C_TYPE_PCF8575)
lcd
.
begin
(
LCD_WIDTH
,
LCD_HEIGHT
);
#ifdef LCD_I2C_PIN_BL
lcd
.
setBacklightPin
(
LCD_I2C_PIN_BL
,
POSITIVE
);
lcd
.
setBacklight
(
HIGH
);
#endif
#elif defined(LCD_I2C_TYPE_MCP23017)
#ifdef LCD_I2C_PIN_BL
lcd
.
setBacklightPin
(
LCD_I2C_PIN_BL
,
POSITIVE
);
lcd
.
setBacklight
(
HIGH
);
#endif
#elif defined(LCD_I2C_TYPE_MCP23017)
lcd
.
setMCPType
(
LTI_TYPE_MCP23017
);
lcd
.
begin
(
LCD_WIDTH
,
LCD_HEIGHT
);
lcd
.
setBacklight
(
0
);
//set all the LEDs off to begin with
#elif defined(LCD_I2C_TYPE_MCP23008)
#elif defined(LCD_I2C_TYPE_MCP23008)
lcd
.
setMCPType
(
LTI_TYPE_MCP23008
);
lcd
.
begin
(
LCD_WIDTH
,
LCD_HEIGHT
);
#elif defined(LCD_I2C_TYPE_PCA8574)
lcd
.
init
();
lcd
.
backlight
();
#else
#elif defined(LCD_I2C_TYPE_PCA8574)
lcd
.
init
();
lcd
.
backlight
();
#else
lcd
.
begin
(
LCD_WIDTH
,
LCD_HEIGHT
);
#endif
#endif
lcd_set_custom_characters
(
#ifdef LCD_PROGRESS_BAR
progress_bar_set
#endif
);
lcd_set_custom_characters
(
#ifdef LCD_PROGRESS_BAR
progress_bar_set
#endif
);
lcd
.
clear
();
lcd
.
clear
();
}
static
void
lcd_implementation_clear
()
{
...
...
@@ -672,10 +675,10 @@ static void lcd_implementation_status_screen() {
#endif
#if HAS_LCD_FILAMENT_SENSOR
else
{
lcd_printPGM
(
PSTR
(
"D
:
"
));
lcd_printPGM
(
PSTR
(
"D
ia
"
));
lcd
.
print
(
ftostr12ns
(
filament_width_meas
));
lcd_printPGM
(
PSTR
(
"
mm F:
"
));
lcd
.
print
(
itostr3
(
100
.
0
*
volumetric_multiplier
[
FILAMENT_SENSOR_EXTRUDER_NUM
]));
lcd_printPGM
(
PSTR
(
"
V
"
));
lcd
.
print
(
itostr3
(
100
.
0
*
volumetric_multiplier
[
FILAMENT_SENSOR_EXTRUDER_NUM
]));
lcd
.
print
(
'%'
);
return
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment