mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-30 07:17:59 +00:00
🐛 Move LASER_POWER_TRAP cruise to cruise block (#27031)
This commit is contained in:
parent
e37415c95b
commit
383e6f4646
@ -2441,16 +2441,13 @@ hal_timer_t Stepper::block_phase_isr() {
|
||||
* Laser power variables are calulated and stored in this block by the planner code.
|
||||
* trap_ramp_active_pwr - the active power in this block across accel or decel trap steps.
|
||||
* trap_ramp_entry_incr - holds the precalculated value to increase the current power per accel step.
|
||||
*
|
||||
* Apply the starting active power and then increase power per step by the trap_ramp_entry_incr value if positive.
|
||||
*/
|
||||
|
||||
#if ENABLED(LASER_POWER_TRAP)
|
||||
if (cutter.cutter_mode == CUTTER_MODE_CONTINUOUS) {
|
||||
if (planner.laser_inline.status.isPowered && planner.laser_inline.status.isEnabled) {
|
||||
if (current_block->laser.trap_ramp_entry_incr > 0) {
|
||||
cutter.apply_power(current_block->laser.trap_ramp_active_pwr);
|
||||
current_block->laser.trap_ramp_active_pwr += current_block->laser.trap_ramp_entry_incr;
|
||||
current_block->laser.trap_ramp_active_pwr += current_block->laser.trap_ramp_entry_incr * steps_per_isr;
|
||||
}
|
||||
}
|
||||
// Not a powered move.
|
||||
@ -2524,15 +2521,12 @@ hal_timer_t Stepper::block_phase_isr() {
|
||||
}
|
||||
#endif // LIN_ADVANCE
|
||||
|
||||
/**
|
||||
* Adjust Laser Power - Decelerating
|
||||
* trap_ramp_entry_decr - holds the precalculated value to decrease the current power per decel step.
|
||||
*/
|
||||
// Adjust Laser Power - Decelerating
|
||||
#if ENABLED(LASER_POWER_TRAP)
|
||||
if (cutter.cutter_mode == CUTTER_MODE_CONTINUOUS) {
|
||||
if (planner.laser_inline.status.isPowered && planner.laser_inline.status.isEnabled) {
|
||||
if (current_block->laser.trap_ramp_exit_decr > 0) {
|
||||
current_block->laser.trap_ramp_active_pwr -= current_block->laser.trap_ramp_exit_decr;
|
||||
current_block->laser.trap_ramp_active_pwr -= current_block->laser.trap_ramp_exit_decr * steps_per_isr;
|
||||
cutter.apply_power(current_block->laser.trap_ramp_active_pwr);
|
||||
}
|
||||
// Not a powered move.
|
||||
@ -2557,19 +2551,10 @@ hal_timer_t Stepper::block_phase_isr() {
|
||||
if (la_active)
|
||||
la_interval = calc_timer_interval(current_block->nominal_rate >> current_block->la_scaling);
|
||||
#endif
|
||||
}
|
||||
|
||||
// The timer interval is just the nominal value for the nominal speed
|
||||
interval = ticks_nominal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjust Laser Power - Cruise
|
||||
* power - direct or floor adjusted active laser power.
|
||||
*/
|
||||
// Adjust Laser Power - Cruise
|
||||
#if ENABLED(LASER_POWER_TRAP)
|
||||
if (cutter.cutter_mode == CUTTER_MODE_CONTINUOUS) {
|
||||
if (step_events_completed + 1 == accelerate_until) {
|
||||
if (planner.laser_inline.status.isPowered && planner.laser_inline.status.isEnabled) {
|
||||
if (current_block->laser.trap_ramp_entry_incr > 0) {
|
||||
current_block->laser.trap_ramp_active_pwr = current_block->laser.power;
|
||||
@ -2579,10 +2564,14 @@ hal_timer_t Stepper::block_phase_isr() {
|
||||
// Not a powered move.
|
||||
else cutter.apply_power(0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// The timer interval is just the nominal value for the nominal speed
|
||||
interval = ticks_nominal;
|
||||
}
|
||||
}
|
||||
|
||||
#if ENABLED(LASER_FEATURE)
|
||||
/**
|
||||
* CUTTER_MODE_DYNAMIC is experimental and developing.
|
||||
|
Loading…
Reference in New Issue
Block a user