diff options
| author | mark9064 <30447455+mark9064@users.noreply.github.com> | 2025-12-15 00:04:05 +0000 |
|---|---|---|
| committer | mark9064 <30447455+mark9064@users.noreply.github.com> | 2025-12-21 20:18:04 +0000 |
| commit | f2814dd5ed26b1b6478d781048c0df27f03ca1e3 (patch) | |
| tree | 90065c89b737b4587eeb66b60caadcdf946b2f60 /src/heartratetask/HeartRateTask.cpp | |
| parent | 52baa265feecbb83dcf0419cfaddcd75dde9ccba (diff) | |
Use RoundedDiv utility function across project
Diffstat (limited to 'src/heartratetask/HeartRateTask.cpp')
| -rw-r--r-- | src/heartratetask/HeartRateTask.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/heartratetask/HeartRateTask.cpp b/src/heartratetask/HeartRateTask.cpp index e9bc11a3..fa352772 100644 --- a/src/heartratetask/HeartRateTask.cpp +++ b/src/heartratetask/HeartRateTask.cpp @@ -3,16 +3,12 @@ #include <components/heartrate/HeartRateController.h> #include <limits> +#include "utility/Math.h" + using namespace Pinetime::Applications; namespace { constexpr TickType_t backgroundMeasurementTimeLimit = 30 * configTICK_RATE_HZ; - - // dividend + (divisor / 2) must be less than the max T value - template <std::unsigned_integral T> - constexpr T RoundedDiv(T dividend, T divisor) { - return (dividend + (divisor / static_cast<T>(2))) / divisor; - } } std::optional<TickType_t> HeartRateTask::BackgroundMeasurementInterval() const { @@ -48,9 +44,9 @@ TickType_t HeartRateTask::CurrentTaskDelay() { static_cast<uint64_t>((Pinetime::Controllers::Ppg::deltaTms)) < std::numeric_limits<uint32_t>::max(), "Overflow"); - TickType_t elapsedTarget = RoundedDiv(static_cast<uint32_t>(configTICK_RATE_HZ / 2) * (static_cast<uint32_t>(count) + 1U) * - static_cast<uint32_t>((Pinetime::Controllers::Ppg::deltaTms)), - static_cast<uint32_t>(1000 / 2)); + TickType_t elapsedTarget = Utility::RoundedDiv(static_cast<uint32_t>(configTICK_RATE_HZ / 2) * (static_cast<uint32_t>(count) + 1U) * + static_cast<uint32_t>((Pinetime::Controllers::Ppg::deltaTms)), + static_cast<uint32_t>(1000 / 2)); // On count overflow, reset both count and start time // Count is 16bit to avoid overflow in elapsedTarget |
