From 4e687fd2cb2193df180a78d914ca64013a672bb0 Mon Sep 17 00:00:00 2001 From: David Crocker Date: Mon, 1 Nov 2021 09:34:37 +0000 Subject: In laser mode, turn laser off immediately when the move ends --- src/Movement/Move.cpp | 6 +++--- src/Movement/Move.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/Movement') diff --git a/src/Movement/Move.cpp b/src/Movement/Move.cpp index 718da83d..f3bbc97e 100644 --- a/src/Movement/Move.cpp +++ b/src/Movement/Move.cpp @@ -1194,7 +1194,7 @@ void Move::WakeMoveTaskFromISR() noexcept Task *Move::laserTask = nullptr; // the task used to manage laser power or IOBits -extern "C" void LaserTaskStart(void * pvParameters) noexcept +extern "C" [[noreturn]] void LaserTaskStart(void * pvParameters) noexcept { reprap.GetMove().LaserTaskRun(); } @@ -1242,7 +1242,7 @@ void Move::LaserTaskRun() noexcept uint32_t ticks; while ((ticks = mainDDARing.ManageLaserPower()) != 0) { - delay(ticks); + (void)TaskBase::Take(ticks); } # endif } @@ -1253,7 +1253,7 @@ void Move::LaserTaskRun() noexcept uint32_t ticks; while ((ticks = reprap.GetPortControl().UpdatePorts()) != 0) { - delay(ticks); + (void)TaskBase::Take(ticks); } # endif } diff --git a/src/Movement/Move.h b/src/Movement/Move.h index 4caf011f..8d4e560e 100644 --- a/src/Movement/Move.h +++ b/src/Movement/Move.h @@ -192,7 +192,7 @@ public: static float MotorStepsToMovement(size_t drive, int32_t endpoint) noexcept; // Convert number of motor steps to motor position #if SUPPORT_LASER || SUPPORT_IOBITS - void LaserTaskRun() noexcept; + [[noreturn]] void LaserTaskRun() noexcept; static void CreateLaserTask() noexcept; // create the laser task if we haven't already static void WakeLaserTask() noexcept; // wake up the laser task, called at the start of a new move -- cgit v1.2.3