#define N_AXIS
Defines number of axes supported - minimum 3, maximum 8. If more than 3 axes are configured a complia...
Definition: config.h:42
int8_t offset_id_t
Definition: gcode.h:36
void(* spindle_update_pwm_ptr)(struct spindle_ptrs *spindle, uint_fast16_t pwm)
Pointer to function for updating spindle speed on the fly.
Definition: spindle_control.h:169
void(* spindle_update_rpm_ptr)(struct spindle_ptrs *spindle, float rpm)
Pointer to function for updating spindle RPM.
Definition: spindle_control.h:174
void stepper_driver_interrupt_handler(void)
squaring_mode_t
Definition: stepper.h:29
@ SquaringMode_A
1
Definition: stepper.h:31
@ SquaringMode_B
2
Definition: stepper.h:32
@ SquaringMode_Both
0
Definition: stepper.h:30
float st_get_realtime_rate(void)
Definition: stepper.c:1096
void st_parking_restore_buffer(void)
Definition: stepper.c:619
void st_prep_buffer(void)
Definition: stepper.c:650
void st_update_plan_block_parameters(void)
Definition: stepper.c:591
void st_rpm_changed(float rpm)
Definition: stepper.c:585
void st_wake_up(void)
Definition: stepper.c:193
struct st_segment segment_t
struct st_block st_block_t
Holds the planner block Bresenham algorithm execution data for the segments in the segment buffer.
struct stepper stepper_t
Stepper ISR data struct. Contains the running data for the main stepper ISR.
void st_go_idle(void)
Definition: stepper.c:203
void st_parking_setup_buffer()
Definition: stepper.c:601
void st_reset(void)
Definition: stepper.c:535
offset_id_t st_get_offset_id(void)
Definition: stepper.c:1107
Data for M62, M63 and M67 commands when executed synchronized with motion.
Definition: gcode.h:269
Handlers and data for spindle support.
Definition: spindle_control.h:270
Holds the planner block Bresenham algorithm execution data for the segments in the segment buffer.
Definition: stepper.h:40
char * message
Message to be displayed when block is executed.
Definition: stepper.h:50
struct st_block * next
Pointer to next element in cirular list of blocks.
Definition: stepper.h:42
axes_signals_t direction_bits
Definition: stepper.h:45
spindle_ptrs_t * spindle
Pointer to current spindle for motions that require dynamic RPM adjustment.
Definition: stepper.h:55
gc_override_flags_t overrides
Block bitfield variable for overrides.
Definition: stepper.h:46
bool backlash_motion
Definition: stepper.h:52
uint_fast8_t id
Id may be used by driver to track changes.
Definition: stepper.h:41
uint32_t step_event_count
Definition: stepper.h:44
bool dynamic_rpm
Tracks motions that require dynamic RPM adjustment.
Definition: stepper.h:53
uint32_t steps[N_AXIS]
Definition: stepper.h:43
float programmed_rate
Definition: stepper.h:49
offset_id_t offset_id
Definition: stepper.h:54
float millimeters
Definition: stepper.h:48
float steps_per_mm
Definition: stepper.h:47
output_command_t * output_commands
Output commands (linked list) to be performed when block is executed.
Definition: stepper.h:51
float spindle_rpm
Spindle RPM to be set at the start of the segment execution.
Definition: stepper.h:67
uint_fast16_t spindle_pwm
Spindle PWM to be set at the start of segment execution.
Definition: stepper.h:66
spindle_update_rpm_ptr update_rpm
Valid pointer to spindle.update_rpm() if set spindle speed at the start of the segment execution.
Definition: stepper.h:72
float current_rate
Definition: stepper.h:63
uint32_t cycles_per_tick
Step distance traveled per ISR tick, aka step rate.
Definition: stepper.h:62
struct st_segment * next
Pointer to next element in cirular list of segments.
Definition: stepper.h:60
uint_fast8_t amass_level
Indicates AMASS level for the ISR to execute this segment.
Definition: stepper.h:70
uint_fast8_t id
Id may be used by driver to track changes.
Definition: stepper.h:59
st_block_t * exec_block
Pointer to the block data for the segment.
Definition: stepper.h:61
uint_fast16_t n_step
Number of step events to be executed for this segment.
Definition: stepper.h:65
spindle_update_pwm_ptr update_pwm
Valid pointer to spindle.update_pwm() if set spindle speed at the start of the segment execution.
Definition: stepper.h:71
bool cruising
True when in cruising part of profile, only set for spindle synced moves.
Definition: stepper.h:69
float target_position
Target position of segment relative to block start, used by spindle sync code.
Definition: stepper.h:64
bool spindle_sync
True if block is spindle synchronized.
Definition: stepper.h:68
Stepper ISR data struct. Contains the running data for the main stepper ISR.
Definition: stepper.h:76
bool new_block
Set to true when a new block is started, might be referenced by driver code for advanced functionalit...
Definition: stepper.h:96
axes_signals_t dir_outbits
The direction signals to be output. The direction signals may be output only when stepper::dir_change...
Definition: stepper.h:99
uint_fast8_t amass_level
AMASS level for this segment.
Definition: stepper.h:101
uint32_t step_event_count
Number of step pulse events to be output by this segment.
Definition: stepper.h:104
st_block_t * exec_block
Pointer to the block data for the segment being executed.
Definition: stepper.h:105
bool dir_change
Set to true on direction changes, might be referenced by driver for advanced functionality.
Definition: stepper.h:97
uint32_t counter_x
Counter variable for the Bresenham line tracer, X-axis.
Definition: stepper.h:77
uint32_t counter_y
Counter variable for the Bresenham line tracer, Y-axis.
Definition: stepper.h:78
uint_fast16_t step_count
Steps remaining in line segment motion.
Definition: stepper.h:103
uint32_t steps[N_AXIS]
Number of step pulse event events per axis step pulse generated.
Definition: stepper.h:100
segment_t * exec_segment
Pointer to the segment being executed.
Definition: stepper.h:106
axes_signals_t step_outbits
The stepping signals to be output.
Definition: stepper.h:98
uint32_t counter_z
< Counter variable for the Bresenham line tracer, Z-axis
Definition: stepper.h:95
Definition: nuts_bolts.h:130
Override flags.
Definition: gcode.h:329