mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-06-19 22:58:04 +03:00
Fix RSSI/AM-fix random data displayed switching/flicker
This commit is contained in:
4
am_fix.c
4
am_fix.c
@ -485,8 +485,8 @@ const uint8_t orig_pga = 6; // -3dB
|
|||||||
if (s != NULL)
|
if (s != NULL)
|
||||||
{
|
{
|
||||||
const unsigned int index = gain_table_index[vfo];
|
const unsigned int index = gain_table_index[vfo];
|
||||||
sprintf(s, "idx %2d %4ddB %3u", index, gain_dB[index], prev_rssi[vfo]);
|
sprintf(s, "%2u.%u %4ddB %3u", index, ARRAY_SIZE(gain_table) - 1, gain_dB[index], prev_rssi[vfo]);
|
||||||
//counter = 1;
|
counter = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
62
ui/main.c
62
ui/main.c
@ -66,38 +66,38 @@
|
|||||||
const unsigned int bar_x = 2;
|
const unsigned int bar_x = 2;
|
||||||
const unsigned int bar_width = LCD_WIDTH - 2 - bar_x;
|
const unsigned int bar_width = LCD_WIDTH - 2 - bar_x;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
// TX audio level
|
// TX audio level
|
||||||
|
|
||||||
if (gCurrentFunction != FUNCTION_TRANSMIT)
|
if (gCurrentFunction != FUNCTION_TRANSMIT)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const unsigned int voice_amp = BK4819_GetVoiceAmplitudeOut(); // 15:0
|
const unsigned int voice_amp = BK4819_GetVoiceAmplitudeOut(); // 15:0
|
||||||
|
|
||||||
// const unsigned int max = 65535;
|
// const unsigned int max = 65535;
|
||||||
// const unsigned int level = ((voice_amp * bar_width) + (max / 2)) / max; // with rounding
|
// const unsigned int level = ((voice_amp * bar_width) + (max / 2)) / max; // with rounding
|
||||||
// const unsigned int len = (level <= bar_width) ? level : bar_width;
|
// const unsigned int len = (level <= bar_width) ? level : bar_width;
|
||||||
|
|
||||||
// make non-linear to make more sensitive at low values
|
// make non-linear to make more sensitive at low values
|
||||||
const unsigned int level = voice_amp * 8;
|
const unsigned int level = voice_amp * 8;
|
||||||
const unsigned int sqrt_level = sqrt16((level < 65535) ? level : 65535);
|
const unsigned int sqrt_level = sqrt16((level < 65535) ? level : 65535);
|
||||||
const unsigned int len = (sqrt_level <= bar_width) ? sqrt_level : bar_width;
|
const unsigned int len = (sqrt_level <= bar_width) ? sqrt_level : bar_width;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// TX/RX AF input level (dB)
|
// TX/RX AF input level (dB)
|
||||||
|
|
||||||
const uint8_t af_tx_rx = BK4819_GetAfTxRx(); // 6:0
|
const uint8_t af_tx_rx = BK4819_GetAfTxRx(); // 6:0
|
||||||
const unsigned int max = 63;
|
const unsigned int max = 63;
|
||||||
const unsigned int level = (((uint16_t)af_tx_rx * bar_width) + (max / 2)) / max; // with rounding
|
const unsigned int level = (((uint16_t)af_tx_rx * bar_width) + (max / 2)) / max; // with rounding
|
||||||
const unsigned int len = (level <= bar_width) ? level : bar_width;
|
const unsigned int len = (level <= bar_width) ? level : bar_width;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint8_t *pLine = gFrameBuffer[line];
|
uint8_t *pLine = gFrameBuffer[line];
|
||||||
|
|
||||||
memset(pLine, 0, LCD_WIDTH);
|
memset(pLine, 0, LCD_WIDTH);
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
// solid bar
|
// solid bar
|
||||||
for (i = 0; i < bar_width; i++)
|
for (i = 0; i < bar_width; i++)
|
||||||
@ -107,7 +107,7 @@
|
|||||||
for (i = 0; i < bar_width; i += 2)
|
for (i = 0; i < bar_width; i += 2)
|
||||||
pLine[bar_x + i] = (i <= len) ? 0x7f : 0x41;
|
pLine[bar_x + i] = (i <= len) ? 0x7f : 0x41;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
||||||
ST7565_BlitFullScreen();
|
ST7565_BlitFullScreen();
|
||||||
}
|
}
|
||||||
@ -136,12 +136,12 @@
|
|||||||
uint8_t *pLine = gFrameBuffer[line];
|
uint8_t *pLine = gFrameBuffer[line];
|
||||||
|
|
||||||
unsigned int s_level = 0;
|
unsigned int s_level = 0;
|
||||||
|
|
||||||
if (gEeprom.KEY_LOCK && gKeypadLocked > 0)
|
if (gEeprom.KEY_LOCK && gKeypadLocked > 0)
|
||||||
return; // display is in use
|
return; // display is in use
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT || gScreenToDisplay != DISPLAY_MAIN)
|
if (gCurrentFunction == FUNCTION_TRANSMIT || gScreenToDisplay != DISPLAY_MAIN)
|
||||||
return; // display is in use
|
return; // display is in use
|
||||||
|
|
||||||
if (dBm >= -63) // S9+10dB
|
if (dBm >= -63) // S9+10dB
|
||||||
s_level = 10 + (((dBm - -63) / 10) * 10);
|
s_level = 10 + (((dBm - -63) / 10) * 10);
|
||||||
else
|
else
|
||||||
@ -180,8 +180,14 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo)
|
|||||||
gCurrentFunction == FUNCTION_MONITOR ||
|
gCurrentFunction == FUNCTION_MONITOR ||
|
||||||
gCurrentFunction == FUNCTION_INCOMING);
|
gCurrentFunction == FUNCTION_INCOMING);
|
||||||
|
|
||||||
if (rx)
|
#if defined(ENABLE_AM_FIX) && defined(ENABLE_AM_FIX_SHOW_DATA)
|
||||||
UI_DisplayRSSIBar(rssi, true);
|
if (gEeprom.VfoInfo[gEeprom.RX_CHANNEL].AM_mode && gSetting_AM_fix)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
if (rx)
|
||||||
|
UI_DisplayRSSIBar(rssi, true);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -205,11 +211,11 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo)
|
|||||||
const int16_t level01 = (level0 + level1) / 2;
|
const int16_t level01 = (level0 + level1) / 2;
|
||||||
const int16_t level12 = (level1 + level2) / 2;
|
const int16_t level12 = (level1 + level2) / 2;
|
||||||
const int16_t level23 = (level2 + level3) / 2;
|
const int16_t level23 = (level2 + level3) / 2;
|
||||||
|
|
||||||
gVFO_RSSI[vfo] = rssi;
|
gVFO_RSSI[vfo] = rssi;
|
||||||
|
|
||||||
uint8_t rssi_level = 0;
|
uint8_t rssi_level = 0;
|
||||||
|
|
||||||
if (rssi >= level3) rssi_level = 7;
|
if (rssi >= level3) rssi_level = 7;
|
||||||
else
|
else
|
||||||
if (rssi >= level23) rssi_level = 6;
|
if (rssi >= level23) rssi_level = 6;
|
||||||
@ -223,24 +229,24 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo)
|
|||||||
if (rssi >= level01) rssi_level = 2;
|
if (rssi >= level01) rssi_level = 2;
|
||||||
else
|
else
|
||||||
if (rssi >= level0) rssi_level = 1;
|
if (rssi >= level0) rssi_level = 1;
|
||||||
|
|
||||||
if (gVFO_RSSI_bar_level[vfo] == rssi_level)
|
if (gVFO_RSSI_bar_level[vfo] == rssi_level)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gVFO_RSSI_bar_level[vfo] = rssi_level;
|
gVFO_RSSI_bar_level[vfo] = rssi_level;
|
||||||
|
|
||||||
// **********************************************************
|
// **********************************************************
|
||||||
|
|
||||||
if (gEeprom.KEY_LOCK && gKeypadLocked > 0)
|
if (gEeprom.KEY_LOCK && gKeypadLocked > 0)
|
||||||
return; // display is in use
|
return; // display is in use
|
||||||
|
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT || gScreenToDisplay != DISPLAY_MAIN)
|
if (gCurrentFunction == FUNCTION_TRANSMIT || gScreenToDisplay != DISPLAY_MAIN)
|
||||||
return; // display is in use
|
return; // display is in use
|
||||||
|
|
||||||
pLine = gFrameBuffer[Line - 1];
|
pLine = gFrameBuffer[Line - 1];
|
||||||
|
|
||||||
memset(pLine, 0, 23);
|
memset(pLine, 0, 23);
|
||||||
|
|
||||||
if (rssi_level > 0)
|
if (rssi_level > 0)
|
||||||
{
|
{
|
||||||
//if (rssi_level >= 1)
|
//if (rssi_level >= 1)
|
||||||
@ -260,7 +266,7 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
pLine = NULL;
|
pLine = NULL;
|
||||||
|
|
||||||
ST7565_DrawLine(0, Line, 23, pLine);
|
ST7565_DrawLine(0, Line, 23, pLine);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
13
version.c
13
version.c
@ -1,9 +1,16 @@
|
|||||||
|
|
||||||
|
//#define ONE_OF_ELEVEN_VER
|
||||||
|
|
||||||
#ifdef GIT_HASH
|
#ifdef GIT_HASH
|
||||||
#define VER GIT_HASH
|
#define VER GIT_HASH
|
||||||
#else
|
#else
|
||||||
#define VER "230930"
|
#define VER "230929"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char Version[] = "OEFW-"VER;
|
#ifndef ONE_OF_ELEVEN_VER
|
||||||
const char UART_Version[] = "UV-K5 Firmware, Open Edition, OEFW-"VER"\r\n";
|
const char Version[] = "OEFW-"VER;
|
||||||
|
const char UART_Version[] = "UV-K5 Firmware, Open Edition, OEFW-"VER"\r\n";
|
||||||
|
#else
|
||||||
|
const char Version[] = "1o11-"VER;
|
||||||
|
const char UART_Version[] = "UV-K5 Firmware, Open Edition, 1o11-"VER"\r\n";
|
||||||
|
#endif
|
||||||
|
Reference in New Issue
Block a user