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
75844245
Commit
75844245
authored
Mar 18, 2016
by
MagoKimbra
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'refs/remotes/origin/master' into dev
parents
da47ee66
3b1f52de
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
99 additions
and
99 deletions
+99
-99
base.h
MK/base.h
+2
-2
MK_Main.cpp
MK/module/MK_Main.cpp
+1
-1
stepper.cpp
MK/module/motion/stepper.cpp
+5
-3
stepper.h
MK/module/motion/stepper.h
+91
-93
No files found.
MK/base.h
View file @
75844245
...
...
@@ -43,9 +43,9 @@
#include "module/language/language.h"
#include "module/MK_Main.h"
#include "module/motion/stepper.h"
#include "module/motion/stepper_indirection.h"
#include "module/motion/planner.h"
#include "module/motion/stepper_indirection.h"
#include "module/motion/stepper.h"
#include "module/motion/vector_3.h"
#include "module/motion/qr_solve.h"
#include "module/motion/cartesian_correction.h"
...
...
MK/module/MK_Main.cpp
View file @
75844245
...
...
@@ -6284,7 +6284,7 @@ inline void gcode_M400() { st_synchronize(); }
ECHO_MV
(
",
\"
active
\"
:"
,
degTargetBed
(),
1
);
ECHO_M
(
",
\"
state
\"
:"
);
ECHO_M
(
degTargetBed
()
>
0
?
"2"
:
"1"
);
ECHO_M
V
(
"},"
);
ECHO_M
(
"},"
);
#endif
ECHO_M
(
"
\"
heads
\"
: {
\"
current
\"
:["
);
firstOccurrence
=
true
;
...
...
MK/module/motion/stepper.cpp
View file @
75844245
...
...
@@ -799,12 +799,14 @@ ISR(TIMER1_COMPA_vect) {
else
if
(
step_events_completed
>
(
unsigned
long
)
current_block
->
decelerate_after
)
{
MultiU24X32toH16
(
step_rate
,
deceleration_time
,
current_block
->
acceleration_rate
);
if
(
step_rate
<=
acc_step_rate
)
{
// Still decelerating?
step_rate
=
acc_step_rate
-
step_rate
;
if
(
step_rate
<=
acc_step_rate
)
{
step_rate
=
acc_step_rate
-
step_rate
;
// Decelerate from acceleration end point.
// lower limit
NOLESS
(
step_rate
,
current_block
->
final_rate
);
}
else
else
{
step_rate
=
current_block
->
final_rate
;
}
// step_rate to timer interval
timer
=
calc_timer
(
step_rate
);
...
...
MK/module/motion/stepper.h
View file @
75844245
/*
stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors
Part of Grbl
Copyright (c) 2009-2011 Simen Svale Skogsrud
Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef STEPPER_H
#define STEPPER_H
#include "planner.h"
#include "stepper_indirection.h"
/**
* Axis indices as enumerated constants
* stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors
* Part of Grbl
*
* Copyright (c) 2009-2011 Simen Svale Skogsrud
*
* Grbl is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Grbl is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
A_AXIS and B_AXIS are used by COREXY printers
*
X_HEAD and Y_HEAD is used for systems that don't have a 1:1 relationship between X_AXIS and X Head movement, like CoreXY bots
.
*
You should have received a copy of the GNU General Public License
*
along with Grbl. If not, see <http://www.gnu.org/licenses/>
.
*/
enum
AxisEnum
{
X_AXIS
=
0
,
A_AXIS
=
0
,
Y_AXIS
=
1
,
B_AXIS
=
1
,
Z_AXIS
=
2
,
C_AXIS
=
2
,
E_AXIS
=
3
,
X_HEAD
=
4
,
Y_HEAD
=
5
,
Z_HEAD
=
5
};
enum
EndstopEnum
{
X_MIN
=
0
,
Y_MIN
=
1
,
Z_MIN
=
2
,
Z_PROBE
=
3
,
X_MAX
=
4
,
Y_MAX
=
5
,
Z_MAX
=
6
,
Z2_MIN
=
7
,
Z2_MAX
=
8
,
E_MIN
=
9
};
#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
extern
bool
abort_on_endstop_hit
;
#endif
// Initialize and start the stepper motor subsystem
void
st_init
();
// Block until all buffered steps are executed
void
st_synchronize
();
// Set the stepper direction of each axis
void
set_stepper_direction
(
bool
onlye
=
false
);
// Set current position in steps
void
st_set_position
(
const
long
&
x
,
const
long
&
y
,
const
long
&
z
,
const
long
&
e
);
void
st_set_e_position
(
const
long
&
e
);
// Get current position in steps
long
st_get_position
(
uint8_t
axis
);
// Get current position in mm
float
st_get_axis_position_mm
(
AxisEnum
axis
);
// The stepper subsystem goes to sleep when it runs out of things to execute. Call this
// to notify the subsystem that it is time to go to work.
void
st_wake_up
();
void
checkHitEndstops
();
//call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered
void
endstops_hit_on_purpose
();
//avoid creation of the message, i.e. after homing and before a routine call of checkHitEndstops();
void
enable_endstops
(
bool
check
);
// Enable/disable endstop checking
void
checkStepperErrors
();
//Print errors detected by the stepper
void
enable_all_steppers
();
void
disable_all_steppers
();
void
finishAndDisableSteppers
();
extern
block_t
*
current_block
;
// A pointer to the block currently being traced
void
quickStop
();
void
digitalPotWrite
(
int
address
,
int
value
);
void
microstep_ms
(
uint8_t
driver
,
int8_t
ms1
,
int8_t
ms2
);
void
microstep_mode
(
uint8_t
driver
,
uint8_t
stepping
);
void
digipot_init
();
void
digipot_current
(
uint8_t
driver
,
int
current
);
void
microstep_init
();
void
microstep_readings
();
#if ENABLED(Z_DUAL_ENDSTOPS)
void
In_Homing_Process
(
bool
state
);
void
Lock_z_motor
(
bool
state
);
void
Lock_z2_motor
(
bool
state
);
#endif
#if ENABLED(BABYSTEPPING)
void
babystep
(
const
uint8_t
axis
,
const
bool
direction
);
// perform a short step with a single stepper motor, outside of any convention
#endif
#if ENABLED(NPR2) // Multiextruder
void
colorstep
(
long
csteps
,
const
bool
direction
);
#endif
#ifndef STEPPER_H
#define STEPPER_H
/**
* Axis indices as enumerated constants
*
* A_AXIS and B_AXIS are used by COREXY printers
* X_HEAD and Y_HEAD is used for systems that don't have a 1:1 relationship between X_AXIS and X Head movement, like CoreXY bots.
*/
enum
AxisEnum
{
X_AXIS
=
0
,
A_AXIS
=
0
,
Y_AXIS
=
1
,
B_AXIS
=
1
,
Z_AXIS
=
2
,
C_AXIS
=
2
,
E_AXIS
=
3
,
X_HEAD
=
4
,
Y_HEAD
=
5
,
Z_HEAD
=
5
};
enum
EndstopEnum
{
X_MIN
=
0
,
Y_MIN
=
1
,
Z_MIN
=
2
,
Z_PROBE
=
3
,
X_MAX
=
4
,
Y_MAX
=
5
,
Z_MAX
=
6
,
Z2_MIN
=
7
,
Z2_MAX
=
8
,
E_MIN
=
9
};
#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
extern
bool
abort_on_endstop_hit
;
#endif
// Initialize and start the stepper motor subsystem
void
st_init
();
// Block until all buffered steps are executed
void
st_synchronize
();
// Set the stepper direction of each axis
void
set_stepper_direction
(
bool
onlye
=
false
);
// Set current position in steps
void
st_set_position
(
const
long
&
x
,
const
long
&
y
,
const
long
&
z
,
const
long
&
e
);
void
st_set_e_position
(
const
long
&
e
);
// Get current position in steps
long
st_get_position
(
uint8_t
axis
);
// Get current position in mm
float
st_get_axis_position_mm
(
AxisEnum
axis
);
// The stepper subsystem goes to sleep when it runs out of things to execute. Call this
// to notify the subsystem that it is time to go to work.
void
st_wake_up
();
void
checkHitEndstops
();
//call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered
void
endstops_hit_on_purpose
();
//avoid creation of the message, i.e. after homing and before a routine call of checkHitEndstops();
void
enable_endstops
(
bool
check
);
// Enable/disable endstop checking
void
checkStepperErrors
();
//Print errors detected by the stepper
void
enable_all_steppers
();
void
disable_all_steppers
();
void
finishAndDisableSteppers
();
extern
block_t
*
current_block
;
// A pointer to the block currently being traced
void
quickStop
();
void
digitalPotWrite
(
int
address
,
int
value
);
void
microstep_ms
(
uint8_t
driver
,
int8_t
ms1
,
int8_t
ms2
);
void
microstep_mode
(
uint8_t
driver
,
uint8_t
stepping
);
void
digipot_init
();
void
digipot_current
(
uint8_t
driver
,
int
current
);
void
microstep_init
();
void
microstep_readings
();
#if ENABLED(Z_DUAL_ENDSTOPS)
void
In_Homing_Process
(
bool
state
);
void
Lock_z_motor
(
bool
state
);
void
Lock_z2_motor
(
bool
state
);
#endif
#if ENABLED(BABYSTEPPING)
void
babystep
(
const
uint8_t
axis
,
const
bool
direction
);
// perform a short step with a single stepper motor, outside of any convention
#endif
#if ENABLED(NPR2) // Multiextruder
void
colorstep
(
long
csteps
,
const
bool
direction
);
#endif
#endif // STEPPER_H
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