0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-27 22:01:26 +03:00
This commit is contained in:
OneOfEleven 2023-11-14 06:44:52 +00:00
parent ee2cc196dd
commit 5cb1f131e8
7 changed files with 107 additions and 122 deletions

Binary file not shown.

Binary file not shown.

190
font.c
View File

@ -380,101 +380,101 @@ const uint8_t g_font_small[95][6] =
#ifdef ENABLE_SMALL_BOLD
const uint8_t g_font_small_bold[95][6] =
{
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x5E, 0x5E, 0x00, 0x00},
{0x06, 0x06, 0x00, 0x06, 0x06, 0x00},
{0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00},
{0x2E, 0x6B, 0x7F, 0x6B, 0x3A, 0x00},
{0x63, 0x33, 0x18, 0x0C, 0x66, 0x63},
{0x30, 0x4B, 0x4D, 0x55, 0x22, 0x50},
{0x00, 0x00, 0x07, 0x07, 0x00, 0x00},
{0x00, 0x1C, 0x3E, 0x63, 0x41, 0x00},
{0x00, 0x41, 0x63, 0x3E, 0x1C, 0x00},
{0x00, 0x2A, 0x1C, 0x1C, 0x2A, 0x00},
{0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18},
{0x00, 0x40, 0x60, 0x20, 0x00, 0x00},
{0x00, 0x18, 0x18, 0x18, 0x18, 0x00},
{0x00, 0x00, 0x60, 0x60, 0x00, 0x00},
{0x60, 0x30, 0x18, 0x0C, 0x06, 0x03},
{0x3E, 0x7F, 0x63, 0x63, 0x7F, 0x3E},
{0x64, 0x66, 0x7F, 0x7F, 0x60, 0x60},
{0x62, 0x73, 0x7B, 0x7B, 0x6F, 0x66},
{0x63, 0x63, 0x6B, 0x6B, 0x7F, 0x36},
{0x38, 0x3C, 0x36, 0x7F, 0x7F, 0x30},
{0x6F, 0x6F, 0x6B, 0x6B, 0x7B, 0x33},
{0x3E, 0x7F, 0x6B, 0x6B, 0x7B, 0x32},
{0x03, 0x03, 0x73, 0x7B, 0x0F, 0x07},
{0x36, 0x7F, 0x6B, 0x6B, 0x7F, 0x36},
{0x06, 0x6F, 0x6B, 0x6B, 0x7F, 0x3E},
{0x00, 0x00, 0x6C, 0x6C, 0x00, 0x00},
{0x00, 0x40, 0x6C, 0x2C, 0x00, 0x00},
{0x08, 0x14, 0x22, 0x41, 0x00, 0x00},
{0x36, 0x36, 0x36, 0x36, 0x36, 0x00},
{0x00, 0x41, 0x22, 0x14, 0x08, 0x00},
{0x06, 0x07, 0x53, 0x5B, 0x1F, 0x0E},
{0x30, 0x7B, 0x6B, 0x7B, 0x7F, 0x3E},
{0x7E, 0x7F, 0x1B, 0x1B, 0x7F, 0x7E},
{0x7F, 0x7F, 0x6B, 0x6B, 0x7F, 0x36},
{0x3E, 0x7F, 0x63, 0x63, 0x63, 0x36},
{0x7F, 0x7F, 0x63, 0x63, 0x7F, 0x3E},
{0x7F, 0x7F, 0x6B, 0x6B, 0x6B, 0x63},
{0x7F, 0x7F, 0x1B, 0x1B, 0x1B, 0x03},
{0x3E, 0x7F, 0x63, 0x6B, 0x7B, 0x3A},
{0x7F, 0x7F, 0x0C, 0x0C, 0x7F, 0x7F},
{0x63, 0x63, 0x7F, 0x7F, 0x63, 0x63},
{0x30, 0x73, 0x63, 0x7F, 0x3F, 0x03},
{0x7F, 0x7F, 0x1C, 0x36, 0x63, 0x41},
{0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60},
{0x7F, 0x7F, 0x06, 0x06, 0x7F, 0x7F},
{0x7F, 0x7F, 0x0C, 0x18, 0x7F, 0x7F},
{0x3E, 0x7F, 0x63, 0x63, 0x7F, 0x3E},
{0x7F, 0x7F, 0x1B, 0x1B, 0x1F, 0x0E},
{0x3E, 0x7F, 0x63, 0x73, 0x7F, 0x7E},
{0x7F, 0x7F, 0x1B, 0x3B, 0x7F, 0x66},
{0x66, 0x6F, 0x6B, 0x6B, 0x7B, 0x33},
{0x03, 0x03, 0x7F, 0x7F, 0x03, 0x03},
{0x3F, 0x7F, 0x60, 0x60, 0x7F, 0x3F},
{0x1F, 0x3F, 0x60, 0x60, 0x3F, 0x1F},
{0x3F, 0x7F, 0x30, 0x30, 0x7F, 0x3F},
{0x63, 0x77, 0x1C, 0x1C, 0x77, 0x63},
{0x07, 0x0F, 0x78, 0x78, 0x0F, 0x07},
{0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63},
{0x00, 0x7F, 0x7F, 0x63, 0x63, 0x00},
{0x01, 0x02, 0x04, 0x08, 0x10, 0x60},
{0x00, 0x63, 0x63, 0x7F, 0x7F, 0x00},
{0x0C, 0x0E, 0x03, 0x03, 0x0E, 0x0C},
{0x60, 0x60, 0x60, 0x60, 0x60, 0x60},
{0x00, 0x03, 0x07, 0x06, 0x00, 0x00},
{0x20, 0x76, 0x56, 0x56, 0x7E, 0x3C},
{0x7F, 0x7F, 0x6C, 0x6C, 0x7C, 0x38},
{0x38, 0x7C, 0x6C, 0x6C, 0x6C, 0x00},
{0x38, 0x7C, 0x6C, 0x6C, 0x7F, 0x7F},
{0x3C, 0x7E, 0x56, 0x56, 0x5E, 0x0C},
{0x7E, 0x7F, 0x1B, 0x1B, 0x02, 0x00},
{0x0C, 0x5E, 0x56, 0x56, 0x7E, 0x3C},
{0x7F, 0x7F, 0x0C, 0x0C, 0x7C, 0x78},
{0x00, 0x00, 0x7A, 0x7A, 0x00, 0x00},
{0x30, 0x60, 0x60, 0x7D, 0x3D, 0x00},
{0x7F, 0x7F, 0x18, 0x3C, 0x7E, 0x66},
{0x00, 0x3F, 0x7F, 0x40, 0x00, 0x00},
{0x7C, 0x7C, 0x18, 0x18, 0x7C, 0x7C},
{0x7C, 0x7C, 0x0C, 0x0C, 0x7C, 0x78},
{0x3C, 0x7E, 0x66, 0x66, 0x7E, 0x3C},
{0x7E, 0x7E, 0x36, 0x36, 0x3E, 0x1C},
{0x1C, 0x3E, 0x36, 0x7E, 0x7E, 0x60},
{0x7C, 0x7C, 0x0C, 0x0C, 0x18, 0x00},
{0x4C, 0x5E, 0x56, 0x56, 0x76, 0x20},
{0x3F, 0x7F, 0x6C, 0x6C, 0x60, 0x00},
{0x3C, 0x7C, 0x60, 0x60, 0x7C, 0x3C},
{0x0C, 0x3C, 0x70, 0x70, 0x3C, 0x0C},
{0x3C, 0x7C, 0x30, 0x30, 0x7C, 0x3C},
{0x44, 0x6C, 0x38, 0x38, 0x6C, 0x44},
{0x06, 0x6E, 0x68, 0x68, 0x7E, 0x3E},
{0x66, 0x76, 0x7E, 0x6E, 0x66, 0x00},
{0x08, 0x3E, 0x77, 0x41, 0x00, 0x00},
{0x00, 0x00, 0x7F, 0x00, 0x00, 0x00},
{0x00, 0x41, 0x77, 0x3E, 0x08, 0x00},
{0x0C, 0x06, 0x0C, 0x18, 0x0C, 0x00}
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' '
{0x00, 0x00, 0x5E, 0x5E, 0x00, 0x00}, // '!'
{0x06, 0x06, 0x00, 0x06, 0x06, 0x00}, // '"'
{0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00}, // '#'
{0x2E, 0x6B, 0x7F, 0x6B, 0x3A, 0x00}, // '$'
{0x63, 0x33, 0x18, 0x0C, 0x66, 0x63}, // '%'
{0x30, 0x4B, 0x4D, 0x55, 0x22, 0x50}, // '&'
{0x00, 0x00, 0x07, 0x07, 0x00, 0x00}, // '''
{0x00, 0x1C, 0x3E, 0x63, 0x41, 0x00}, // '('
{0x00, 0x41, 0x63, 0x3E, 0x1C, 0x00}, // ')'
{0x00, 0x2A, 0x1C, 0x1C, 0x2A, 0x00}, // '*'
{0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18}, // '+'
{0x00, 0x40, 0x60, 0x20, 0x00, 0x00}, // ','
{0x00, 0x18, 0x18, 0x18, 0x18, 0x00}, // '-'
{0x00, 0x00, 0x60, 0x60, 0x00, 0x00}, // '.'
{0x60, 0x30, 0x18, 0x0C, 0x06, 0x03}, // '/'
{0x3E, 0x7F, 0x63, 0x63, 0x7F, 0x3E}, // '0'
{0x64, 0x66, 0x7F, 0x7F, 0x60, 0x60}, // '1'
{0x62, 0x73, 0x7B, 0x7B, 0x6F, 0x66}, // '2'
{0x63, 0x63, 0x6B, 0x6B, 0x7F, 0x36}, // '3'
{0x38, 0x3C, 0x36, 0x7F, 0x7F, 0x30}, // '4'
{0x6F, 0x6F, 0x6B, 0x6B, 0x7B, 0x33}, // '5'
{0x3E, 0x7F, 0x6B, 0x6B, 0x7B, 0x32}, // '6'
{0x03, 0x03, 0x73, 0x7B, 0x0F, 0x07}, // '7'
{0x36, 0x7F, 0x6B, 0x6B, 0x7F, 0x36}, // '8'
{0x06, 0x6F, 0x6B, 0x6B, 0x7F, 0x3E}, // '9'
{0x00, 0x00, 0x6C, 0x6C, 0x00, 0x00}, // ':'
{0x00, 0x40, 0x6C, 0x2C, 0x00, 0x00}, // ';'
{0x08, 0x14, 0x22, 0x41, 0x00, 0x00}, // '<'
{0x36, 0x36, 0x36, 0x36, 0x36, 0x00}, // '='
{0x00, 0x41, 0x22, 0x14, 0x08, 0x00}, // '>'
{0x06, 0x07, 0x53, 0x5B, 0x1F, 0x0E}, // '?'
{0x30, 0x7B, 0x6B, 0x7B, 0x7F, 0x3E}, // '@'
{0x7E, 0x7F, 0x1B, 0x1B, 0x7F, 0x7E}, // 'A'
{0x7F, 0x7F, 0x6B, 0x6B, 0x7F, 0x36}, // 'B'
{0x3E, 0x7F, 0x63, 0x63, 0x77, 0x36}, // 'C'
{0x7F, 0x7F, 0x63, 0x63, 0x7F, 0x3E}, // 'D'
{0x7F, 0x7F, 0x6B, 0x6B, 0x6B, 0x63}, // 'E'
{0x7F, 0x7F, 0x1B, 0x1B, 0x1B, 0x03}, // 'F'
{0x3E, 0x7F, 0x63, 0x6B, 0x7B, 0x3A}, // 'G'
{0x7F, 0x7F, 0x0C, 0x0C, 0x7F, 0x7F}, // 'H'
{0x63, 0x63, 0x7F, 0x7F, 0x63, 0x63}, // 'I'
{0x30, 0x73, 0x63, 0x7F, 0x3F, 0x03}, // 'J'
{0x7F, 0x7F, 0x1C, 0x36, 0x63, 0x41}, // 'K'
{0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60}, // 'L'
{0x7F, 0x7F, 0x06, 0x06, 0x7F, 0x7F}, // 'M'
{0x7F, 0x7F, 0x0C, 0x18, 0x7F, 0x7F}, // 'N'
{0x3E, 0x7F, 0x63, 0x63, 0x7F, 0x3E}, // 'O'
{0x7F, 0x7F, 0x1B, 0x1B, 0x1F, 0x0E}, // 'P'
{0x3E, 0x7F, 0x63, 0x73, 0x7F, 0x7E}, // 'Q'
{0x7F, 0x7F, 0x1B, 0x3B, 0x7F, 0x66}, // 'R'
{0x66, 0x6F, 0x6B, 0x6B, 0x7B, 0x33}, // 'S'
{0x03, 0x03, 0x7F, 0x7F, 0x03, 0x03}, // 'T'
{0x3F, 0x7F, 0x60, 0x60, 0x7F, 0x3F}, // 'U'
{0x1F, 0x3F, 0x60, 0x60, 0x3F, 0x1F}, // 'V'
{0x3F, 0x7F, 0x30, 0x30, 0x7F, 0x3F}, // 'W'
{0x63, 0x77, 0x1C, 0x1C, 0x77, 0x63}, // 'X'
{0x07, 0x0F, 0x78, 0x78, 0x0F, 0x07}, // 'Y'
{0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63}, // 'Z'
{0x00, 0x7F, 0x7F, 0x63, 0x63, 0x00}, // '['
{0x01, 0x02, 0x04, 0x08, 0x10, 0x60}, // '\'
{0x00, 0x63, 0x63, 0x7F, 0x7F, 0x00}, // ']'
{0x0C, 0x0E, 0x03, 0x03, 0x0E, 0x0C}, // '^'
{0x60, 0x60, 0x60, 0x60, 0x60, 0x60}, // '_'
{0x00, 0x03, 0x07, 0x06, 0x00, 0x00}, // '`'
{0x38, 0x7C, 0x6C, 0x6C, 0x7C, 0x7C}, // 'a'
{0x7F, 0x7F, 0x6C, 0x6C, 0x7C, 0x38}, // 'b'
{0x38, 0x7C, 0x6C, 0x6C, 0x6C, 0x00}, // 'c'
{0x38, 0x7C, 0x6C, 0x6C, 0x7F, 0x7F}, // 'd'
{0x38, 0x7C, 0x54, 0x54, 0x5C, 0x08}, // 'e'
{0x7E, 0x7F, 0x1B, 0x1B, 0x03, 0x00}, // 'f'
{0x08, 0x5C, 0x54, 0x54, 0x7C, 0x3C}, // 'g'
{0x7F, 0x7F, 0x0C, 0x0C, 0x7C, 0x78}, // 'h'
{0x00, 0x00, 0x7A, 0x7A, 0x00, 0x00}, // 'i'
{0x30, 0x70, 0x60, 0x7D, 0x3D, 0x00}, // 'j'
{0x7F, 0x7F, 0x18, 0x3C, 0x7E, 0x66}, // 'k'
{0x00, 0x00, 0x3F, 0x7F, 0x60, 0x00}, // 'l'
{0x7C, 0x7C, 0x18, 0x18, 0x7C, 0x7C}, // 'm'
{0x7C, 0x7C, 0x0C, 0x0C, 0x7C, 0x78}, // 'n'
{0x3C, 0x7E, 0x66, 0x66, 0x7E, 0x3C}, // 'o'
{0x7C, 0x7E, 0x36, 0x36, 0x3E, 0x1C}, // 'p'
{0x1C, 0x3E, 0x36, 0x7E, 0x7E, 0x60}, // 'q'
{0x7C, 0x7C, 0x0C, 0x1C, 0x18, 0x00}, // 'r'
{0x4C, 0x5E, 0x56, 0x56, 0x76, 0x20}, // 's'
{0x3F, 0x7F, 0x6C, 0x6C, 0x60, 0x00}, // 't'
{0x3C, 0x7C, 0x60, 0x60, 0x7C, 0x3C}, // 'u'
{0x1C, 0x3C, 0x70, 0x70, 0x3C, 0x1C}, // 'v'
{0x3C, 0x7C, 0x30, 0x30, 0x7C, 0x3C}, // 'w'
{0x44, 0x6C, 0x38, 0x38, 0x6C, 0x44}, // 'x'
{0x06, 0x6E, 0x6C, 0x6C, 0x7E, 0x3E}, // 'y'
{0x66, 0x76, 0x7E, 0x6E, 0x66, 0x00}, // 'z'
{0x08, 0x3E, 0x77, 0x41, 0x00, 0x00}, // '{'
{0x00, 0x00, 0x7F, 0x00, 0x00, 0x00}, // '|'
{0x00, 0x41, 0x77, 0x3E, 0x08, 0x00}, // '}'
{0x18, 0x0C, 0x18, 0x30, 0x18, 0x00}, // '~'
};
#endif

View File

@ -158,41 +158,27 @@ uint32_t FREQUENCY_floor_to_step(uint32_t freq, const uint32_t step_size, const
{
uint32_t delta;
if (upper > lower && upper != 0xffffffff)
if (freq > (upper - 1))
freq = upper - 1;
if (freq <= lower)
return lower;
if (freq > (upper - 1))
freq = upper - 1;
delta = freq - lower;
if (delta < step_size)
return lower;
if (step_size == 833)
{
uint32_t base = (delta / 2500) * 2500; // 25kHz step
const uint32_t index = ((delta - base) % 2500) / step_size;
if (index >= 2)
if (step_size == 833) // 8.33 ~ 25/3
{ // long winded because 8.33 is not exactly 25/3
uint32_t base = (delta / 2500) * 2500;
uint32_t index = ((delta - base) % 2500) / step_size;
if (index == 2)
base++;
freq = lower + base + (step_size * index);
}
else
{
freq = lower + ((delta / step_size) * step_size);
return freq;
}
uint32_t FREQUENCY_wrap_to_step_band(uint32_t freq, const uint32_t step_size, const unsigned int band)
{
const uint32_t upper = FREQ_BAND_TABLE[band].upper;
const uint32_t lower = FREQ_BAND_TABLE[band].lower;
if (freq < lower)
return FREQUENCY_floor_to_step(upper, step_size, lower, upper);
if (freq >= upper)
freq = lower;
}
return freq;
}

View File

@ -63,7 +63,7 @@ enum step_setting_e {
STEP_12_5kHz,
STEP_25_0kHz,
STEP_8_33kHz,
STEP_10Hz,
STEP_50Hz,
STEP_100Hz,
@ -97,7 +97,6 @@ frequency_band_t FREQUENCY_GetBand(uint32_t Frequency);
uint8_t FREQUENCY_CalculateOutputPower(uint8_t TxpLow, uint8_t TxpMid, uint8_t TxpHigh, int32_t LowerLimit, int32_t Middle, int32_t UpperLimit, int32_t Frequency);
uint32_t FREQUENCY_floor_to_step(uint32_t freq, const uint32_t step_size, const uint32_t lower, const uint32_t upper);
uint32_t FREQUENCY_wrap_to_step_band(uint32_t freq, const uint32_t step_size, const unsigned int band);
int FREQUENCY_tx_freq_check(const uint32_t Frequency);
int FREQUENCY_rx_freq_check(const uint32_t Frequency);

Binary file not shown.

Binary file not shown.