bitmap: buttons and fonts

This commit is contained in:
2023-03-26 10:29:22 +02:00
parent 408d99783a
commit 83e4959c09
5 changed files with 486 additions and 0 deletions

View File

@@ -80,6 +80,9 @@ C_SOURCES += ../shared_libs/drivers/hw_button/hw_button.c
# display
C_SOURCES += ../shared_libs/display/display_gfx.c
C_SOURCES += ../shared_libs/display/font_gfx.c
# bitmaps
C_SOURCES += ../shared_libs/bitmaps/bitmap_disp_buttons.c
C_SOURCES += ../shared_libs/bitmaps/bitmap_font_5x7.c
# ASM sources
ASM_SOURCES = \
@@ -154,6 +157,8 @@ C_INCLUDES += -I../shared_libs/drivers/st7565
C_INCLUDES += -I../shared_libs/drivers/hw_button
# display includes
C_INCLUDES += -I../shared_libs/display
# bitmaps includes
C_INCLUDES += -I../shared_libs/bitmaps
# compile gcc flags
ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections

View File

@@ -0,0 +1,231 @@
#include "main.h"
#include "display_gfx.h"
#include "bitmap_disp_buttons.h"
// clang-format off
const uint8_t btn_fre[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0xFD,0x25,0x25,0x25,0x05,0x01,0xFD,0x25,0x65,0xA5,0x19,0x01,
0xFD,0x25,0x25,0x25,0x05,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFD,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFD,0xFC,0xFC,0xFC,0xFD,0xFC,0xFD,0xFD,0xFD,0xFD,0xFD,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_fre_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0x03,0xDB,0xDB,0xDB,0xFB,0xFF,0x03,0xDB,0x9B,0x5B,0xE7,0xFF,
0x03,0xDB,0xDB,0xDB,0xFB,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_amp[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0xF1,0x49,0x45,0x49,0xF1,0x01,0xFD,0x09,0x11,0x09,0xFD,0x01,
0xFD,0x25,0x25,0x25,0x19,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFD,0xFC,0xFC,
0xFC,0xFD,0xFC,0xFD,0xFC,0xFC,0xFC,0xFD,0xFC,0xFD,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_amp_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0x0F,0xB7,0xBB,0xB7,0x0F,0xFF,0x03,0xF7,0xEF,0xF7,0x03,0xFF,
0x03,0xDB,0xDB,0xDB,0xE7,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_off[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0xF9,0x05,0x05,0x05,0xF9,0x01,0xFD,0x25,0x25,0x25,0x05,0x01,
0xFD,0x25,0x25,0x25,0x05,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFD,0xFD,
0xFD,0xFC,0xFC,0xFD,0xFC,0xFC,0xFC,0xFC,0xFC,0xFD,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_off_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0x07,0xFB,0xFB,0xFB,0x07,0xFF,0x03,0xDB,0xDB,0xDB,0xFB,0xFF,
0x03,0xDB,0xDB,0xDB,0xFB,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFE,0xFE,
0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_pha[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0xFD,0x25,0x25,0x25,0x19,0x01,0xFD,0x21,0x21,0x21,0xFD,0x01,
0xF1,0x49,0x45,0x49,0xF1,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFD,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFD,0xFC,0xFC,0xFC,0xFD,0xFC,0xFD,0xFC,0xFC,0xFC,0xFD,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_pha_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0x03,0xDB,0xDB,0xDB,0xE7,0xFF,0x03,0xDF,0xDF,0xDF,0x03,0xFF,
0x0F,0xB7,0xBB,0xB7,0x0F,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_wav_noraml[] = {
// res: 25x11 - 50 bytes
0x3F,0x40,0x80,0x80,0xBF,0x80,0x87,0x80,0xBF,0x80,0x8F,0x92,0xA2,0x92,0x8F,0x80,
0xBE,0x81,0x80,0x81,0xBE,0x80,0x80,0x40,0x3F,0x9F,0x5F,0x3F,0x3F,0x3F,0xBF,0x3F,
0xBF,0x3F,0x3F,0xBF,0x3F,0x3F,0x3F,0xBF,0x3F,0x3F,0x3F,0xBF,0x3F,0x3F,0x3F,0x3F,
0x5F,0x9F,
};
const uint8_t btn_wav_inverse[] = {
// res: 25x11 - 50 bytes
0x3F,0x7F,0xFF,0xFF,0xC0,0xFF,0xF8,0xFF,0xC0,0xFF,0xF0,0xED,0xDD,0xED,0xF0,0xFF,
0xC1,0xFE,0xFF,0xFE,0xC1,0xFF,0xFF,0x7F,0x3F,0x9F,0xDF,0xFF,0xFF,0xFF,0x7F,0xFF,
0x7F,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,
0xDF,0x9F,
};
const uint8_t btn_wav_short[] = {
// res: 24x11 - 48 bytes
0xFC,0x02,0x01,0x01,0xFD,0x01,0xE1,0x01,0xFD,0x01,0xF1,0x49,0x45,0x49,0xF1,0x01,
0x7D,0x81,0x01,0x81,0x7D,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFD,0xFC,0xFD,
0xFC,0xFC,0xFD,0xFC,0xFC,0xFC,0xFD,0xFC,0xFC,0xFC,0xFD,0xFC,0xFC,0xFC,0xFA,0xF9,
};
const uint8_t btn_wav_inverse_short[] = {
// res: 24x11 - 48 bytes
0xFC,0xFE,0xFF,0xFF,0x03,0xFF,0x1F,0xFF,0x03,0xFF,0x0F,0xB7,0xBB,0xB7,0x0F,0xFF,
0x83,0x7F,0xFF,0x7F,0x83,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,
0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFB,0xF9,
};
const uint8_t btn_back_short[] = {
// res: 24x11 - 48 bytes
0xFC,0x02,0x01,0x01,0x01,0x01,0x01,0x21,0x71,0xA9,0x21,0x21,0x21,0x21,0x21,0x21,
0x3D,0x01,0x01,0x01,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFA,0xF9,
};
const uint8_t btn_back_inverse_short[] = {
// res: 24x11 - 48 bytes
0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0x8F,0x57,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,
0xC3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xF9,
};
const uint8_t btn_left[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0x21,0x21,0x71,0x71,0xF9,0xF9,0x21,0x21,0x21,0x21,0x21,0x21,
0x21,0x21,0x21,0x21,0x01,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_left_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0xDF,0xDF,0x8F,0x8F,0x07,0x07,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,
0xDF,0xDF,0xDF,0xDF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_right[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0x01,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0xF9,0xF9,
0x71,0x71,0x21,0x21,0x01,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_right_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0xFF,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0x07,0x07,
0x8F,0x8F,0xDF,0xDF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_x0_01[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x89,0x51,0x21,0x51,0x89,0x01,0x01,0x81,0x81,0x01,0xF9,0x45,0x25,
0x15,0xF9,0x01,0x09,0xFD,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFD,0xFD,0xFC,0xFC,0xFD,0xFD,0xFD,0xFC,0xFC,0xFD,0xFD,0xFD,0xFC,
0xFA,0xF9,
};
const uint8_t btn_x0_01_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0x77,0xAF,0xDF,0xAF,0x77,0xFF,0xFF,0x7F,0x7F,0xFF,0x07,0xBB,0xDB,
0xEB,0x07,0xFF,0xF7,0x03,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,
0xFB,0xF9,
};
const uint8_t btn_x0_1[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0x01,0x89,0x51,0x21,0x51,0x89,0x01,0x01,0x81,0x81,0x01,0x01,
0x09,0xFD,0x01,0x01,0x01,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFD,0xFD,0xFC,0xFC,0xFD,0xFD,0xFD,0xFC,0xFC,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_x0_1_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0xFF,0x77,0xAF,0xDF,0xAF,0x77,0xFF,0xFF,0x7F,0x7F,0xFF,0xFF,
0xF7,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_x1[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0x01,0x01,0x89,0x51,0x21,0x51,0x89,0x01,0x01,0x01,0x01,0x09,
0xFD,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_x1_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0x77,0xAF,0xDF,0xAF,0x77,0xFF,0xFF,0xFF,0xFF,0xF7,
0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF9,
};
const uint8_t btn_x10[] = {
// res: 25x11 - 50 bytes
0xFC,0x02,0x01,0x01,0x89,0x51,0x21,0x51,0x89,0x01,0x01,0x01,0x09,0xFD,0x01,0x01,
0xF9,0x45,0x25,0x15,0xF9,0x01,0x01,0x02,0xFC,0xF9,0xFA,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFC,0xFC,0xFD,0xFD,0xFD,0xFC,0xFC,0xFC,
0xFA,0xF9,
};
const uint8_t btn_x10_inverse[] = {
// res: 25x11 - 50 bytes
0xFC,0xFE,0xFF,0xFF,0x77,0xAF,0xDF,0xAF,0x77,0xFF,0xFF,0xFF,0xF7,0x03,0xFF,0xFF,
0x07,0xBB,0xDB,0xEB,0x07,0xFF,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,
0xFB,0xF9,
};
// clang-format on
GFX_bitmap_t btn_bottom[DISP_BTN_MAX] = {
{25, 11, btn_fre},
{25, 11, btn_fre_inverse},
{25, 11, btn_amp},
{25, 11, btn_amp_inverse},
{25, 11, btn_off},
{25, 11, btn_off_inverse},
{25, 11, btn_pha},
{25, 11, btn_pha_inverse},
{24, 11, btn_wav_short},
{24, 11, btn_wav_inverse_short},
{24, 11, btn_back_short},
{24, 11, btn_back_inverse_short},
{25, 11, btn_left},
{25, 11, btn_left_inverse},
{25, 11, btn_right},
{25, 11, btn_right_inverse},
{25, 11, btn_x0_01},
{25, 11, btn_x0_01_inverse},
{25, 11, btn_x0_1},
{25, 11, btn_x0_1_inverse},
{25, 11, btn_x1},
{25, 11, btn_x1_inverse},
{25, 11, btn_x10},
{25, 11, btn_x10_inverse},
{0, 0, NULL},
};

View File

@@ -0,0 +1,33 @@
#pragma once
typedef enum
{
DISP_BTN_FREQ,
DISP_BTN_FREQ_INVERSE,
DISP_BTN_AMPL,
DISP_BTN_AMPL_INVERSE,
DISP_BTN_OFFS,
DISP_BTN_OFFS_INVERSE,
DISP_BTN_PHAS,
DISP_BTN_PHAS_INVERSE,
DISP_BTN_WAVE,
DISP_BTN_WAVE_INVERSE,
DISP_BTN_BACK,
DISP_BTN_BACK_INVERSE,
DISP_BTN_LEFT,
DISP_BTN_LEFT_INVERSE,
DISP_BTN_RIGHT,
DISP_BTN_RIGHT_INVERSE,
DISP_BTN_X0_01,
DISP_BTN_X0_01_INVERSE,
DISP_BTN_X0_1,
DISP_BTN_X0_1_INVERSE,
DISP_BTN_X1,
DISP_BTN_X1_INVERSE,
DISP_BTN_X10,
DISP_BTN_X10_INVERSE,
DISP_BTN_NONE,
DISP_BTN_MAX,
} DISP_buttonName_t;
extern GFX_bitmap_t btn_bottom[DISP_BTN_MAX];

View File

@@ -0,0 +1,211 @@
#include "main.h"
#include "font_gfx.h"
#include "bitmap_fonts.h"
// clang-format off
const uint8_t font5x7[] = {
0x00, 0x00, 0x5F, 0x00, 0x00, // 0x21 !
0x00, 0x07, 0x00, 0x07, 0x00, // 0x22 "
0x14, 0x7F, 0x14, 0x7F, 0x14, // 0x23 #
0x24, 0x2A, 0x7F, 0x2A, 0x12, // 0x24 $
0x23, 0x13, 0x08, 0x64, 0x62, // 0x25 %
0x36, 0x49, 0x56, 0x20, 0x50, // 0x26 &
0x00, 0x08, 0x07, 0x03, 0x00, // 0x27 '
0x00, 0x1C, 0x22, 0x41, 0x00, // 0x28 (
0x00, 0x41, 0x22, 0x1C, 0x00, // 0x29 )
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, // 0x2A *
0x08, 0x08, 0x3E, 0x08, 0x08, // 0x2B +
0x00, 0x80, 0x70, 0x30, 0x00, // 0x2C ,
0x08, 0x08, 0x08, 0x08, 0x08, // 0x2D -
0x00, 0x00, 0x60, 0x60, 0x00, // 0x2E .
0x20, 0x10, 0x08, 0x04, 0x02, // 0x2F /
0x3E, 0x51, 0x49, 0x45, 0x3E, // 0x30 0
0x00, 0x42, 0x7F, 0x40, 0x00, // 0x31 1
0x72, 0x49, 0x49, 0x49, 0x46, // 0x32 2
0x21, 0x41, 0x49, 0x4D, 0x33, // 0x33 3
0x18, 0x14, 0x12, 0x7F, 0x10, // 0x34 4
0x27, 0x45, 0x45, 0x45, 0x39, // 0x35 5
0x3C, 0x4A, 0x49, 0x49, 0x31, // 0x36 6
0x41, 0x21, 0x11, 0x09, 0x07, // 0x37 7
0x36, 0x49, 0x49, 0x49, 0x36, // 0x38 8
0x46, 0x49, 0x49, 0x29, 0x1E, // 0x39 9
0x00, 0x00, 0x14, 0x00, 0x00, // 0x3A :
0x00, 0x40, 0x34, 0x00, 0x00, // 0x3B ;
0x00, 0x08, 0x14, 0x22, 0x41, // 0x3C <
0x14, 0x14, 0x14, 0x14, 0x14, // 0x3D =
0x00, 0x41, 0x22, 0x14, 0x08, // 0x3E >
0x02, 0x01, 0x59, 0x09, 0x06, // 0x3F ?
0x3E, 0x41, 0x5D, 0x59, 0x4E, // 0x40 @
0x7C, 0x12, 0x11, 0x12, 0x7C, // 0x41 A
0x7F, 0x49, 0x49, 0x49, 0x36, // 0x42 B
0x3E, 0x41, 0x41, 0x41, 0x22, // 0x43 C
0x7F, 0x41, 0x41, 0x41, 0x3E, // 0x44 D
0x7F, 0x49, 0x49, 0x49, 0x41, // 0x45 E
0x7F, 0x09, 0x09, 0x09, 0x01, // 0x46 F
0x3E, 0x41, 0x41, 0x51, 0x73, // 0x47 G
0x7F, 0x08, 0x08, 0x08, 0x7F, // 0x48 H
0x00, 0x41, 0x7F, 0x41, 0x00, // 0x49 I
0x20, 0x40, 0x41, 0x3F, 0x01, // 0x4A J
0x7F, 0x08, 0x14, 0x22, 0x41, // 0x4B K
0x7F, 0x40, 0x40, 0x40, 0x40, // 0x4C L
0x7F, 0x02, 0x1C, 0x02, 0x7F, // 0x4D M
0x7F, 0x04, 0x08, 0x10, 0x7F, // 0x4E N
0x3E, 0x41, 0x41, 0x41, 0x3E, // 0x4F O
0x7F, 0x09, 0x09, 0x09, 0x06, // 0x50 P
0x3E, 0x41, 0x51, 0x21, 0x5E, // 0x51 Q
0x7F, 0x09, 0x19, 0x29, 0x46, // 0x52 R
0x26, 0x49, 0x49, 0x49, 0x32, // 0x53 S
0x03, 0x01, 0x7F, 0x01, 0x03, // 0x54 T
0x3F, 0x40, 0x40, 0x40, 0x3F, // 0x55 U
0x1F, 0x20, 0x40, 0x20, 0x1F, // 0x56 V
0x3F, 0x40, 0x38, 0x40, 0x3F, // 0x57 W
0x63, 0x14, 0x08, 0x14, 0x63, // 0x58 X
0x03, 0x04, 0x78, 0x04, 0x03, // 0x59 Y
0x61, 0x59, 0x49, 0x4D, 0x43, // 0x5A Z
0x00, 0x7F, 0x41, 0x41, 0x41, // 0x5B [
0x02, 0x04, 0x08, 0x10, 0x20, // 0x5C backslash
0x00, 0x41, 0x41, 0x41, 0x7F, // 0x5D ]
0x04, 0x02, 0x01, 0x02, 0x04, // 0x5E ^
0x40, 0x40, 0x40, 0x40, 0x40, // 0x5F _
0x00, 0x03, 0x07, 0x08, 0x00, // 0x60 `
0x20, 0x54, 0x54, 0x78, 0x40, // 0x61 a
0x7F, 0x28, 0x44, 0x44, 0x38, // 0x62 b
0x38, 0x44, 0x44, 0x44, 0x28, // 0x63 c
0x38, 0x44, 0x44, 0x28, 0x7F, // 0x64 d
0x38, 0x54, 0x54, 0x54, 0x18, // 0x65 e
0x00, 0x08, 0x7E, 0x09, 0x02, // 0x66 f
0x18, 0xA4, 0xA4, 0x9C, 0x78, // 0x67 g
0x7F, 0x08, 0x04, 0x04, 0x78, // 0x68 h
0x00, 0x44, 0x7D, 0x40, 0x00, // 0x69 i
0x20, 0x40, 0x40, 0x3D, 0x00, // 0x6A j
0x7F, 0x10, 0x28, 0x44, 0x00, // 0x6B k
0x00, 0x41, 0x7F, 0x40, 0x00, // 0x6C l
0x7C, 0x04, 0x78, 0x04, 0x78, // 0x6D m
0x7C, 0x08, 0x04, 0x04, 0x78, // 0x6E n
0x38, 0x44, 0x44, 0x44, 0x38, // 0x6F o
0xFC, 0x18, 0x24, 0x24, 0x18, // 0x70 p
0x18, 0x24, 0x24, 0x18, 0xFC, // 0x71 q
0x7C, 0x08, 0x04, 0x04, 0x08, // 0x72 r
0x48, 0x54, 0x54, 0x54, 0x24, // 0x73 s
0x04, 0x04, 0x3F, 0x44, 0x24, // 0x74 t
0x3C, 0x40, 0x40, 0x20, 0x7C, // 0x75 u
0x1C, 0x20, 0x40, 0x20, 0x1C, // 0x76 v
0x3C, 0x40, 0x30, 0x40, 0x3C, // 0x77 w
0x44, 0x28, 0x10, 0x28, 0x44, // 0x78 x
0x4C, 0x90, 0x90, 0x90, 0x7C, // 0x79 y
0x44, 0x64, 0x54, 0x4C, 0x44, // 0x7A z
0x00, 0x08, 0x36, 0x41, 0x00, // 0x7B {
0x00, 0x00, 0x77, 0x00, 0x00, // 0x7C |
0x00, 0x41, 0x36, 0x08, 0x00, // 0x7D }
0x02, 0x01, 0x02, 0x04, 0x02, // 0x7E ~
};
// clang-format on
/* { [Char width in bits], [Offset into arial_6ptCharBitmaps in bytes] } */
const GFX_fontChar_t font5x7Descriptors[] = {
{5, 00}, // 0x21 !
{5, 05}, // 0x22 "
{5, 10}, // 0x23 #
{5, 15}, // 0x24 $
{5, 20}, // 0x25 %
{5, 25}, // 0x26 &
{5, 30}, // 0x27 '
{5, 35}, // 0x28 (
{5, 40}, // 0x29 )
{5, 45}, // 0x2A *
{5, 50}, // 0x2B +
{5, 55}, // 0x2C ,
{5, 60}, // 0x2D -
{5, 65}, // 0x2E .
{5, 70}, // 0x2F /
{5, 75}, // 0x30 0
{5, 80}, // 0x31 1
{5, 85}, // 0x32 2
{5, 90}, // 0x33 3
{5, 95}, // 0x34 4
{5, 100}, // 0x35 5
{5, 105}, // 0x36 6
{5, 110}, // 0x37 7
{5, 115}, // 0x38 8
{5, 120}, // 0x39 9
{5, 125}, // 0x3A :
{5, 130}, // 0x3B ;
{5, 135}, // 0x3C <
{5, 140}, // 0x3D =
{5, 145}, // 0x3E >
{5, 150}, // 0x3F ?
{5, 155}, // 0x40 @
{5, 160}, // 0x41 A
{5, 165}, // 0x42 B
{5, 170}, // 0x43 C
{5, 175}, // 0x44 D
{5, 180}, // 0x45 E
{5, 185}, // 0x46 F
{5, 190}, // 0x47 G
{5, 195}, // 0x48 H
{5, 200}, // 0x49 I
{5, 205}, // 0x4A J
{5, 210}, // 0x4B K
{5, 215}, // 0x4C L
{5, 220}, // 0x4D M
{5, 225}, // 0x4E N
{5, 230}, // 0x4F O
{5, 235}, // 0x50 P
{5, 240}, // 0x51 Q
{5, 245}, // 0x52 R
{5, 250}, // 0x53 S
{5, 255}, // 0x54 T
{5, 260}, // 0x55 U
{5, 265}, // 0x56 V
{5, 270}, // 0x57 W
{5, 275}, // 0x58 X
{5, 280}, // 0x59 Y
{5, 285}, // 0x5A Z
{5, 290}, // 0x5B [
{5, 295}, // 0x5C back
{5, 300}, // 0x5D ]
{5, 305}, // 0x5E ^
{5, 310}, // 0x5F _
{5, 315}, // 0x60 `
{5, 320}, // 0x61 a
{5, 325}, // 0x62 b
{5, 330}, // 0x63 c
{5, 335}, // 0x64 d
{5, 340}, // 0x65 e
{5, 345}, // 0x66 f
{5, 350}, // 0x67 g
{5, 355}, // 0x68 h
{5, 360}, // 0x69 i
{5, 365}, // 0x6A j
{5, 370}, // 0x6B k
{5, 375}, // 0x6C l
{5, 380}, // 0x6D m
{5, 385}, // 0x6E n
{5, 390}, // 0x6F o
{5, 395}, // 0x70 p
{5, 400}, // 0x71 q
{5, 405}, // 0x72 r
{5, 410}, // 0x73 s
{5, 415}, // 0x74 t
{5, 420}, // 0x75 u
{5, 425}, // 0x76 v
{5, 430}, // 0x77 w
{5, 435}, // 0x78 x
{5, 440}, // 0x79 y
{5, 445}, // 0x7A z
{5, 450}, // 0x7B {
{5, 455}, // 0x7C |
{5, 460}, // 0x7D }
{5, 465}, // 0x7E ~
};
/* Font information for Arial 6pt */
const GFX_font_t font5x7Info = {
.heightPixels = 8,
.startChar = '!',
.endChar = '~',
.interspacePixels = 1,
.spacePixels = 3,
.charInfo = font5x7Descriptors,
.data = font5x7,
};

View File

@@ -0,0 +1,6 @@
#pragma once
/* Font data for standard 5x7t */
extern const uint8_t font5x7[];
extern const GFX_font_t font5x7Info;
extern const GFX_fontChar_t font5x7Descriptors[];