From b56c2eb68a53e6f81c11d3f68dc25c2196891873 Mon Sep 17 00:00:00 2001 From: Mikhail Yudin Date: Sun, 13 Aug 2023 13:36:18 +0700 Subject: [PATCH] feat: 32kHz to track satellite doppler, set BK bandwidth by api --- libs/k5_uv_system/api.s | 3 +++ libs/k5_uv_system/system.hpp | 1 + src/spectrum_fagci/spectrum.hpp | 15 ++++++++------- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/libs/k5_uv_system/api.s b/libs/k5_uv_system/api.s index bf2b86c..5f09def 100644 --- a/libs/k5_uv_system/api.s +++ b/libs/k5_uv_system/api.s @@ -43,6 +43,9 @@ BK4819Reset = 0xa7cc + 1; .globl IntDivide IntDivide = 0x128 + 1; +.globl BK4819SetChannelBandwidth +BK4819SetChannelBandwidth = 0xaa48 + 1; + .globl BK4819WriteFrequency BK4819WriteFrequency = 0xaabc + 1; diff --git a/libs/k5_uv_system/system.hpp b/libs/k5_uv_system/system.hpp index 672b8bf..ed02fb6 100644 --- a/libs/k5_uv_system/system.hpp +++ b/libs/k5_uv_system/system.hpp @@ -23,6 +23,7 @@ extern "C" { void AirCopyFskSetup(); void BK4819Reset(); int IntDivide(int s32Divident, int s32Divisor); + void BK4819SetChannelBandwidth(bool narrow); void BK4819WriteFrequency(unsigned int u32Frequency); void BK4819SetPaGain(unsigned short u16PaBias, unsigned int u32Frequency); void BK4819ConfigureAndStartTxFsk(); diff --git a/src/spectrum_fagci/spectrum.hpp b/src/spectrum_fagci/spectrum.hpp index ec07a1c..2ff7bee 100644 --- a/src/spectrum_fagci/spectrum.hpp +++ b/src/spectrum_fagci/spectrum.hpp @@ -10,11 +10,11 @@ public: static constexpr auto DrawingEndY = 42; static constexpr auto BarPos = 5 * 128; - static constexpr u32 modeHalfSpectrumBW[6] = {50_KHz, 100_KHz, 200_KHz, + static constexpr u32 modeHalfSpectrumBW[6] = {16_KHz, 100_KHz, 200_KHz, 400_KHz, 800_KHz, 1600_KHz}; - static constexpr u16 modeScanStep[6] = {1562_Hz, 6250_Hz, 12500_Hz, - 25_KHz, 25_KHz, 25_KHz}; - static constexpr u8 modeXdiv[6] = {1, 2, 2, 2, 1, 0}; + static constexpr u16 modeScanStep[6] = {1_KHz, 6250_Hz, 12500_Hz, + 25_KHz, 25_KHz, 25_KHz}; + static constexpr u8 modeXdiv[6] = {2, 2, 2, 2, 1, 0}; u8 rssiHistory[128] = {}; u32 fMeasure; @@ -289,11 +289,12 @@ private: void ResetPeak() { peakRssi = 0; } void SetBW() { - auto Reg = BK4819Read(0x43); + /* auto Reg = BK4819Read(0x43); Reg &= ~(0b11 << 4); if (mode >= 3) - Reg |= 0b11 << 4; - BK4819Write(0x43, Reg); + Reg |= 0b10 << 4; + BK4819Write(0x43, Reg); */ + BK4819SetChannelBandwidth(mode < 3); } void MuteAF() { BK4819Write(0x47, 0); } void RestoreOldAFSettings() { BK4819Write(0x47, oldAFSettings); }