5c0d311d92
- Bug fix for step and direction invert masks not immediately being in effect. Now regenerates the masks when a user changes this setting. - Bug fix for probing cycle. G-code standard mandates that there is an error if the probe is already triggered when the cycle is commanded. However, Grbl may have motions to pull off a previous probing cycle in queue and can falsely lead to errors. To fix this, the triggered check is performed within the probing cycle itself, right after the planner buffer is synced. If there is an error, it will now alarm out as a probe fail.
56 lines
1.7 KiB
C
56 lines
1.7 KiB
C
/*
|
|
stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors
|
|
Part of Grbl
|
|
|
|
Copyright (c) 2011-2014 Sungeun K. Jeon
|
|
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
|
|
|
|
#ifndef SEGMENT_BUFFER_SIZE
|
|
#define SEGMENT_BUFFER_SIZE 6
|
|
#endif
|
|
|
|
// Initialize and setup the stepper motor subsystem
|
|
void stepper_init();
|
|
|
|
// Enable steppers, but cycle does not start unless called by motion control or runtime command.
|
|
void st_wake_up();
|
|
|
|
// Immediately disables steppers
|
|
void st_go_idle();
|
|
|
|
// Generate the step and direction port invert masks.
|
|
void st_generate_step_dir_invert_masks();
|
|
|
|
// Reset the stepper subsystem variables
|
|
void st_reset();
|
|
|
|
// Reloads step segment buffer. Called continuously by runtime execution system.
|
|
void st_prep_buffer();
|
|
|
|
// Called by planner_recalculate() when the executing block is updated by the new plan.
|
|
void st_update_plan_block_parameters();
|
|
|
|
// Called by runtime status reporting if realtime rate reporting is enabled in config.h.
|
|
#ifdef REPORT_REALTIME_RATE
|
|
float st_get_realtime_rate();
|
|
#endif
|
|
|
|
#endif
|