From d3ee4178073b8c3b771ef74592280319da87c616 Mon Sep 17 00:00:00 2001 From: mndza Date: Wed, 9 Jul 2025 12:29:39 +0200 Subject: [PATCH] firmware: fix max283x fractional long division --- firmware/common/max2837.c | 4 ++-- firmware/common/max2839.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/common/max2837.c b/firmware/common/max2837.c index 5fdc2ea4..9d04f6f6 100644 --- a/firmware/common/max2837.c +++ b/firmware/common/max2837.c @@ -233,8 +233,8 @@ void max2837_set_frequency(max2837_driver_t* const drv, uint32_t freq) div_cmp = 30000000; for (i = 0; i < 20; i++) { div_frac <<= 1; - div_cmp >>= 1; - if (div_rem > div_cmp) { + div_rem <<= 1; + if (div_rem >= div_cmp) { div_frac |= 0x1; div_rem -= div_cmp; } diff --git a/firmware/common/max2839.c b/firmware/common/max2839.c index 868855d4..86ab0ba9 100644 --- a/firmware/common/max2839.c +++ b/firmware/common/max2839.c @@ -239,8 +239,8 @@ void max2839_set_frequency(max2839_driver_t* const drv, uint32_t freq) div_cmp = 30000000; for (i = 0; i < 20; i++) { div_frac <<= 1; - div_cmp >>= 1; - if (div_rem > div_cmp) { + div_rem <<= 1; + if (div_rem >= div_cmp) { div_frac |= 0x1; div_rem -= div_cmp; }