diff --git a/app/app.c b/app/app.c index 4da06e8..8578416 100644 --- a/app/app.c +++ b/app/app.c @@ -1568,9 +1568,17 @@ void APP_TimeSlice10ms(void) if (!BK4819_GetFrequencyScanResult(&Result)) break; - Delta = Result - gScanFrequency; - gScanFrequency = Result; + Delta = Result - gScanFrequency; + #if 0 + gScanFrequency = Result; + #else + { + const uint32_t step = StepFrequencyTable[gStepSetting]; + gScanFrequency = ((Result + (step / 2)) / step) * step; // round to nearest step multiple + } + #endif + if (Delta < 0) Delta = -Delta; if (Delta < 100) diff --git a/firmware.bin b/firmware.bin index f692137..b598b40 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index bbb472c..5c7a47f 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/ui/scanner.c b/ui/scanner.c index a4f7984..a055a95 100644 --- a/ui/scanner.c +++ b/ui/scanner.c @@ -16,11 +16,14 @@ #include #include + #include "app/scanner.h" #include "dcs.h" #include "driver/st7565.h" #include "external/printf/printf.h" +#include "frequencies.h" #include "misc.h" +#include "radio.h" #include "ui/helper.h" #include "ui/scanner.h" @@ -34,15 +37,18 @@ void UI_DisplayScanner(void) memset(String, 0, sizeof(String)); if (gScanSingleFrequency || (gScanCssState != SCAN_CSS_STATE_OFF && gScanCssState != SCAN_CSS_STATE_FAILED)) - sprintf(String, "FREQ %u.%05u", gScanFrequency / 100000, gScanFrequency % 100000); + { + const uint32_t freq = gScanFrequency; + sprintf(String, "FREQ %u.%05u", freq / 100000, freq % 100000); + } else -// strcpy(String, "FREQ ***.*****"); + { strcpy(String, "FREQ scanning"); + } UI_PrintString(String, 2, 0, 1, 8); memset(String, 0, sizeof(String)); if (gScanCssState < SCAN_CSS_STATE_FOUND || !gScanUseCssResult) -// strcpy(String, " CTC ******"); strcpy(String, " CTC scanning"); else if (gScanCssResultType == CODE_TYPE_CONTINUOUS_TONE) @@ -69,20 +75,21 @@ void UI_DisplayScanner(void) else if (gScanCssState < SCAN_CSS_STATE_FOUND) { -// strcpy(String, "SCAN "); -// memset(String + 4, '.', 1 + (gScanProgressIndicator & 7u)); - memset(String, 0, sizeof(String)); memset(String, '.', 15); String[gScanProgressIndicator % 15] = '#'; } else if (gScanCssState == SCAN_CSS_STATE_FOUND) + { // strcpy(String, "SCAN CMP"); strcpy(String, " '*' to save"); + } else + { strcpy(String, "SCAN FAIL"); - + } + Start = 2; bCentered = 0; }