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
3b1f52de
Commit
3b1f52de
authored
Mar 18, 2016
by
MagoKimbra
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Same fix
parent
63ef2d1c
Changes
4
Show 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 @
3b1f52de
...
@@ -43,9 +43,9 @@
...
@@ -43,9 +43,9 @@
#include "module/language/language.h"
#include "module/language/language.h"
#include "module/MK_Main.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/planner.h"
#include "module/motion/stepper_indirection.h"
#include "module/motion/stepper.h"
#include "module/motion/vector_3.h"
#include "module/motion/vector_3.h"
#include "module/motion/qr_solve.h"
#include "module/motion/qr_solve.h"
#include "module/motion/cartesian_correction.h"
#include "module/motion/cartesian_correction.h"
...
...
MK/module/MK_Main.cpp
View file @
3b1f52de
...
@@ -6284,7 +6284,7 @@ inline void gcode_M400() { st_synchronize(); }
...
@@ -6284,7 +6284,7 @@ inline void gcode_M400() { st_synchronize(); }
ECHO_MV
(
",
\"
active
\"
:"
,
degTargetBed
(),
1
);
ECHO_MV
(
",
\"
active
\"
:"
,
degTargetBed
(),
1
);
ECHO_M
(
",
\"
state
\"
:"
);
ECHO_M
(
",
\"
state
\"
:"
);
ECHO_M
(
degTargetBed
()
>
0
?
"2"
:
"1"
);
ECHO_M
(
degTargetBed
()
>
0
?
"2"
:
"1"
);
ECHO_M
V
(
"},"
);
ECHO_M
(
"},"
);
#endif
#endif
ECHO_M
(
"
\"
heads
\"
: {
\"
current
\"
:["
);
ECHO_M
(
"
\"
heads
\"
: {
\"
current
\"
:["
);
firstOccurrence
=
true
;
firstOccurrence
=
true
;
...
...
MK/module/motion/stepper.cpp
View file @
3b1f52de
...
@@ -799,12 +799,14 @@ ISR(TIMER1_COMPA_vect) {
...
@@ -799,12 +799,14 @@ ISR(TIMER1_COMPA_vect) {
else
if
(
step_events_completed
>
(
unsigned
long
)
current_block
->
decelerate_after
)
{
else
if
(
step_events_completed
>
(
unsigned
long
)
current_block
->
decelerate_after
)
{
MultiU24X32toH16
(
step_rate
,
deceleration_time
,
current_block
->
acceleration_rate
);
MultiU24X32toH16
(
step_rate
,
deceleration_time
,
current_block
->
acceleration_rate
);
if
(
step_rate
<=
acc_step_rate
)
{
// Still decelerating?
if
(
step_rate
<=
acc_step_rate
)
{
step_rate
=
acc_step_rate
-
step_rate
;
step_rate
=
acc_step_rate
-
step_rate
;
// Decelerate from acceleration end point.
// lower limit
NOLESS
(
step_rate
,
current_block
->
final_rate
);
NOLESS
(
step_rate
,
current_block
->
final_rate
);
}
}
else
else
{
step_rate
=
current_block
->
final_rate
;
step_rate
=
current_block
->
final_rate
;
}
// step_rate to timer interval
// step_rate to timer interval
timer
=
calc_timer
(
step_rate
);
timer
=
calc_timer
(
step_rate
);
...
...
MK/module/motion/stepper.h
View file @
3b1f52de
/*
/**
stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors
* stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors
Part of Grbl
* Part of Grbl
*
Copyright (c) 2009-2011 Simen Svale Skogsrud
* Copyright (c) 2009-2011 Simen Svale Skogsrud
*
Grbl is free software: you can redistribute it and/or modify
* Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
* it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
* the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
* (at your option) any later version.
*
Grbl is distributed in the hope that it will be useful,
* Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
* but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
* 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/>.
*/
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
#ifndef STEPPER_H
#define STEPPER_H
#define STEPPER_H
#include "planner.h"
/**
#include "stepper_indirection.h"
/**
* Axis indices as enumerated constants
* Axis indices as enumerated constants
*
*
* A_AXIS and B_AXIS are used by COREXY printers
* 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.
* 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
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
};
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)
#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
extern
bool
abort_on_endstop_hit
;
extern
bool
abort_on_endstop_hit
;
#endif
#endif
// Initialize and start the stepper motor subsystem
// Initialize and start the stepper motor subsystem
void
st_init
();
void
st_init
();
// Block until all buffered steps are executed
// Block until all buffered steps are executed
void
st_synchronize
();
void
st_synchronize
();
// Set the stepper direction of each axis
// Set the stepper direction of each axis
void
set_stepper_direction
(
bool
onlye
=
false
);
void
set_stepper_direction
(
bool
onlye
=
false
);
// Set current position in steps
// Set current position in steps
void
st_set_position
(
const
long
&
x
,
const
long
&
y
,
const
long
&
z
,
const
long
&
e
);
void
st_set_position
(
const
long
&
x
,
const
long
&
y
,
const
long
&
z
,
const
long
&
e
);
void
st_set_e_position
(
const
long
&
e
);
void
st_set_e_position
(
const
long
&
e
);
// Get current position in steps
// Get current position in steps
long
st_get_position
(
uint8_t
axis
);
long
st_get_position
(
uint8_t
axis
);
// Get current position in mm
// Get current position in mm
float
st_get_axis_position_mm
(
AxisEnum
axis
);
float
st_get_axis_position_mm
(
AxisEnum
axis
);
// The stepper subsystem goes to sleep when it runs out of things to execute. Call this
// 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.
// to notify the subsystem that it is time to go to work.
void
st_wake_up
();
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
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
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
enable_endstops
(
bool
check
);
// Enable/disable endstop checking
void
checkStepperErrors
();
//Print errors detected by the stepper
void
checkStepperErrors
();
//Print errors detected by the stepper
void
enable_all_steppers
();
void
enable_all_steppers
();
void
disable_all_steppers
();
void
disable_all_steppers
();
void
finishAndDisableSteppers
();
void
finishAndDisableSteppers
();
extern
block_t
*
current_block
;
// A pointer to the block currently being traced
extern
block_t
*
current_block
;
// A pointer to the block currently being traced
void
quickStop
();
void
quickStop
();
void
digitalPotWrite
(
int
address
,
int
value
);
void
digitalPotWrite
(
int
address
,
int
value
);
void
microstep_ms
(
uint8_t
driver
,
int8_t
ms1
,
int8_t
ms2
);
void
microstep_ms
(
uint8_t
driver
,
int8_t
ms1
,
int8_t
ms2
);
void
microstep_mode
(
uint8_t
driver
,
uint8_t
stepping
);
void
microstep_mode
(
uint8_t
driver
,
uint8_t
stepping
);
void
digipot_init
();
void
digipot_init
();
void
digipot_current
(
uint8_t
driver
,
int
current
);
void
digipot_current
(
uint8_t
driver
,
int
current
);
void
microstep_init
();
void
microstep_init
();
void
microstep_readings
();
void
microstep_readings
();
#if ENABLED(Z_DUAL_ENDSTOPS)
#if ENABLED(Z_DUAL_ENDSTOPS)
void
In_Homing_Process
(
bool
state
);
void
In_Homing_Process
(
bool
state
);
void
Lock_z_motor
(
bool
state
);
void
Lock_z_motor
(
bool
state
);
void
Lock_z2_motor
(
bool
state
);
void
Lock_z2_motor
(
bool
state
);
#endif
#endif
#if ENABLED(BABYSTEPPING)
#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
void
babystep
(
const
uint8_t
axis
,
const
bool
direction
);
// perform a short step with a single stepper motor, outside of any convention
#endif
#endif
#if ENABLED(NPR2) // Multiextruder
#if ENABLED(NPR2) // Multiextruder
void
colorstep
(
long
csteps
,
const
bool
direction
);
void
colorstep
(
long
csteps
,
const
bool
direction
);
#endif
#endif
#endif // STEPPER_H
#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