1
0
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:
Mihai 2024-05-17 04:05:27 +03:00 committed by GitHub
parent e37415c95b
commit 383e6f4646
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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.