mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-12-02 08:09:36 +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.
|
* 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_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.
|
* 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 ENABLED(LASER_POWER_TRAP)
|
||||||
if (cutter.cutter_mode == CUTTER_MODE_CONTINUOUS) {
|
if (cutter.cutter_mode == CUTTER_MODE_CONTINUOUS) {
|
||||||
if (planner.laser_inline.status.isPowered && planner.laser_inline.status.isEnabled) {
|
if (planner.laser_inline.status.isPowered && planner.laser_inline.status.isEnabled) {
|
||||||
if (current_block->laser.trap_ramp_entry_incr > 0) {
|
if (current_block->laser.trap_ramp_entry_incr > 0) {
|
||||||
cutter.apply_power(current_block->laser.trap_ramp_active_pwr);
|
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.
|
// Not a powered move.
|
||||||
@ -2524,15 +2521,12 @@ hal_timer_t Stepper::block_phase_isr() {
|
|||||||
}
|
}
|
||||||
#endif // LIN_ADVANCE
|
#endif // LIN_ADVANCE
|
||||||
|
|
||||||
/**
|
// Adjust Laser Power - Decelerating
|
||||||
* Adjust Laser Power - Decelerating
|
|
||||||
* trap_ramp_entry_decr - holds the precalculated value to decrease the current power per decel step.
|
|
||||||
*/
|
|
||||||
#if ENABLED(LASER_POWER_TRAP)
|
#if ENABLED(LASER_POWER_TRAP)
|
||||||
if (cutter.cutter_mode == CUTTER_MODE_CONTINUOUS) {
|
if (cutter.cutter_mode == CUTTER_MODE_CONTINUOUS) {
|
||||||
if (planner.laser_inline.status.isPowered && planner.laser_inline.status.isEnabled) {
|
if (planner.laser_inline.status.isPowered && planner.laser_inline.status.isEnabled) {
|
||||||
if (current_block->laser.trap_ramp_exit_decr > 0) {
|
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);
|
cutter.apply_power(current_block->laser.trap_ramp_active_pwr);
|
||||||
}
|
}
|
||||||
// Not a powered move.
|
// Not a powered move.
|
||||||
@ -2557,30 +2551,25 @@ hal_timer_t Stepper::block_phase_isr() {
|
|||||||
if (la_active)
|
if (la_active)
|
||||||
la_interval = calc_timer_interval(current_block->nominal_rate >> current_block->la_scaling);
|
la_interval = calc_timer_interval(current_block->nominal_rate >> current_block->la_scaling);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Adjust Laser Power - Cruise
|
||||||
|
#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) {
|
||||||
|
current_block->laser.trap_ramp_active_pwr = current_block->laser.power;
|
||||||
|
cutter.apply_power(current_block->laser.power);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Not a powered move.
|
||||||
|
else cutter.apply_power(0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// The timer interval is just the nominal value for the nominal speed
|
// The timer interval is just the nominal value for the nominal speed
|
||||||
interval = ticks_nominal;
|
interval = ticks_nominal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adjust Laser Power - Cruise
|
|
||||||
* power - direct or floor adjusted active laser power.
|
|
||||||
*/
|
|
||||||
#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;
|
|
||||||
cutter.apply_power(current_block->laser.power);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Not a powered move.
|
|
||||||
else cutter.apply_power(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(LASER_FEATURE)
|
#if ENABLED(LASER_FEATURE)
|
||||||
|
Loading…
Reference in New Issue
Block a user