From 4f5396afd69f9796a9c65856f23db8e4f1e45a6a Mon Sep 17 00:00:00 2001 From: erikkaashoek Date: Thu, 9 Feb 2023 09:50:27 +0100 Subject: [PATCH] Improved FM modulation speed --- sa_core.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/sa_core.c b/sa_core.c index e252a45..20aa93f 100644 --- a/sa_core.c +++ b/sa_core.c @@ -1083,10 +1083,10 @@ void set_modulation_frequency(int f) f = 50; if (f > 10000) f = 10000; -#ifdef TINYSA4 - if (setting.modulation == MO_WFM && f > 2000) - f = 2000; -#endif +//#ifdef TINYSA4 +// if (setting.modulation == MO_WFM && f > 2000) +// f = 2000; +//#endif setting.modulation_frequency = f; dirty = true; } @@ -3555,11 +3555,17 @@ pureRSSI_t perform(bool break_on_operation, int i, freq_t f, int tracking) / sinus_index <<= 1; modulation_steps >>= 1; } - for (int i = 0; i < modulation_steps/4+1; i++) { - fm_modulation[i] = setting.modulation_deviation_div100 * sinus[i*sinus_index]/100; - fm_modulation[modulation_steps/2 - i] = fm_modulation[i]; - fm_modulation[modulation_steps/2 + i] = -fm_modulation[i]; - fm_modulation[modulation_steps - i] = -fm_modulation[i]; + if (modulation_steps > 8) { + for (int i = 0; i < modulation_steps/4+1; i++) { + fm_modulation[i] = setting.modulation_deviation_div100 * sinus[i*sinus_index]/100; + fm_modulation[modulation_steps/2 - i] = fm_modulation[i]; + fm_modulation[modulation_steps/2 + i] = -fm_modulation[i]; + fm_modulation[modulation_steps - i] = -fm_modulation[i]; + } + } else { + modulation_steps = 2; + fm_modulation[0] = (setting.modulation_deviation_div100*347)/100; + fm_modulation[1] = -fm_modulation[0]; } } #else