Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-11-01 12:34:37 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-11-01 12:34:37 +0300
commit4e687fd2cb2193df180a78d914ca64013a672bb0 (patch)
tree1a185dcf2c3baf006b492566397df87f26d64ae4
parent97ead36a9b3e8a5ee3019c7a3c1ac6a4289408cc (diff)
In laser mode, turn laser off immediately when the move ends
-rw-r--r--src/Movement/Move.cpp6
-rw-r--r--src/Movement/Move.h2
2 files changed, 4 insertions, 4 deletions
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::LaserTaskStackWords> *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