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:
parent
ee2cc196dd
commit
5cb1f131e8
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
190
font.c
190
font.c
@ -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
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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.
Loading…
x
Reference in New Issue
Block a user