0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 22:31:25 +03:00

F+4 freq scan rounded to nearest step multiple

This commit is contained in:
OneOfEleven 2023-10-07 11:20:36 +01:00
parent 5ac08023b3
commit f93f3659f9
4 changed files with 24 additions and 9 deletions

View File

@ -1569,7 +1569,15 @@ void APP_TimeSlice10ms(void)
break; break;
Delta = Result - gScanFrequency; Delta = Result - gScanFrequency;
#if 0
gScanFrequency = Result; gScanFrequency = Result;
#else
{
const uint32_t step = StepFrequencyTable[gStepSetting];
gScanFrequency = ((Result + (step / 2)) / step) * step; // round to nearest step multiple
}
#endif
if (Delta < 0) if (Delta < 0)
Delta = -Delta; Delta = -Delta;

Binary file not shown.

Binary file not shown.

View File

@ -16,11 +16,14 @@
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#include "app/scanner.h" #include "app/scanner.h"
#include "dcs.h" #include "dcs.h"
#include "driver/st7565.h" #include "driver/st7565.h"
#include "external/printf/printf.h" #include "external/printf/printf.h"
#include "frequencies.h"
#include "misc.h" #include "misc.h"
#include "radio.h"
#include "ui/helper.h" #include "ui/helper.h"
#include "ui/scanner.h" #include "ui/scanner.h"
@ -34,15 +37,18 @@ void UI_DisplayScanner(void)
memset(String, 0, sizeof(String)); memset(String, 0, sizeof(String));
if (gScanSingleFrequency || (gScanCssState != SCAN_CSS_STATE_OFF && gScanCssState != SCAN_CSS_STATE_FAILED)) 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 else
// strcpy(String, "FREQ ***.*****"); {
strcpy(String, "FREQ scanning"); strcpy(String, "FREQ scanning");
}
UI_PrintString(String, 2, 0, 1, 8); UI_PrintString(String, 2, 0, 1, 8);
memset(String, 0, sizeof(String)); memset(String, 0, sizeof(String));
if (gScanCssState < SCAN_CSS_STATE_FOUND || !gScanUseCssResult) if (gScanCssState < SCAN_CSS_STATE_FOUND || !gScanUseCssResult)
// strcpy(String, " CTC ******");
strcpy(String, " CTC scanning"); strcpy(String, " CTC scanning");
else else
if (gScanCssResultType == CODE_TYPE_CONTINUOUS_TONE) if (gScanCssResultType == CODE_TYPE_CONTINUOUS_TONE)
@ -69,19 +75,20 @@ void UI_DisplayScanner(void)
else else
if (gScanCssState < SCAN_CSS_STATE_FOUND) if (gScanCssState < SCAN_CSS_STATE_FOUND)
{ {
// strcpy(String, "SCAN ");
// memset(String + 4, '.', 1 + (gScanProgressIndicator & 7u));
memset(String, 0, sizeof(String)); memset(String, 0, sizeof(String));
memset(String, '.', 15); memset(String, '.', 15);
String[gScanProgressIndicator % 15] = '#'; String[gScanProgressIndicator % 15] = '#';
} }
else else
if (gScanCssState == SCAN_CSS_STATE_FOUND) if (gScanCssState == SCAN_CSS_STATE_FOUND)
{
// strcpy(String, "SCAN CMP"); // strcpy(String, "SCAN CMP");
strcpy(String, " '*' to save"); strcpy(String, " '*' to save");
}
else else
{
strcpy(String, "SCAN FAIL"); strcpy(String, "SCAN FAIL");
}
Start = 2; Start = 2;
bCentered = 0; bCentered = 0;