From 887108ebde0dd3873433cf852b15e3d02495be46 Mon Sep 17 00:00:00 2001 From: cho45 Date: Sat, 12 Oct 2019 05:01:32 +0900 Subject: [PATCH 1/7] too much cost for sin_table --- fft.h | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/fft.h b/fft.h index 0250671..9f8c44c 100644 --- a/fft.h +++ b/fft.h @@ -33,39 +33,6 @@ static uint16_t reverse_bits(uint16_t x, int n) { return result; } -static const float sin_table[] = { - /* - * float has about 7.2 digits of precision - for (uint8_t i = 0; i < FFT_SIZE - (FFT_SIZE / 4); i++) { - printf("% .8f,%c", sin(2 * M_PI * i / FFT_SIZE), i % 8 == 7 ? '\n' : ' '); - } - */ - 0.00000000, 0.02454123, 0.04906767, 0.07356456, 0.09801714, 0.12241068, 0.14673047, 0.17096189, - 0.19509032, 0.21910124, 0.24298018, 0.26671276, 0.29028468, 0.31368174, 0.33688985, 0.35989504, - 0.38268343, 0.40524131, 0.42755509, 0.44961133, 0.47139674, 0.49289819, 0.51410274, 0.53499762, - 0.55557023, 0.57580819, 0.59569930, 0.61523159, 0.63439328, 0.65317284, 0.67155895, 0.68954054, - 0.70710678, 0.72424708, 0.74095113, 0.75720885, 0.77301045, 0.78834643, 0.80320753, 0.81758481, - 0.83146961, 0.84485357, 0.85772861, 0.87008699, 0.88192126, 0.89322430, 0.90398929, 0.91420976, - 0.92387953, 0.93299280, 0.94154407, 0.94952818, 0.95694034, 0.96377607, 0.97003125, 0.97570213, - 0.98078528, 0.98527764, 0.98917651, 0.99247953, 0.99518473, 0.99729046, 0.99879546, 0.99969882, - 1.00000000, 0.99969882, 0.99879546, 0.99729046, 0.99518473, 0.99247953, 0.98917651, 0.98527764, - 0.98078528, 0.97570213, 0.97003125, 0.96377607, 0.95694034, 0.94952818, 0.94154407, 0.93299280, - 0.92387953, 0.91420976, 0.90398929, 0.89322430, 0.88192126, 0.87008699, 0.85772861, 0.84485357, - 0.83146961, 0.81758481, 0.80320753, 0.78834643, 0.77301045, 0.75720885, 0.74095113, 0.72424708, - 0.70710678, 0.68954054, 0.67155895, 0.65317284, 0.63439328, 0.61523159, 0.59569930, 0.57580819, - 0.55557023, 0.53499762, 0.51410274, 0.49289819, 0.47139674, 0.44961133, 0.42755509, 0.40524131, - 0.38268343, 0.35989504, 0.33688985, 0.31368174, 0.29028468, 0.26671276, 0.24298018, 0.21910124, - 0.19509032, 0.17096189, 0.14673047, 0.12241068, 0.09801714, 0.07356456, 0.04906767, 0.02454123, - 0.00000000, -0.02454123, -0.04906767, -0.07356456, -0.09801714, -0.12241068, -0.14673047, -0.17096189, - -0.19509032, -0.21910124, -0.24298018, -0.26671276, -0.29028468, -0.31368174, -0.33688985, -0.35989504, - -0.38268343, -0.40524131, -0.42755509, -0.44961133, -0.47139674, -0.49289819, -0.51410274, -0.53499762, - -0.55557023, -0.57580819, -0.59569930, -0.61523159, -0.63439328, -0.65317284, -0.67155895, -0.68954054, - -0.70710678, -0.72424708, -0.74095113, -0.75720885, -0.77301045, -0.78834643, -0.80320753, -0.81758481, - -0.83146961, -0.84485357, -0.85772861, -0.87008699, -0.88192126, -0.89322430, -0.90398929, -0.91420976, - -0.92387953, -0.93299280, -0.94154407, -0.94952818, -0.95694034, -0.96377607, -0.97003125, -0.97570213, - -0.98078528, -0.98527764, -0.98917651, -0.99247953, -0.99518473, -0.99729046, -0.99879546, -0.99969882, -}; - /*** * dir = forward: 0, inverse: 1 * https://www.nayuki.io/res/free-small-fft-in-multiple-languages/fft.c @@ -73,7 +40,6 @@ static const float sin_table[] = { static void fft256(float array[][2], const uint8_t dir) { const uint16_t n = 256; const uint8_t levels = 8; // log2(n) - const float* const cos_table = &sin_table[64]; const uint8_t real = dir & 1; const uint8_t imag = ~real & 1; @@ -97,8 +63,8 @@ static void fft256(float array[][2], const uint8_t dir) { for (uint16_t i = 0; i < n; i += size) { for (uint16_t j = i, k = 0; j < i + halfsize; j++, k += tablestep) { uint16_t l = j + halfsize; - float tpre = array[l][real] * cos_table[k] + array[l][imag] * sin_table[k]; - float tpim = -array[l][real] * sin_table[k] + array[l][imag] * cos_table[k] ; + float tpre = array[l][real] * cos(2 * M_PI * k / 256) + array[l][imag] * sin(2 * M_PI * k / 256); + float tpim = -array[l][real] * sin(2 * M_PI * k / 256) + array[l][imag] * cos(2 * M_PI * k / 256); array[l][real] = array[j][real] - tpre; array[l][imag] = array[j][imag] - tpim; array[j][real] += tpre; From b80790477c00b1dcb5708c5c1890bca3a9e4cac0 Mon Sep 17 00:00:00 2001 From: TT Date: Sun, 20 Oct 2019 21:54:42 +0900 Subject: [PATCH 2/7] chore: disable dump command --- main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.c b/main.c index 2f46cb3..c277e37 100644 --- a/main.c +++ b/main.c @@ -32,7 +32,7 @@ #include #include -#define ENABLED_DUMP +//#define ENABLED_DUMP static void apply_error_term_at(int i); static void apply_edelay_at(int i); From 1cf19fa50adab28d179ee459571d3ad8759e541e Mon Sep 17 00:00:00 2001 From: TT Date: Mon, 21 Oct 2019 20:25:17 +0900 Subject: [PATCH 3/7] fix: invert sign of group delay --- plot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plot.c b/plot.c index cd86255..a0a16ef 100644 --- a/plot.c +++ b/plot.c @@ -442,7 +442,7 @@ float phase(float *v) /* * calculate groupdelay */ -float groupdelay(float *w, float *v, float deltaf) +float groupdelay(float *v, float *w, float deltaf) { #if 1 // atan(w)-atan(v) = atan((w-v)/(1+wv)) From dcbcfe162c1b46761fe0932fb6f59f51eed6857b Mon Sep 17 00:00:00 2001 From: TT Date: Sun, 20 Oct 2019 22:16:32 +0900 Subject: [PATCH 4/7] chore: shrink 5x7 font --- Font5x7.c | 1780 ++++++++++++++++++++++++++--------------------------- ili9341.c | 8 +- nanovna.h | 2 +- plot.c | 6 +- 4 files changed, 898 insertions(+), 898 deletions(-) diff --git a/Font5x7.c b/Font5x7.c index 151a87f..9e242d6 100644 --- a/Font5x7.c +++ b/Font5x7.c @@ -9,7 +9,7 @@ #include /* Font character bitmap data. */ -const uint16_t x5x7_bits [] = +const uint8_t x5x7_bits [] = { /* Character (0x00): @@ -23,13 +23,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0xf000, - 0xf000, - 0xf000, - 0xf000, - 0xf000, - 0xf000, - 0x0000, + 0xf0, + 0xf0, + 0xf0, + 0xf0, + 0xf0, + 0xf0, + 0x00, /* Character (0x01): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -42,13 +42,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x0000, - 0x2000, - 0x7000, - 0xf800, - 0x7000, - 0x2000, - 0x0000, + 0x00, + 0x20, + 0x70, + 0xf8, + 0x70, + 0x20, + 0x00, /* Character (0x02): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -61,13 +61,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x5000, - 0xa000, - 0x5000, - 0xa000, - 0x5000, - 0xa000, - 0x0000, + 0x50, + 0xa0, + 0x50, + 0xa0, + 0x50, + 0xa0, + 0x00, /* Character (0x03): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -80,13 +80,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0xa000, - 0xe000, - 0xa000, - 0xa000, - 0x7000, - 0x2000, - 0x2000, + 0xa0, + 0xe0, + 0xa0, + 0xa0, + 0x70, + 0x20, + 0x20, /* Character (0x04): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -99,13 +99,13 @@ const uint16_t x5x7_bits [] = | ** | | * | +----------------+ */ - 0xc000, - 0x8000, - 0xc000, - 0xb000, - 0x2000, - 0x3000, - 0x2000, + 0xc0, + 0x80, + 0xc0, + 0xb0, + 0x20, + 0x30, + 0x20, /* Character (0x05): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -118,13 +118,13 @@ const uint16_t x5x7_bits [] = | ** | | * * | +----------------+ */ - 0xc000, - 0x8000, - 0xc000, - 0x6000, - 0x5000, - 0x6000, - 0x5000, + 0xc0, + 0x80, + 0xc0, + 0x60, + 0x50, + 0x60, + 0x50, /* Character (0x06): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -137,13 +137,13 @@ const uint16_t x5x7_bits [] = | ** | | * | +----------------+ */ - 0x8000, - 0x8000, - 0xc000, - 0x3000, - 0x2000, - 0x3000, - 0x2000, + 0x80, + 0x80, + 0xc0, + 0x30, + 0x20, + 0x30, + 0x20, /* Character (0x07): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -156,13 +156,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x2000, - 0x5000, - 0x2000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x20, + 0x50, + 0x20, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x08): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -175,13 +175,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x2000, - 0x7000, - 0x2000, - 0x0000, - 0x7000, - 0x0000, - 0x0000, + 0x20, + 0x70, + 0x20, + 0x00, + 0x70, + 0x00, + 0x00, /* Character (0x09): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -194,13 +194,13 @@ const uint16_t x5x7_bits [] = | * | | ** | +----------------+ */ - 0x9000, - 0xd000, - 0xb000, - 0x9000, - 0x2000, - 0x2000, - 0x3000, + 0x90, + 0xd0, + 0xb0, + 0x90, + 0x20, + 0x20, + 0x30, /* Character (0x0a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -213,13 +213,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0xa000, - 0xa000, - 0xa000, - 0x4000, - 0x7000, - 0x2000, - 0x2000, + 0xa0, + 0xa0, + 0xa0, + 0x40, + 0x70, + 0x20, + 0x20, /* Character (0x0b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -232,13 +232,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xe000, - 0x0000, - 0x0000, - 0x0000, + 0x20, + 0x20, + 0x20, + 0xe0, + 0x00, + 0x00, + 0x00, /* Character (0x0c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -251,13 +251,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xe000, - 0x2000, - 0x2000, - 0x2000, + 0x00, + 0x00, + 0x00, + 0xe0, + 0x20, + 0x20, + 0x20, /* Character (0x0d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -270,13 +270,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x3800, - 0x2000, - 0x2000, - 0x2000, + 0x00, + 0x00, + 0x00, + 0x38, + 0x20, + 0x20, + 0x20, /* Character (0x0e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -289,13 +289,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x3800, - 0x0000, - 0x0000, - 0x0000, + 0x20, + 0x20, + 0x20, + 0x38, + 0x00, + 0x00, + 0x00, /* Character (0x0f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -308,13 +308,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xf800, - 0x2000, - 0x2000, - 0x2000, + 0x20, + 0x20, + 0x20, + 0xf8, + 0x20, + 0x20, + 0x20, /* Character (0x10): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -327,13 +327,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x00, + 0xf8, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x11): bbw=6, bbh=7, bbx=0, bby=-1, width=5 @@ -346,13 +346,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x0000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x00, + 0x00, + 0xf8, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x12): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -365,13 +365,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, + 0x00, + 0x00, + 0x00, + 0xf8, + 0x00, + 0x00, + 0x00, /* Character (0x13): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -384,13 +384,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x0000, - 0x0000, + 0x00, + 0x00, + 0x00, + 0x00, + 0xf8, + 0x00, + 0x00, /* Character (0x14): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -403,13 +403,13 @@ const uint16_t x5x7_bits [] = |***** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x0000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xf8, + 0x00, /* Character (0x15): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -422,13 +422,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x3800, - 0x2000, - 0x2000, - 0x2000, + 0x20, + 0x20, + 0x20, + 0x38, + 0x20, + 0x20, + 0x20, /* Character (0x16): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -441,13 +441,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xe000, - 0x2000, - 0x2000, - 0x2000, + 0x20, + 0x20, + 0x20, + 0xe0, + 0x20, + 0x20, + 0x20, /* Character (0x17): bbw=6, bbh=7, bbx=0, bby=-1, width=5 @@ -460,13 +460,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0xf800, - 0x0000, - 0x0000, - 0x0000, + 0x20, + 0x20, + 0x20, + 0xf8, + 0x00, + 0x00, + 0x00, /* Character (0x18): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -479,13 +479,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xf800, - 0x2000, - 0x2000, - 0x2000, + 0x00, + 0x00, + 0x00, + 0xf8, + 0x20, + 0x20, + 0x20, /* Character (0x19): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -498,13 +498,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, /* Character (0x1a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -517,13 +517,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x2000, - 0x4000, - 0xF800, - 0x4000, - 0x2000, - 0x0000, - 0x0000, + 0x20, + 0x40, + 0xF8, + 0x40, + 0x20, + 0x00, + 0x00, /* Character (0x1b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -536,13 +536,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x2000, - 0x1000, - 0xF800, - 0x1000, - 0x2000, - 0x0000, - 0x0000, + 0x20, + 0x10, + 0xF8, + 0x10, + 0x20, + 0x00, + 0x00, /* Character (0x1c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -555,13 +555,13 @@ const uint16_t x5x7_bits [] = |* ** | | | +----------------+ */ - 0x0000, - 0x0000, - 0xf800, - 0x5000, - 0x5000, - 0x9800, - 0x0000, + 0x00, + 0x00, + 0xf8, + 0x50, + 0x50, + 0x98, + 0x00, /* Character (0x1d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -574,13 +574,13 @@ const uint16_t x5x7_bits [] = |*** | |* | +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0x9000, - 0xe000, - 0x8000, + 0x00, + 0x00, + 0x90, + 0x90, + 0x90, + 0xe0, + 0x80, /* Character (0x1e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -593,13 +593,13 @@ const uint16_t x5x7_bits [] = |** ** | | | +----------------+ */ - 0x0000, - 0x7000, - 0x8800, - 0x8800, - 0x5000, - 0xb800, - 0x0000, + 0x00, + 0x70, + 0x88, + 0x88, + 0x50, + 0xb8, + 0x00, /* Character (0x1f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -612,13 +612,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, - 0x0000, - 0x0000, + 0x60, + 0x90, + 0x90, + 0x60, + 0x00, + 0x00, + 0x00, /* Character (0x20): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -631,13 +631,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x21): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -650,13 +650,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x0000, - 0x2000, - 0x0000, + 0x20, + 0x20, + 0x20, + 0x20, + 0x00, + 0x20, + 0x00, /* Character (0x22): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -669,13 +669,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x5000, - 0x5000, - 0x5000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x50, + 0x50, + 0x50, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x23): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -688,13 +688,13 @@ const uint16_t x5x7_bits [] = | * * | | | +----------------+ */ - 0x0000, - 0x5000, - 0xf800, - 0x5000, - 0xf800, - 0x5000, - 0x0000, + 0x00, + 0x50, + 0xf8, + 0x50, + 0xf8, + 0x50, + 0x00, /* Character (0x24): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -707,13 +707,13 @@ const uint16_t x5x7_bits [] = | *** | | | +----------------+ */ - 0x0000, - 0x7000, - 0xa000, - 0x7000, - 0x2800, - 0x7000, - 0x0000, + 0x00, + 0x70, + 0xa0, + 0x70, + 0x28, + 0x70, + 0x00, /* Character (0x25): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -726,13 +726,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x8000, - 0x9000, - 0x2000, - 0x4000, - 0x9000, - 0x1000, - 0x0000, + 0x80, + 0x90, + 0x20, + 0x40, + 0x90, + 0x10, + 0x00, /* Character (0x26): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -745,13 +745,13 @@ const uint16_t x5x7_bits [] = | * * | | | +----------------+ */ - 0x0000, - 0x4000, - 0xa000, - 0x4000, - 0xa000, - 0x5000, - 0x0000, + 0x00, + 0x40, + 0xa0, + 0x40, + 0xa0, + 0x50, + 0x00, /* Character (0x27): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -764,13 +764,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x6000, - 0x4000, - 0x8000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x60, + 0x40, + 0x80, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x28): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -783,13 +783,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x2000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x2000, - 0x0000, + 0x20, + 0x40, + 0x40, + 0x40, + 0x40, + 0x20, + 0x00, /* Character (0x29): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -802,13 +802,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x4000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0x4000, - 0x0000, + 0x40, + 0x20, + 0x20, + 0x20, + 0x20, + 0x40, + 0x00, /* Character (0x2a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -821,13 +821,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x0000, - 0xa000, - 0x4000, - 0xe000, - 0x4000, - 0xa000, - 0x0000, + 0x00, + 0xa0, + 0x40, + 0xe0, + 0x40, + 0xa0, + 0x00, /* Character (0x2b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -840,13 +840,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x0000, - 0x2000, - 0x2000, - 0xf800, - 0x2000, - 0x2000, - 0x0000, + 0x00, + 0x20, + 0x20, + 0xf8, + 0x20, + 0x20, + 0x00, /* Character (0x2c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -859,13 +859,13 @@ const uint16_t x5x7_bits [] = | * | |* | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x6000, - 0x4000, - 0x8000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x60, + 0x40, + 0x80, /* Character (0x2d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -878,13 +878,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0xf000, - 0x0000, - 0x0000, - 0x0000, + 0x00, + 0x00, + 0x00, + 0xf0, + 0x00, + 0x00, + 0x00, /* Character (0x2e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -897,13 +897,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x6000, - 0x6000, - 0x0000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x60, + 0x60, + 0x00, /* Character (0x2f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -916,13 +916,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x1000, - 0x2000, - 0x4000, - 0x8000, - 0x0000, - 0x0000, + 0x00, + 0x10, + 0x20, + 0x40, + 0x80, + 0x00, + 0x00, /* Character (0x30): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -935,13 +935,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x9000, - 0xb000, - 0xd000, - 0x9000, - 0x6000, - 0x0000, + 0x60, + 0x90, + 0xb0, + 0xd0, + 0x90, + 0x60, + 0x00, /* Character (0x31): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -954,13 +954,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0x4000, - 0xc000, - 0x4000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + 0x40, + 0xc0, + 0x40, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x32): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -973,13 +973,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0x6000, - 0x9000, - 0x1000, - 0x2000, - 0x4000, - 0xf000, - 0x0000, + 0x60, + 0x90, + 0x10, + 0x20, + 0x40, + 0xf0, + 0x00, /* Character (0x33): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -992,13 +992,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0xf000, - 0x1000, - 0x6000, - 0x1000, - 0x9000, - 0x6000, - 0x0000, + 0xf0, + 0x10, + 0x60, + 0x10, + 0x90, + 0x60, + 0x00, /* Character (0x34): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1011,13 +1011,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x2000, - 0x6000, - 0xa000, - 0xf000, - 0x2000, - 0x2000, - 0x0000, + 0x20, + 0x60, + 0xa0, + 0xf0, + 0x20, + 0x20, + 0x00, /* Character (0x35): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1030,13 +1030,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0xf000, - 0x8000, - 0xe000, - 0x1000, - 0x9000, - 0x6000, - 0x0000, + 0xf0, + 0x80, + 0xe0, + 0x10, + 0x90, + 0x60, + 0x00, /* Character (0x36): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1049,13 +1049,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x8000, - 0xe000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + 0x60, + 0x80, + 0xe0, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x37): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1068,13 +1068,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0xf000, - 0x1000, - 0x2000, - 0x2000, - 0x4000, - 0x4000, - 0x0000, + 0xf0, + 0x10, + 0x20, + 0x20, + 0x40, + 0x40, + 0x00, /* Character (0x38): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1087,13 +1087,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x9000, - 0x6000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + 0x60, + 0x90, + 0x60, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x39): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1106,13 +1106,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x7000, - 0x1000, - 0x6000, - 0x0000, + 0x60, + 0x90, + 0x90, + 0x70, + 0x10, + 0x60, + 0x00, /* Character (0x3a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1125,13 +1125,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x0000, - 0x6000, - 0x6000, - 0x0000, - 0x6000, - 0x6000, - 0x0000, + 0x00, + 0x60, + 0x60, + 0x00, + 0x60, + 0x60, + 0x00, /* Character (0x3b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1144,13 +1144,13 @@ const uint16_t x5x7_bits [] = | * | |* | +----------------+ */ - 0x0000, - 0x6000, - 0x6000, - 0x0000, - 0x6000, - 0x4000, - 0x8000, + 0x00, + 0x60, + 0x60, + 0x00, + 0x60, + 0x40, + 0x80, /* Character (0x3c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1163,13 +1163,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x0000, - 0x2000, - 0x4000, - 0x8000, - 0x4000, - 0x2000, - 0x0000, + 0x00, + 0x20, + 0x40, + 0x80, + 0x40, + 0x20, + 0x00, /* Character (0x3d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1182,13 +1182,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x0000, - 0xf000, - 0x0000, - 0xf000, - 0x0000, - 0x0000, + 0x00, + 0x00, + 0xf0, + 0x00, + 0xf0, + 0x00, + 0x00, /* Character (0x3e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1201,13 +1201,13 @@ const uint16_t x5x7_bits [] = |* | | | +----------------+ */ - 0x0000, - 0x8000, - 0x4000, - 0x2000, - 0x4000, - 0x8000, - 0x0000, + 0x00, + 0x80, + 0x40, + 0x20, + 0x40, + 0x80, + 0x00, /* Character (0x3f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1220,13 +1220,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x4000, - 0xa000, - 0x2000, - 0x4000, - 0x0000, - 0x4000, - 0x0000, + 0x40, + 0xa0, + 0x20, + 0x40, + 0x00, + 0x40, + 0x00, /* Character (0x40): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1239,13 +1239,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x9000, - 0xb000, - 0xb000, - 0x8000, - 0x6000, - 0x0000, + 0x60, + 0x90, + 0xb0, + 0xb0, + 0x80, + 0x60, + 0x00, /* Character (0x41): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1258,13 +1258,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0xf000, - 0x9000, - 0x9000, - 0x0000, + 0x60, + 0x90, + 0x90, + 0xf0, + 0x90, + 0x90, + 0x00, /* Character (0x42): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1277,13 +1277,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0xe000, - 0x9000, - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x0000, + 0xe0, + 0x90, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x00, /* Character (0x43): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1296,13 +1296,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x9000, - 0x8000, - 0x8000, - 0x9000, - 0x6000, - 0x0000, + 0x60, + 0x90, + 0x80, + 0x80, + 0x90, + 0x60, + 0x00, /* Character (0x44): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1315,13 +1315,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0xe000, - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0xe000, - 0x0000, + 0xe0, + 0x90, + 0x90, + 0x90, + 0x90, + 0xe0, + 0x00, /* Character (0x45): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1334,13 +1334,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0xf000, - 0x8000, - 0xe000, - 0x8000, - 0x8000, - 0xf000, - 0x0000, + 0xf0, + 0x80, + 0xe0, + 0x80, + 0x80, + 0xf0, + 0x00, /* Character (0x46): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1353,13 +1353,13 @@ const uint16_t x5x7_bits [] = |* | | | +----------------+ */ - 0xf000, - 0x8000, - 0xe000, - 0x8000, - 0x8000, - 0x8000, - 0x0000, + 0xf0, + 0x80, + 0xe0, + 0x80, + 0x80, + 0x80, + 0x00, /* Character (0x47): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1372,13 +1372,13 @@ const uint16_t x5x7_bits [] = | *** | | | +----------------+ */ - 0x6000, - 0x9000, - 0x8000, - 0xb000, - 0x9000, - 0x7000, - 0x0000, + 0x60, + 0x90, + 0x80, + 0xb0, + 0x90, + 0x70, + 0x00, /* Character (0x48): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1391,13 +1391,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x9000, - 0x9000, - 0xf000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + 0x90, + 0x90, + 0xf0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x49): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1410,13 +1410,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0xe000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + 0xe0, + 0x40, + 0x40, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x4a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1429,13 +1429,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x1000, - 0x1000, - 0x1000, - 0x1000, - 0x9000, - 0x6000, - 0x0000, + 0x10, + 0x10, + 0x10, + 0x10, + 0x90, + 0x60, + 0x00, /* Character (0x4b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1448,13 +1448,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x9000, - 0xa000, - 0xc000, - 0xc000, - 0xa000, - 0x9000, - 0x0000, + 0x90, + 0xa0, + 0xc0, + 0xc0, + 0xa0, + 0x90, + 0x00, /* Character (0x4c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1467,13 +1467,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0x8000, - 0x8000, - 0x8000, - 0x8000, - 0x8000, - 0xf000, - 0x0000, + 0x80, + 0x80, + 0x80, + 0x80, + 0x80, + 0xf0, + 0x00, /* Character (0x4d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1486,13 +1486,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x9000, - 0xf000, - 0xf000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + 0x90, + 0xf0, + 0xf0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x4e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1505,13 +1505,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x9000, - 0xd000, - 0xd000, - 0xb000, - 0xb000, - 0x9000, - 0x0000, + 0x90, + 0xd0, + 0xd0, + 0xb0, + 0xb0, + 0x90, + 0x00, /* Character (0x4f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1524,13 +1524,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + 0x60, + 0x90, + 0x90, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x50): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1543,13 +1543,13 @@ const uint16_t x5x7_bits [] = |* | | | +----------------+ */ - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x8000, - 0x8000, - 0x0000, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x80, + 0x80, + 0x00, /* Character (0x51): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1562,13 +1562,13 @@ const uint16_t x5x7_bits [] = | ** | | * | +----------------+ */ - 0x6000, - 0x9000, - 0x9000, - 0x9000, - 0xd000, - 0x6000, - 0x1000, + 0x60, + 0x90, + 0x90, + 0x90, + 0xd0, + 0x60, + 0x10, /* Character (0x52): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1581,13 +1581,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0xa000, - 0x9000, - 0x0000, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0xa0, + 0x90, + 0x00, /* Character (0x53): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1600,13 +1600,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x6000, - 0x9000, - 0x4000, - 0x2000, - 0x9000, - 0x6000, - 0x0000, + 0x60, + 0x90, + 0x40, + 0x20, + 0x90, + 0x60, + 0x00, /* Character (0x54): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1619,13 +1619,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0xe000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x0000, + 0xe0, + 0x40, + 0x40, + 0x40, + 0x40, + 0x40, + 0x00, /* Character (0x55): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1638,13 +1638,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + 0x90, + 0x90, + 0x90, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x56): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1657,13 +1657,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x9000, - 0x9000, - 0x9000, - 0x9000, - 0x6000, - 0x6000, - 0x0000, + 0x90, + 0x90, + 0x90, + 0x90, + 0x60, + 0x60, + 0x00, /* Character (0x57): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1676,13 +1676,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x9000, - 0x9000, - 0x9000, - 0xf000, - 0xf000, - 0x9000, - 0x0000, + 0x90, + 0x90, + 0x90, + 0xf0, + 0xf0, + 0x90, + 0x00, /* Character (0x58): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1695,13 +1695,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x9000, - 0x9000, - 0x6000, - 0x6000, - 0x9000, - 0x9000, - 0x0000, + 0x90, + 0x90, + 0x60, + 0x60, + 0x90, + 0x90, + 0x00, /* Character (0x59): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1714,13 +1714,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0xa000, - 0xa000, - 0xa000, - 0x4000, - 0x4000, - 0x4000, - 0x0000, + 0xa0, + 0xa0, + 0xa0, + 0x40, + 0x40, + 0x40, + 0x00, /* Character (0x5a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1733,13 +1733,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0xf000, - 0x1000, - 0x2000, - 0x4000, - 0x8000, - 0xf000, - 0x0000, + 0xf0, + 0x10, + 0x20, + 0x40, + 0x80, + 0xf0, + 0x00, /* Character (0x5b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1752,13 +1752,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0xe000, - 0x8000, - 0x8000, - 0x8000, - 0x8000, - 0xe000, - 0x0000, + 0xe0, + 0x80, + 0x80, + 0x80, + 0x80, + 0xe0, + 0x00, /* Character (0x5c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1771,13 +1771,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x0000, - 0x8000, - 0x4000, - 0x2000, - 0x1000, - 0x0000, - 0x0000, + 0x00, + 0x80, + 0x40, + 0x20, + 0x10, + 0x00, + 0x00, /* Character (0x5d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1790,13 +1790,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0xe000, - 0x2000, - 0x2000, - 0x2000, - 0x2000, - 0xe000, - 0x0000, + 0xe0, + 0x20, + 0x20, + 0x20, + 0x20, + 0xe0, + 0x00, /* Character (0x5e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1809,13 +1809,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x4000, - 0xa000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x40, + 0xa0, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x5f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1828,13 +1828,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0xf000, - 0x0000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xf0, + 0x00, /* Character (0x60): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1847,13 +1847,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0xc000, - 0x4000, - 0x2000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0xc0, + 0x40, + 0x20, + 0x00, + 0x00, + 0x00, + 0x00, /* Character (0x61): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1866,13 +1866,13 @@ const uint16_t x5x7_bits [] = | * * | | | +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0x9000, - 0xb000, - 0x5000, - 0x0000, + 0x00, + 0x00, + 0x70, + 0x90, + 0xb0, + 0x50, + 0x00, /* Character (0x62): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1885,13 +1885,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0x8000, - 0x8000, - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x0000, + 0x80, + 0x80, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x00, /* Character (0x63): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1904,13 +1904,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x6000, - 0x8000, - 0x8000, - 0x6000, - 0x0000, + 0x00, + 0x00, + 0x60, + 0x80, + 0x80, + 0x60, + 0x00, /* Character (0x64): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1923,13 +1923,13 @@ const uint16_t x5x7_bits [] = | *** | | | +----------------+ */ - 0x1000, - 0x1000, - 0x7000, - 0x9000, - 0x9000, - 0x7000, - 0x0000, + 0x10, + 0x10, + 0x70, + 0x90, + 0x90, + 0x70, + 0x00, /* Character (0x65): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1942,13 +1942,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x6000, - 0xb000, - 0xc000, - 0x6000, - 0x0000, + 0x00, + 0x00, + 0x60, + 0xb0, + 0xc0, + 0x60, + 0x00, /* Character (0x66): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1961,13 +1961,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x2000, - 0x5000, - 0x4000, - 0xe000, - 0x4000, - 0x4000, - 0x0000, + 0x20, + 0x50, + 0x40, + 0xe0, + 0x40, + 0x40, + 0x00, /* Character (0x67): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1980,13 +1980,13 @@ const uint16_t x5x7_bits [] = |* | | *** | +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0x9000, - 0x6000, - 0x8000, - 0x7000, + 0x00, + 0x00, + 0x70, + 0x90, + 0x60, + 0x80, + 0x70, /* Character (0x68): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -1999,13 +1999,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x8000, - 0x8000, - 0xe000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + 0x80, + 0x80, + 0xe0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x69): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2018,13 +2018,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0x4000, - 0x0000, - 0xc000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + 0x40, + 0x00, + 0xc0, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x6a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2037,13 +2037,13 @@ const uint16_t x5x7_bits [] = |* * | | * | +----------------+ */ - 0x2000, - 0x0000, - 0x2000, - 0x2000, - 0x2000, - 0xa000, - 0x4000, + 0x20, + 0x00, + 0x20, + 0x20, + 0x20, + 0xa0, + 0x40, /* Character (0x6b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2056,13 +2056,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x8000, - 0x8000, - 0xa000, - 0xc000, - 0xa000, - 0x9000, - 0x0000, + 0x80, + 0x80, + 0xa0, + 0xc0, + 0xa0, + 0x90, + 0x00, /* Character (0x6c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2075,13 +2075,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0xc000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0xe000, - 0x0000, + 0xc0, + 0x40, + 0x40, + 0x40, + 0x40, + 0xe0, + 0x00, /* Character (0x6d): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2094,13 +2094,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x0000, - 0x0000, - 0xa000, - 0xf000, - 0x9000, - 0x9000, - 0x0000, + 0x00, + 0x00, + 0xa0, + 0xf0, + 0x90, + 0x90, + 0x00, /* Character (0x6e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2113,13 +2113,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x0000, - 0x0000, - 0xe000, - 0x9000, - 0x9000, - 0x9000, - 0x0000, + 0x00, + 0x00, + 0xe0, + 0x90, + 0x90, + 0x90, + 0x00, /* Character (0x6f): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2132,13 +2132,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x6000, - 0x9000, - 0x9000, - 0x6000, - 0x0000, + 0x00, + 0x00, + 0x60, + 0x90, + 0x90, + 0x60, + 0x00, /* Character (0x70): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2151,13 +2151,13 @@ const uint16_t x5x7_bits [] = |*** | |* | +----------------+ */ - 0x0000, - 0x0000, - 0xe000, - 0x9000, - 0x9000, - 0xe000, - 0x8000, + 0x00, + 0x00, + 0xe0, + 0x90, + 0x90, + 0xe0, + 0x80, /* Character (0x71): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2170,13 +2170,13 @@ const uint16_t x5x7_bits [] = | *** | | * | +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0x9000, - 0x9000, - 0x7000, - 0x1000, + 0x00, + 0x00, + 0x70, + 0x90, + 0x90, + 0x70, + 0x10, /* Character (0x72): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2189,13 +2189,13 @@ const uint16_t x5x7_bits [] = |* | | | +----------------+ */ - 0x0000, - 0x0000, - 0xe000, - 0x9000, - 0x8000, - 0x8000, - 0x0000, + 0x00, + 0x00, + 0xe0, + 0x90, + 0x80, + 0x80, + 0x00, /* Character (0x73): bbw=6, bbh=7, bbx=0, bby=-1, width=5 @@ -2208,13 +2208,13 @@ const uint16_t x5x7_bits [] = |*** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x7000, - 0xc000, - 0x3000, - 0xe000, - 0x0000, + 0x00, + 0x00, + 0x70, + 0xc0, + 0x30, + 0xe0, + 0x00, /* Character (0x74): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2227,13 +2227,13 @@ const uint16_t x5x7_bits [] = | ** | | | +----------------+ */ - 0x4000, - 0x4000, - 0xe000, - 0x4000, - 0x4000, - 0x3000, - 0x0000, + 0x40, + 0x40, + 0xe0, + 0x40, + 0x40, + 0x30, + 0x00, /* Character (0x75): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2246,13 +2246,13 @@ const uint16_t x5x7_bits [] = | *** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0x9000, - 0x7000, - 0x0000, + 0x00, + 0x00, + 0x90, + 0x90, + 0x90, + 0x70, + 0x00, /* Character (0x76): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2265,13 +2265,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x0000, - 0x0000, - 0xa000, - 0xa000, - 0xa000, - 0x4000, - 0x0000, + 0x00, + 0x00, + 0xa0, + 0xa0, + 0xa0, + 0x40, + 0x00, /* Character (0x77): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2284,13 +2284,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0xf000, - 0xf000, - 0x0000, + 0x00, + 0x00, + 0x90, + 0x90, + 0xf0, + 0xf0, + 0x00, /* Character (0x78): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2303,13 +2303,13 @@ const uint16_t x5x7_bits [] = |* * | | | +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x6000, - 0x6000, - 0x9000, - 0x0000, + 0x00, + 0x00, + 0x90, + 0x60, + 0x60, + 0x90, + 0x00, /* Character (0x79): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2322,13 +2322,13 @@ const uint16_t x5x7_bits [] = | * | | * | +----------------+ */ - 0x0000, - 0x0000, - 0x9000, - 0x9000, - 0x5000, - 0x2000, - 0x4000, + 0x00, + 0x00, + 0x90, + 0x90, + 0x50, + 0x20, + 0x40, /* Character (0x7a): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2341,13 +2341,13 @@ const uint16_t x5x7_bits [] = |**** | | | +----------------+ */ - 0x0000, - 0x0000, - 0xf000, - 0x2000, - 0x4000, - 0xf000, - 0x0000, + 0x00, + 0x00, + 0xf0, + 0x20, + 0x40, + 0xf0, + 0x00, /* Character (0x7b): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2360,13 +2360,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x2000, - 0x4000, - 0xc000, - 0x4000, - 0x4000, - 0x2000, - 0x0000, + 0x20, + 0x40, + 0xc0, + 0x40, + 0x40, + 0x20, + 0x00, /* Character (0x7c): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2379,13 +2379,13 @@ const uint16_t x5x7_bits [] = | * | | | +----------------+ */ - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x4000, - 0x0000, + 0x40, + 0x40, + 0x40, + 0x40, + 0x40, + 0x40, + 0x00, /* Character (0x7d): bbw=6, bbh=7, bbx=0, bby=-1, width=5 @@ -2398,13 +2398,13 @@ const uint16_t x5x7_bits [] = |* | | | +----------------+ */ - 0x8000, - 0x4000, - 0x6000, - 0x4000, - 0x4000, - 0x8000, - 0x0000, + 0x80, + 0x40, + 0x60, + 0x40, + 0x40, + 0x80, + 0x00, /* Character (0x7e): bbw=5, bbh=7, bbx=0, bby=-1, width=5 @@ -2417,13 +2417,13 @@ const uint16_t x5x7_bits [] = | | | | +----------------+ */ - 0x5000, - 0xa000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x50, + 0xa0, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, }; #if 0 diff --git a/ili9341.c b/ili9341.c index e42d6de..bbbd4bd 100644 --- a/ili9341.c +++ b/ili9341.c @@ -338,12 +338,12 @@ void ili9341_drawchar_5x7(uint8_t ch, int x, int y, uint16_t fg, uint16_t bg) { uint16_t *buf = spi_buffer; - uint16_t bits; + uint8_t bits; int c, r; for(c = 0; c < 7; c++) { bits = x5x7_bits[(ch * 7) + c]; for (r = 0; r < 5; r++) { - *buf++ = (0x8000 & bits) ? fg : bg; + *buf++ = (0x80 & bits) ? fg : bg; bits <<= 1; } } @@ -364,12 +364,12 @@ void ili9341_drawchar_size(uint8_t ch, int x, int y, uint16_t fg, uint16_t bg, uint8_t size) { uint16_t *buf = spi_buffer; - uint16_t bits; + uint8_t bits; int c, r; for(c = 0; c < 7*size; c++) { bits = x5x7_bits[(ch * 7) + (c / size)]; for (r = 0; r < 5*size; r++) { - *buf++ = (0x8000 & bits) ? fg : bg; + *buf++ = (0x80 & bits) ? fg : bg; if (r % size == (size-1)) { bits <<= 1; } diff --git a/nanovna.h b/nanovna.h index 7f35500..e6b7a66 100644 --- a/nanovna.h +++ b/nanovna.h @@ -152,7 +152,7 @@ extern int area_height; // font -extern const uint16_t x5x7_bits []; +extern const uint8_t x5x7_bits []; extern const uint32_t numfont20x24[][24]; #define S_PI "\034" diff --git a/plot.c b/plot.c index a0a16ef..b4efe1d 100644 --- a/plot.c +++ b/plot.c @@ -1056,7 +1056,7 @@ draw_marker(int w, int h, int x, int y, int c, int ch) int cc = c; if (j <= 9 && j > 2 && i >= -1 && i <= 3) { uint16_t bits = x5x7_bits[(ch * 7) + (9-j)]; - if (bits & (0x8000>>(i+1))) + if (bits & (0x80>>(i+1))) cc = 0; } if (y0 >= 0 && y0 < h && x0 >= 0 && x0 < w) @@ -1355,7 +1355,7 @@ request_to_draw_cells_behind_numeric_input(void) void cell_drawchar_5x7(int w, int h, uint8_t ch, int x, int y, uint16_t fg, int invert) { - uint16_t bits; + uint8_t bits; int c, r; if (y <= -7 || y >= h || x <= -5 || x >= w) return; @@ -1366,7 +1366,7 @@ cell_drawchar_5x7(int w, int h, uint8_t ch, int x, int y, uint16_t fg, int inver if (invert) bits = ~bits; for (r = 0; r < 5; r++) { - if ((x+r) >= 0 && (x+r) < w && (0x8000 & bits)) + if ((x+r) >= 0 && (x+r) < w && (0x80 & bits)) spi_buffer[(y+c)*w + (x+r)] = fg; bits <<= 1; } From 7adba06333470596c2ff301f216ef64ec75021ad Mon Sep 17 00:00:00 2001 From: TT Date: Sun, 20 Oct 2019 22:50:29 +0900 Subject: [PATCH 5/7] chore: reduce foot-print of numfont20x24 --- Makefile | 2 +- ili9341.c | 33 +-- nanovna.h | 6 +- numfont20x22.c | 624 +++++++++++++++++++++++++++++++++++++++++++++ numfont20x24.c | 669 ------------------------------------------------- ui.c | 8 +- 6 files changed, 649 insertions(+), 693 deletions(-) create mode 100644 numfont20x22.c delete mode 100644 numfont20x24.c diff --git a/Makefile b/Makefile index e4b905b..73ebbd9 100644 --- a/Makefile +++ b/Makefile @@ -120,7 +120,7 @@ CSRC = $(STARTUPSRC) \ $(STREAMSSRC) \ $(SHELLSRC) \ usbcfg.c \ - main.c si5351.c tlv320aic3204.c dsp.c plot.c ui.c ili9341.c numfont20x24.c Font5x7.c flash.c adc.c + main.c si5351.c tlv320aic3204.c dsp.c plot.c ui.c ili9341.c numfont20x22.c Font5x7.c flash.c adc.c # $(TESTSRC) \ diff --git a/ili9341.c b/ili9341.c index bbbd4bd..b551df8 100644 --- a/ili9341.c +++ b/ili9341.c @@ -426,27 +426,28 @@ ili9341_line(int x0, int y0, int x1, int y1, uint16_t fg) } -const font_t NF20x24 = { 20, 24, 1, 24, (const uint32_t *)numfont20x24 }; -//const font_t NF32x24 = { 32, 24, 1, 24, (const uint32_t *)numfont32x24 }; -//const font_t NF32x48 = { 32, 48, 2, 24, (const uint32_t *)numfont32x24 }; +const font_t NF20x22 = { 20, 22, 1, 3*22, (const uint8_t *)numfont20x22 }; void ili9341_drawfont(uint8_t ch, const font_t *font, int x, int y, uint16_t fg, uint16_t bg) { uint16_t *buf = spi_buffer; - uint32_t bits; - const uint32_t *bitmap = &font->bitmap[font->slide * ch]; - int c, r, j; + const uint8_t *bitmap = &font->bitmap[font->slide * ch]; + int c, r; - for (c = 0; c < font->slide; c++) { - for (j = 0; j < font->scaley; j++) { - bits = bitmap[c]; - for (r = 0; r < font->width; r++) { - *buf++ = (0x80000000UL & bits) ? fg : bg; - bits <<= 1; - } - } - } + for (c = 0; c < font->height; c++) { + uint8_t bits = *bitmap++; + uint8_t m = 0x80; + for (r = 0; r < font->width; r++) { + *buf++ = (bits & m) ? fg : bg; + m >>= 1; + + if (m == 0) { + bits = *bitmap++; + m = 0x80; + } + } + } ili9341_bulk(x, y, font->width, font->height); } @@ -485,7 +486,7 @@ ili9341_test(int mode) #if 1 case 3: for (i = 0; i < 10; i++) - ili9341_drawfont(i, &NF20x24, i*20, 120, colormap[i%6], 0x0000); + ili9341_drawfont(i, &NF20x22, i*20, 120, colormap[i%6], 0x0000); break; #endif #if 0 diff --git a/nanovna.h b/nanovna.h index e6b7a66..08d735e 100644 --- a/nanovna.h +++ b/nanovna.h @@ -153,7 +153,7 @@ extern int area_height; // font extern const uint8_t x5x7_bits []; -extern const uint32_t numfont20x24[][24]; +extern const uint8_t numfont20x22[][22 * 3]; #define S_PI "\034" #define S_MICRO "\035" @@ -269,10 +269,10 @@ typedef struct { uint16_t height; uint16_t scaley; uint16_t slide; - const uint32_t *bitmap; + const uint8_t *bitmap; } font_t; -extern const font_t NF20x24; +extern const font_t NF20x22; extern uint16_t spi_buffer[1024]; diff --git a/numfont20x22.c b/numfont20x22.c new file mode 100644 index 0000000..a84d4dd --- /dev/null +++ b/numfont20x22.c @@ -0,0 +1,624 @@ +/* + * Copyright (c) 2014-2019, TAKAHASHI Tomohiro (TTRFTECH) edy555@gmail.com + * All rights reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * The software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include + +const uint8_t numfont20x22[][22 * 3] = { + { // 0 + 0b00000111, 0b11111100, 0b00001000, + 0b00011111, 0b11111111, 0b00000000, + 0b00111111, 0b11111111, 0b10000000, + 0b01111111, 0b11111111, 0b11000000, + 0b01111110, 0b00001111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111100, 0b00000111, 0b11100000, + 0b01111110, 0b00001111, 0b11000000, + 0b01111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b10000000, + 0b00011111, 0b11111111, 0b00000000, + 0b00000111, 0b11111100, 0b00001000, + }, + { // 1 + 0b00000000, 0b01111100, 0b00001000, + 0b00000000, 0b11111100, 0b00000000, + 0b00000000, 0b11111100, 0b00000000, + 0b00000001, 0b11111100, 0b00000000, + 0b00000111, 0b11111100, 0b00000000, + 0b00011111, 0b11111100, 0b00000000, + 0b00011111, 0b11111100, 0b00000000, + 0b00011111, 0b11111100, 0b00000000, + + 0b00011111, 0b01111100, 0b00000000, + 0b00011111, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + }, + { // 2 + 0b00000011, 0b11111000, 0b00001000, + 0b00001111, 0b11111110, 0b00000000, + 0b00111111, 0b11111111, 0b10000000, + 0b01111111, 0b11111111, 0b11000000, + 0b01111110, 0b00001111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000111, 0b11100000, + + 0b00000000, 0b00001111, 0b11100000, + 0b00000000, 0b00111111, 0b11000000, + 0b00000000, 0b11111111, 0b10000000, + 0b00000011, 0b11111110, 0b00000000, + 0b00001111, 0b11111000, 0b00000000, + 0b00011111, 0b11100000, 0b00000000, + 0b00111111, 0b10000000, 0b00000000, + 0b01111111, 0b00000000, 0b00000000, + + 0b11111110, 0b00000000, 0b00000000, + 0b11111100, 0b00000000, 0b00000000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + }, + { // 3 + 0b00000011, 0b11111000, 0b00001000, + 0b00001111, 0b11111110, 0b00000000, + 0b00111111, 0b11111111, 0b10000000, + 0b01111111, 0b11111111, 0b11000000, + 0b01111110, 0b00001111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000111, 0b11100000, + + 0b00000000, 0b00001111, 0b11000000, + 0b00000000, 0b11111111, 0b11000000, + 0b00000000, 0b11111111, 0b00000000, + 0b00000000, 0b11111111, 0b00000000, + 0b00000000, 0b11111111, 0b10000000, + 0b00000000, 0b00001111, 0b11000000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111000, 0b00000011, 0b11100000, + 0b11111110, 0b00000111, 0b11100000, + 0b01111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b10000000, + 0b00001111, 0b11111111, 0b00000000, + 0b00000001, 0b11111000, 0b00001000, + }, + { // 4 + 0b00000000, 0b00001111, 0b00001000, + 0b00000000, 0b00011111, 0b00000000, + 0b00000000, 0b00111111, 0b00000000, + 0b00000000, 0b01111111, 0b00000000, + 0b00000000, 0b11111111, 0b00000000, + 0b00000001, 0b11111111, 0b00000000, + 0b00000011, 0b11111111, 0b00000000, + 0b00000111, 0b11111111, 0b00000000, + + 0b00001111, 0b11011111, 0b00000000, + 0b00011111, 0b10011111, 0b00000000, + 0b00111111, 0b00011111, 0b00000000, + 0b01111110, 0b00011111, 0b00000000, + 0b11111100, 0b00011111, 0b00000000, + 0b11111000, 0b00011111, 0b00000000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b00000000, 0b00011111, 0b00000000, + 0b00000000, 0b00011111, 0b00000000, + 0b00000000, 0b00011111, 0b00000000, + 0b00000000, 0b00011111, 0b00000000, + }, + { // 5 + 0b11111111, 0b11111111, 0b11101000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11110000, 0b00000000, 0b00000000, + 0b11110000, 0b00000000, 0b00000000, + 0b11110000, 0b00000000, 0b00000000, + 0b11110011, 0b11111000, 0b00000000, + + 0b11111111, 0b11111111, 0b00000000, + 0b11111111, 0b11111111, 0b10000000, + 0b11111111, 0b11111111, 0b11000000, + 0b11111110, 0b00001111, 0b11000000, + 0b00000000, 0b00000111, 0b11100000, + 0b00000000, 0b00000011, 0b11100000, + 0b00000000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111000, 0b00000111, 0b11100000, + 0b11111110, 0b00011111, 0b11100000, + 0b01111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b10000000, + 0b00001111, 0b11111111, 0b00000000, + 0b00000001, 0b11111000, 0b00001000, + }, + { // 6 + 0b00000011, 0b11111110, 0b00001000, + 0b00011111, 0b11111111, 0b10000000, + 0b00111111, 0b11111111, 0b11000000, + 0b01111111, 0b11111111, 0b11000000, + 0b01111110, 0b00000111, 0b11000000, + 0b11111100, 0b00000000, 0b00000000, + 0b11111000, 0b00000000, 0b00000000, + 0b11111000, 0b00000000, 0b00000000, + + 0b11111011, 0b11111000, 0b00000000, + 0b11111111, 0b11111111, 0b00000000, + 0b11111111, 0b11111111, 0b10000000, + 0b11111111, 0b11111111, 0b11000000, + 0b11111110, 0b00011111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111100, 0b00000111, 0b11100000, + 0b11111110, 0b00001111, 0b11100000, + 0b01111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b10000000, + 0b00001111, 0b11111111, 0b00000000, + 0b00000001, 0b11111000, 0b00001000, + }, + { // 7 + 0b11111111, 0b11111111, 0b11101000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b00000000, 0b00000111, 0b11100000, + 0b00000000, 0b00001111, 0b11000000, + 0b00000000, 0b00011111, 0b10000000, + 0b00000000, 0b00111111, 0b00000000, + + 0b00000000, 0b01111110, 0b00000000, + 0b00000000, 0b01111100, 0b00000000, + 0b00000000, 0b11111100, 0b00000000, + 0b00000000, 0b11111000, 0b00000000, + 0b00000001, 0b11111000, 0b00000000, + 0b00000001, 0b11110000, 0b00000000, + 0b00000001, 0b11110000, 0b00000000, + 0b00000011, 0b11110000, 0b00000000, + + 0b00000011, 0b11100000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + }, + { // 8 + 0b00000011, 0b11111000, 0b00001000, + 0b00001111, 0b11111110, 0b00000000, + 0b00111111, 0b11111111, 0b10000000, + 0b01111111, 0b11111111, 0b11000000, + 0b01111110, 0b00001111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b01111100, 0b00000111, 0b11000000, + + 0b01111110, 0b00001111, 0b11000000, + 0b00111111, 0b11111111, 0b10000000, + 0b00011111, 0b11111111, 0b00000000, + 0b00011111, 0b11111111, 0b00000000, + 0b00111111, 0b11111111, 0b10000000, + 0b01111110, 0b00001111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111000, 0b00000011, 0b11100000, + 0b11111100, 0b00000111, 0b11100000, + 0b01111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b10000000, + 0b00011111, 0b11111111, 0b00000000, + 0b00000111, 0b11111100, 0b00001000, + }, + { // 9 + 0b00000011, 0b11111000, 0b00001000, + 0b00001111, 0b11111110, 0b00000000, + 0b00111111, 0b11111111, 0b10000000, + 0b01111111, 0b11111111, 0b11000000, + 0b01111110, 0b00001111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111100, 0b00000011, 0b11100000, + 0b11111110, 0b00000111, 0b11100000, + 0b01111111, 0b11111111, 0b11100000, + 0b00111111, 0b11111111, 0b11100000, + 0b00001111, 0b11111111, 0b11100000, + 0b00000011, 0b11111111, 0b11100000, + 0b00000000, 0b00000011, 0b11100000, + 0b00000000, 0b00000011, 0b11100000, + + 0b11111000, 0b00000111, 0b11100000, + 0b11111100, 0b00001111, 0b11000000, + 0b11111111, 0b11111111, 0b11000000, + 0b01111111, 0b11111111, 0b10000000, + 0b00111111, 0b11111111, 0b00000000, + 0b00001111, 0b11111100, 0b00001000, + }, + { // . (period) = \001 + 0b00000000, 0b00000000, 0b00001000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + + 0b00000000, 0b00000000, 0b00000000, + 0b00000001, 0b11000000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000001, 0b11000000, 0b00000000, + 0b00000000, 0b00000000, 0b00001000, + }, + { // - (minus) = \002 + 0b00000000, 0b00000000, 0b00001000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b11000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00001000, + }, + { // x1 + 0b00000000, 0b00000000, 0b00001000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000001, 0b11100000, + 0b00000000, 0b00000011, 0b11100000, + 0b00000000, 0b00000111, 0b11100000, + + 0b00000000, 0b00001111, 0b11100000, + 0b00000000, 0b00001111, 0b11100000, + 0b00000000, 0b00000011, 0b11100000, + 0b00000000, 0b00000011, 0b11100000, + 0b00110000, 0b01100011, 0b11100000, + 0b11111000, 0b11110011, 0b11100000, + 0b01111101, 0b11100011, 0b11100000, + 0b00011111, 0b11000011, 0b11100000, + + 0b00001111, 0b10000011, 0b11100000, + 0b00001111, 0b10000011, 0b11100000, + 0b00011111, 0b11000011, 0b11100000, + 0b00111101, 0b11100011, 0b11100000, + 0b01111000, 0b11110011, 0b11100000, + 0b00110000, 0b01100011, 0b11101000, + }, + { // k + 0b01111100, 0b00000000, 0b00001000, + 0b01111100, 0b00000000, 0b00000000, + 0b01111100, 0b00000000, 0b00000000, + 0b01111100, 0b00000000, 0b00000000, + 0b01111100, 0b00000000, 0b00000000, + 0b01111100, 0b00000000, 0b00000000, + 0b01111100, 0b00011111, 0b10000000, + 0b01111100, 0b00111111, 0b00000000, + + 0b01111100, 0b01111110, 0b00000000, + 0b01111100, 0b11111100, 0b00000000, + 0b01111101, 0b11111000, 0b00000000, + 0b01111111, 0b11110000, 0b00000000, + 0b01111111, 0b11100000, 0b00000000, + 0b01111111, 0b11000000, 0b00000000, + 0b01111111, 0b11000000, 0b00000000, + 0b01111111, 0b11100000, 0b00000000, + + 0b01111111, 0b11110000, 0b00000000, + 0b01111101, 0b11111000, 0b00000000, + 0b01111100, 0b11111100, 0b00000000, + 0b01111100, 0b01111110, 0b00000000, + 0b01111100, 0b00111111, 0b00000000, + 0b01111100, 0b00011111, 0b10001000, + }, + { // M + 0b11111000, 0b00000011, 0b11101000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111110, 0b00001111, 0b11100000, + 0b11111110, 0b00001111, 0b11100000, + 0b11111111, 0b00011111, 0b11100000, + 0b11111111, 0b00011111, 0b11100000, + + 0b11111111, 0b10111111, 0b11100000, + 0b11111111, 0b10111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b11111011, 0b11111011, 0b11100000, + 0b11111011, 0b11111011, 0b11100000, + + 0b11111001, 0b11110011, 0b11100000, + 0b11111001, 0b11110011, 0b11100000, + 0b11111000, 0b11100011, 0b11100000, + 0b11111000, 0b11100011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11101000, + }, + { // G + 0b00000111, 0b11111100, 0b00001000, + 0b00011111, 0b11111111, 0b00000000, + 0b00111111, 0b11111111, 0b10000000, + 0b01111111, 0b11111111, 0b11000000, + 0b01111110, 0b00001111, 0b11000000, + 0b11111100, 0b00000111, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + 0b11111000, 0b00000011, 0b11100000, + + 0b11111000, 0b00000000, 0b00000000, + 0b11111000, 0b00000000, 0b00000000, + 0b11111000, 0b00000000, 0b00000000, + 0b11111000, 0b00000000, 0b00000000, + 0b11111000, 0b00011111, 0b11100000, + 0b11111000, 0b00011111, 0b11100000, + 0b11111000, 0b00011111, 0b11100000, + 0b11111000, 0b00011111, 0b11100000, + + 0b11111100, 0b00000111, 0b11100000, + 0b01111110, 0b00001111, 0b11100000, + 0b01111111, 0b11111111, 0b11100000, + 0b00111111, 0b11111111, 0b11100000, + 0b00011111, 0b11111111, 0b11100000, + 0b00000111, 0b11111011, 0b11101000, + + }, + { // BS + 0b00000000, 0b00000000, 0b00001000, + 0b00000000, 0b00100000, 0b00000000, + 0b00000000, 0b01100000, 0b00000000, + 0b00000000, 0b11100000, 0b00000000, + 0b00000001, 0b11100000, 0b00000000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000111, 0b11111111, 0b11100000, + 0b00001111, 0b11111111, 0b11100000, + + 0b00011111, 0b11111111, 0b11100000, + 0b00111111, 0b11111111, 0b11100000, + 0b01111111, 0b11111111, 0b11100000, + 0b11111111, 0b11111111, 0b11100000, + 0b01111111, 0b11111111, 0b11100000, + 0b00111111, 0b11111111, 0b11100000, + 0b00011111, 0b11111111, 0b11100000, + 0b00001111, 0b11111111, 0b11100000, + + 0b00000111, 0b11111111, 0b11100000, + 0b00000011, 0b11100000, 0b00000000, + 0b00000001, 0b11100000, 0b00000000, + 0b00000000, 0b11100000, 0b00000000, + 0b00000000, 0b01100000, 0b00000000, + 0b00000000, 0b00100000, 0b00001000, + }, + { // infinity = \003 + 0b00000000, 0b00000000, 0b00001000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000111, 0b10001111, 0b00000000, + 0b00001111, 0b11011111, 0b10000000, + 0b00011111, 0b11011111, 0b11000000, + + 0b00111000, 0b11110001, 0b11000000, + 0b01111000, 0b11100001, 0b11100000, + 0b01110000, 0b01100000, 0b11100000, + 0b01110000, 0b01100000, 0b11100000, + 0b01110000, 0b01100000, 0b11100000, + 0b01110000, 0b01100000, 0b11100000, + 0b01111000, 0b01110001, 0b11100000, + 0b00111000, 0b11110001, 0b11000000, + + 0b00111111, 0b10111111, 0b11000000, + 0b00011111, 0b10111111, 0b10000000, + 0b00001111, 0b00011110, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00001000, + }, + { // dB = \004 + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000011, 0b10111111, 0b00000000, + + 0b00000011, 0b10111111, 0b10000000, + 0b00000011, 0b10111111, 0b11000000, + 0b00000011, 0b10111001, 0b11100000, + 0b00000011, 0b10111000, 0b11100000, + 0b00111111, 0b10111001, 0b11100000, + 0b01111111, 0b10111111, 0b11100000, + 0b11111111, 0b10111111, 0b10000000, + 0b11110011, 0b10111111, 0b11000000, + + 0b11100011, 0b10111001, 0b11100000, + 0b11100011, 0b10111000, 0b11100000, + 0b11110011, 0b10111001, 0b11100000, + 0b01111111, 0b10111111, 0b11100000, + 0b01111111, 0b10111111, 0b11000000, + 0b00111101, 0b10111111, 0b00001000, + }, + { // plus/minus = \005 + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00011000, 0b00000000, + + 0b00011100, 0b00011000, 0b00000000, + 0b00011100, 0b00011000, 0b00000000, + 0b00011100, 0b00110000, 0b00000000, + 0b11111111, 0b10110111, 0b11110000, + 0b11111111, 0b10110111, 0b11110000, + 0b11111111, 0b10110111, 0b11110000, + 0b00011100, 0b00110000, 0b00000000, + 0b00011100, 0b01100000, 0b00000000, + + 0b00011100, 0b01100000, 0b00000000, + 0b00000000, 0b01100000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00001000, + }, + { // keypad = \007 + 0b00000000, 0b00000000, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00111101, 0b11101111, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00001000, + }, + { // nano + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + + 0b01111001, 0b11111100, 0b00000000, + 0b01111111, 0b11111111, 0b00000000, + 0b01111111, 0b11111111, 0b10000000, + 0b01111111, 0b11111111, 0b10000000, + 0b01111110, 0b00001111, 0b11000000, + 0b01111100, 0b00000111, 0b11000000, + 0b01111000, 0b00000011, 0b11000000, + 0b01111000, 0b00000011, 0b11000000, + + 0b01111000, 0b00000011, 0b11000000, + 0b01111000, 0b00000011, 0b11000000, + 0b01111000, 0b00000011, 0b11000000, + 0b01111000, 0b00000011, 0b11000000, + 0b01111000, 0b00000011, 0b11000000, + 0b01111000, 0b00000011, 0b11001000, + }, + { // pico + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00000000, 0b00000000, 0b00000000, + 0b00111101, 0b11111100, 0b00000000, + 0b00111111, 0b11111111, 0b00000000, + + 0b00111111, 0b11111111, 0b10000000, + 0b00111111, 0b11111111, 0b11000000, + 0b00111111, 0b00000111, 0b11000000, + 0b00111110, 0b00000011, 0b11000000, + 0b00111110, 0b00000011, 0b11000000, + 0b00111110, 0b00000011, 0b11000000, + 0b00111111, 0b00000111, 0b11000000, + 0b00111111, 0b11111111, 0b11000000, + 0b00111111, 0b11111111, 0b10000000, + + 0b00111111, 0b11111111, 0b00000000, + 0b00111101, 0b11111100, 0b00000000, + 0b00111100, 0b00000000, 0b00000000, + 0b00111100, 0b00000000, 0b00000000, + 0b00111100, 0b00000000, 0b00001000, + }, +}; + diff --git a/numfont20x24.c b/numfont20x24.c deleted file mode 100644 index f6b2525..0000000 --- a/numfont20x24.c +++ /dev/null @@ -1,669 +0,0 @@ -/* - * Copyright (c) 2014-2019, TAKAHASHI Tomohiro (TTRFTECH) edy555@gmail.com - * All rights reserved. - * - * This is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * The software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNU Radio; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#include - -const uint32_t numfont20x24[][24] = { - { // 0 - 0b00000111111111000000100000000000, - 0b00011111111111110000000000000000, - 0b00111111111111111000000000000000, - 0b01111111111111111100000000000000, - 0b01111110000011111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111100000001111110000000000000, - 0b01111110000011111100000000000000, - 0b01111111111111111100000000000000, - 0b00111111111111111000000000000000, - 0b00011111111111110000000000000000, - 0b00000111111111000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 1 - 0b00000000011111000000100000000000, - 0b00000000111111000000000000000000, - 0b00000000111111000000000000000000, - 0b00000001111111000000000000000000, - 0b00000111111111000000000000000000, - 0b00011111111111000000000000000000, - 0b00011111111111000000000000000000, - 0b00011111111111000000000000000000, - - 0b00011111011111000000000000000000, - 0b00011111011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000011111000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 2 - 0b00000011111110000000100000000000, - 0b00001111111111100000000000000000, - 0b00111111111111111000000000000000, - 0b01111111111111111100000000000000, - 0b01111110000011111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000001111110000000000000, - - 0b00000000000011111110000000000000, - 0b00000000001111111100000000000000, - 0b00000000111111111000000000000000, - 0b00000011111111100000000000000000, - 0b00001111111110000000000000000000, - 0b00011111111000000000000000000000, - 0b00111111100000000000000000000000, - 0b01111111000000000000000000000000, - - 0b11111110000000000000000000000000, - 0b11111100000000000000000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 3 - 0b00000011111110000000100000000000, - 0b00001111111111100000000000000000, - 0b00111111111111111000000000000000, - 0b01111111111111111100000000000000, - 0b01111110000011111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000001111110000000000000, - - 0b00000000000011111100000000000000, - 0b00000000111111111100000000000000, - 0b00000000111111110000000000000000, - 0b00000000111111110000000000000000, - 0b00000000111111111000000000000000, - 0b00000000000011111100000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111000000000111110000000000000, - 0b11111110000001111110000000000000, - 0b01111111111111111100000000000000, - 0b00111111111111111000000000000000, - 0b00001111111111110000000000000000, - 0b00000001111110000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 4 - 0b00000000000011110000100000000000, - 0b00000000000111110000000000000000, - 0b00000000001111110000000000000000, - 0b00000000011111110000000000000000, - 0b00000000111111110000000000000000, - 0b00000001111111110000000000000000, - 0b00000011111111110000000000000000, - 0b00000111111111110000000000000000, - - 0b00001111110111110000000000000000, - 0b00011111100111110000000000000000, - 0b00111111000111110000000000000000, - 0b01111110000111110000000000000000, - 0b11111100000111110000000000000000, - 0b11111000000111110000000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b00000000000111110000000000000000, - 0b00000000000111110000000000000000, - 0b00000000000111110000000000000000, - 0b00000000000111110000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 5 - 0b11111111111111111110100000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11110000000000000000000000000000, - 0b11110000000000000000000000000000, - 0b11110000000000000000000000000000, - 0b11110011111110000000000000000000, - - 0b11111111111111110000000000000000, - 0b11111111111111111000000000000000, - 0b11111111111111111100000000000000, - 0b11111110000011111100000000000000, - 0b00000000000001111110000000000000, - 0b00000000000000111110000000000000, - 0b00000000000000111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111000000001111110000000000000, - 0b11111110000111111110000000000000, - 0b01111111111111111100000000000000, - 0b00111111111111111000000000000000, - 0b00001111111111110000000000000000, - 0b00000001111110000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 6 - 0b00000011111111100000100000000000, - 0b00011111111111111000000000000000, - 0b00111111111111111100000000000000, - 0b01111111111111111100000000000000, - 0b01111110000001111100000000000000, - 0b11111100000000000000000000000000, - 0b11111000000000000000000000000000, - 0b11111000000000000000000000000000, - - 0b11111011111110000000000000000000, - 0b11111111111111110000000000000000, - 0b11111111111111111000000000000000, - 0b11111111111111111100000000000000, - 0b11111110000111111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111100000001111110000000000000, - 0b11111110000011111110000000000000, - 0b01111111111111111100000000000000, - 0b00111111111111111000000000000000, - 0b00001111111111110000000000000000, - 0b00000001111110000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 7 - 0b11111111111111111110100000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b00000000000001111110000000000000, - 0b00000000000011111100000000000000, - 0b00000000000111111000000000000000, - 0b00000000001111110000000000000000, - - 0b00000000011111100000000000000000, - 0b00000000011111000000000000000000, - 0b00000000111111000000000000000000, - 0b00000000111110000000000000000000, - 0b00000001111110000000000000000000, - 0b00000001111100000000000000000000, - 0b00000001111100000000000000000000, - 0b00000011111100000000000000000000, - - 0b00000011111000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 8 - 0b00000011111110000000100000000000, - 0b00001111111111100000000000000000, - 0b00111111111111111000000000000000, - 0b01111111111111111100000000000000, - 0b01111110000011111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - 0b01111100000001111100000000000000, - - 0b01111110000011111100000000000000, - 0b00111111111111111000000000000000, - 0b00011111111111110000000000000000, - 0b00011111111111110000000000000000, - 0b00111111111111111000000000000000, - 0b01111110000011111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111000000000111110000000000000, - 0b11111100000001111110000000000000, - 0b01111111111111111100000000000000, - 0b00111111111111111000000000000000, - 0b00011111111111110000000000000000, - 0b00000111111111000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // 9 - 0b00000011111110000000100000000000, - 0b00001111111111100000000000000000, - 0b00111111111111111000000000000000, - 0b01111111111111111100000000000000, - 0b01111110000011111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111100000000111110000000000000, - 0b11111110000001111110000000000000, - 0b01111111111111111110000000000000, - 0b00111111111111111110000000000000, - 0b00001111111111111110000000000000, - 0b00000011111111111110000000000000, - 0b00000000000000111110000000000000, - 0b00000000000000111110000000000000, - - 0b11111000000001111110000000000000, - 0b11111100000011111100000000000000, - 0b11111111111111111100000000000000, - 0b01111111111111111000000000000000, - 0b00111111111111110000000000000000, - 0b00001111111111000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // . (period) = \001 - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - - 0b00000000000000000000000000000000, - 0b00000001110000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000001110000000000000000000000, - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // - (minus) = \002 - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00111111111111111100000000000000, - 0b00111111111111111100000000000000, - 0b00111111111111111100000000000000, - 0b00111111111111111100000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // x1 - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000011110000000000000, - 0b00000000000000111110000000000000, - 0b00000000000001111110000000000000, - - 0b00000000000011111110000000000000, - 0b00000000000011111110000000000000, - 0b00000000000000111110000000000000, - 0b00000000000000111110000000000000, - 0b00110000011000111110000000000000, - 0b11111000111100111110000000000000, - 0b01111101111000111110000000000000, - 0b00011111110000111110000000000000, - - 0b00001111100000111110000000000000, - 0b00001111100000111110000000000000, - 0b00011111110000111110000000000000, - 0b00111101111000111110000000000000, - 0b01111000111100111110000000000000, - 0b00110000011000111110100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // k - 0b01111100000000000000100000000000, - 0b01111100000000000000000000000000, - 0b01111100000000000000000000000000, - 0b01111100000000000000000000000000, - 0b01111100000000000000000000000000, - 0b01111100000000000000000000000000, - 0b01111100000111111000000000000000, - 0b01111100001111110000000000000000, - - 0b01111100011111100000000000000000, - 0b01111100111111000000000000000000, - 0b01111101111110000000000000000000, - 0b01111111111100000000000000000000, - 0b01111111111000000000000000000000, - 0b01111111110000000000000000000000, - 0b01111111110000000000000000000000, - 0b01111111111000000000000000000000, - - 0b01111111111100000000000000000000, - 0b01111101111110000000000000000000, - 0b01111100111111000000000000000000, - 0b01111100011111100000000000000000, - 0b01111100001111110000000000000000, - 0b01111100000111111000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // M - 0b11111000000000111110100000000000, - 0b11111000000000111110000000000000, - 0b11111100000001111110000000000000, - 0b11111100000001111110000000000000, - 0b11111110000011111110000000000000, - 0b11111110000011111110000000000000, - 0b11111111000111111110000000000000, - 0b11111111000111111110000000000000, - - 0b11111111101111111110000000000000, - 0b11111111101111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b11111011111110111110000000000000, - 0b11111011111110111110000000000000, - - 0b11111001111100111110000000000000, - 0b11111001111100111110000000000000, - 0b11111000111000111110000000000000, - 0b11111000111000111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // G - 0b00000111111111000000100000000000, - 0b00011111111111110000000000000000, - 0b00111111111111111000000000000000, - 0b01111111111111111100000000000000, - 0b01111110000011111100000000000000, - 0b11111100000001111110000000000000, - 0b11111000000000111110000000000000, - 0b11111000000000111110000000000000, - - 0b11111000000000000000000000000000, - 0b11111000000000000000000000000000, - 0b11111000000000000000000000000000, - 0b11111000000000000000000000000000, - 0b11111000000111111110000000000000, - 0b11111000000111111110000000000000, - 0b11111000000111111110000000000000, - 0b11111000000111111110000000000000, - - 0b11111100000001111110000000000000, - 0b01111110000011111110000000000000, - 0b01111111111111111110000000000000, - 0b00111111111111111110000000000000, - 0b00011111111111111110000000000000, - 0b00000111111110111110100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // BS - 0b00000000000000000000100000000000, - 0b00000000001000000000000000000000, - 0b00000000011000000000000000000000, - 0b00000000111000000000000000000000, - 0b00000001111000000000000000000000, - 0b00000011111000000000000000000000, - 0b00000111111111111110000000000000, - 0b00001111111111111110000000000000, - - 0b00011111111111111110000000000000, - 0b00111111111111111110000000000000, - 0b01111111111111111110000000000000, - 0b11111111111111111110000000000000, - 0b01111111111111111110000000000000, - 0b00111111111111111110000000000000, - 0b00011111111111111110000000000000, - 0b00001111111111111110000000000000, - - 0b00000111111111111110000000000000, - 0b00000011111000000000000000000000, - 0b00000001111000000000000000000000, - 0b00000000111000000000000000000000, - 0b00000000011000000000000000000000, - 0b00000000001000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - }, - { // infinity = \003 - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000111100011110000000000000000, - 0b00001111110111111000000000000000, - 0b00011111110111111100000000000000, - - 0b00111000111100011100000000000000, - 0b01111000111000011110000000000000, - 0b01110000011000001110000000000000, - 0b01110000011000001110000000000000, - 0b01110000011000001110000000000000, - 0b01110000011000001110000000000000, - 0b01111000011100011110000000000000, - 0b00111000111100011100000000000000, - - 0b00111111101111111100000000000000, - 0b00011111101111111000000000000000, - 0b00001111000111100000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // dB = \004 - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000011101111110000000000000000, - - 0b00000011101111111000000000000000, - 0b00000011101111111100000000000000, - 0b00000011101110011110000000000000, - 0b00000011101110001110000000000000, - 0b00111111101110011110000000000000, - 0b01111111101111111110000000000000, - 0b11111111101111111000000000000000, - 0b11110011101111111100000000000000, - - 0b11100011101110011110000000000000, - 0b11100011101110001110000000000000, - 0b11110011101110011110000000000000, - 0b01111111101111111110000000000000, - 0b01111111101111111100000000000000, - 0b00111101101111110000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // plus/minus = \005 - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000110000000000000000000, - - 0b00011100000110000000000000000000, - 0b00011100000110000000000000000000, - 0b00011100001100000000000000000000, - 0b11111111101101111111000000000000, - 0b11111111101101111111000000000000, - 0b11111111101101111111000000000000, - 0b00011100001100000000000000000000, - 0b00011100011000000000000000000000, - - 0b00011100011000000000000000000000, - 0b00000000011000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // keypad = \007 - 0b00000000000000000000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00000000000000000000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00000000000000000000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00000000000000000000000000000000, - - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00111101111011110000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // nano - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - - 0b01111001111111000000000000000000, - 0b01111111111111110000000000000000, - 0b01111111111111111000000000000000, - 0b01111111111111111000000000000000, - 0b01111110000011111100000000000000, - 0b01111100000001111100000000000000, - 0b01111000000000111100000000000000, - 0b01111000000000111100000000000000, - - 0b01111000000000111100000000000000, - 0b01111000000000111100000000000000, - 0b01111000000000111100000000000000, - 0b01111000000000111100000000000000, - 0b01111000000000111100000000000000, - 0b01111000000000111100100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, - { // pico - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000, - 0b00111101111111000000000000000000, - 0b00111111111111110000000000000000, - - 0b00111111111111111000000000000000, - 0b00111111111111111100000000000000, - 0b00111111000001111100000000000000, - 0b00111110000000111100000000000000, - 0b00111110000000111100000000000000, - 0b00111110000000111100000000000000, - 0b00111111000001111100000000000000, - 0b00111111111111111100000000000000, - 0b00111111111111111000000000000000, - - 0b00111111111111110000000000000000, - 0b00111101111111000000000000000000, - 0b00111100000000000000000000000000, - 0b00111100000000000000000000000000, - 0b00111100000000000000100000000000, - 0b00000000000000000000000000000000, - 0b00000000000000000000000000000000 - }, -}; - diff --git a/ui.c b/ui.c index 5b79af0..6333bdc 100644 --- a/ui.c +++ b/ui.c @@ -1243,7 +1243,7 @@ draw_keypad(void) if (i == selection) bg = config.menu_active_color; ili9341_fill(keypads[i].x, keypads[i].y, 44, 44, bg); - ili9341_drawfont(keypads[i].c, &NF20x24, keypads[i].x+12, keypads[i].y+10, 0x0000, bg); + ili9341_drawfont(keypads[i].c, &NF20x22, keypads[i].x+12, keypads[i].y+10, 0x0000, bg); i++; } } @@ -1253,7 +1253,7 @@ draw_numeric_area_frame(void) { ili9341_fill(0, 208, 320, 32, 0xffff); ili9341_drawstring_5x7(keypad_mode_label[keypad_mode], 10, 220, 0x0000, 0xffff); - ili9341_drawfont(KP_KEYPAD, &NF20x24, 300, 216, 0x0000, 0xffff); + ili9341_drawfont(KP_KEYPAD, &NF20x22, 300, 216, 0x0000, 0xffff); } void @@ -1284,9 +1284,9 @@ draw_numeric_input(const char *buf) } if (c >= 0) - ili9341_drawfont(c, &NF20x24, x, 208+4, fg, bg); + ili9341_drawfont(c, &NF20x22, x, 208+4, fg, bg); else if (focused) - ili9341_drawfont(0, &NF20x24, x, 208+4, fg, bg); + ili9341_drawfont(0, &NF20x22, x, 208+4, fg, bg); else ili9341_fill(x, 208+4, 20, 24, bg); From 0124e1b32d4d5ce35345d22b84c5bb18e558a4b5 Mon Sep 17 00:00:00 2001 From: TT Date: Sun, 20 Oct 2019 23:59:15 +0900 Subject: [PATCH 6/7] chore: update codec control --- main.c | 9 +- nanovna.h | 15 +- tlv320aic3204.c | 424 +++++++++++++----------------------------------- 3 files changed, 120 insertions(+), 328 deletions(-) diff --git a/main.c b/main.c index c277e37..1e83396 100644 --- a/main.c +++ b/main.c @@ -661,7 +661,7 @@ bool sweep(bool break_on_operation) for (i = 0; i < sweep_points; i++) { int delay = set_frequency(frequencies[i]); - tlv320aic3204_select_in3(); // CH0:REFLECT + tlv320aic3204_select(0); // CH0:REFLECT wait_dsp(delay); // blink LED while scanning @@ -670,7 +670,7 @@ bool sweep(bool break_on_operation) /* calculate reflection coeficient */ (*sample_func)(measured[0][i]); - tlv320aic3204_select_in1(); // CH1:TRANSMISSION + tlv320aic3204_select(1); // CH1:TRANSMISSION wait_dsp(delay + DELAY_CHANNEL_CHANGE); /* calculate transmission coeficient */ @@ -1904,10 +1904,7 @@ static void cmd_port(BaseSequentialStream *chp, int argc, char *argv[]) return; } port = atoi(argv[0]); - if (port) - tlv320aic3204_select_in1(); - else - tlv320aic3204_select_in3(); // default + tlv320aic3204_select(port); } static void cmd_stat(BaseSequentialStream *chp, int argc, char *argv[]) diff --git a/nanovna.h b/nanovna.h index 08d735e..bbbf819 100644 --- a/nanovna.h +++ b/nanovna.h @@ -115,23 +115,10 @@ int si5351_set_frequency_with_offset(uint32_t freq, int offset, uint8_t drive_st /* * tlv320aic3204.c */ -typedef struct { - int target_level; - int gain_hysteresis; - int attack; - int attack_scale; - int decay; - int decay_scale; -} tlv320aic3204_agc_config_t; extern void tlv320aic3204_init(void); extern void tlv320aic3204_set_gain(int lgain, int rgain); -extern void tlv320aic3204_set_digital_gain(int gain); -extern void tlv320aic3204_set_volume(int gain); -extern void tlv320aic3204_agc_config(tlv320aic3204_agc_config_t *conf); -extern void tlv320aic3204_select_in1(void); -extern void tlv320aic3204_select_in3(void); -extern void tlv320aic3204_adc_filter_enable(int enable); +extern void tlv320aic3204_select(int channel); /* diff --git a/tlv320aic3204.c b/tlv320aic3204.c index 204610c..cb86ad5 100644 --- a/tlv320aic3204.c +++ b/tlv320aic3204.c @@ -25,325 +25,133 @@ #define wait_ms(ms) chThdSleepMilliseconds(ms) -void tlv320aic3204_config_adc_filter(void); +static const uint8_t conf_data_pll[] = { + // len, ( reg, data ), + 2, 0x00, 0x00, /* Initialize to Page 0 */ + 2, 0x01, 0x01, /* Initialize the device through software reset */ + 2, 0x04, 0x43, /* PLL Clock High, MCLK, PLL */ +#ifdef REFCLK_8000KHZ + /* 8.000MHz*10.7520 = 86.016MHz, 86.016MHz/(2*7*128) = 48kHz */ + 2, 0x05, 0x91, /* Power up PLL, P=1,R=1 */ + 2, 0x06, 0x0a, /* J=10 */ + 2, 0x07, 29, /* D=7520 = (29<<8) + 96 */ + 2, 0x08, 96, +#endif + 0 // sentinel +}; -static void I2CWrite(int addr, uint8_t d0, uint8_t d1) +// default fs=48kHz +static const uint8_t conf_data_clk[] = { + 2, 0x0b, 0x82, /* Power up the NDAC divider with value 2 */ + 2, 0x0c, 0x87, /* Power up the MDAC divider with value 7 */ + 2, 0x0d, 0x00, /* Program the OSR of DAC to 128 */ + 2, 0x0e, 0x80, + 2, 0x3c, 0x08, /* Set the DAC Mode to PRB_P8 */ + //2, 0x3c, 25, /* Set the DAC Mode to PRB_P25 */ + 2, 0x1b, 0x0c, /* Set the BCLK,WCLK as output */ + 2, 0x1e, 0x80 + 28, /* Enable the BCLKN divider with value 28 */ + 2, 0x25, 0xee, /* DAC power up */ + + 2, 0x12, 0x82, /* Power up the NADC divider with value 2 */ + 2, 0x13, 0x87, /* Power up the MADC divider with value 7 */ + 2, 0x14, 0x80, /* Program the OSR of ADC to 128 */ + 2, 0x3d, 0x01, /* Select ADC PRB_R1 */ + 0 // sentinel +}; + +static const uint8_t conf_data_routing[] = { + 2, 0x00, 0x01, /* Select Page 1 */ + 2, 0x01, 0x08, /* Disable Internal Crude AVdd in presence of external AVdd supply or before powering up internal AVdd LDO*/ + 2, 0x02, 0x01, /* Enable Master Analog Power Control */ + 2, 0x7b, 0x01, /* Set the REF charging time to 40ms */ + 2, 0x14, 0x25, /* HP soft stepping settings for optimal pop performance at power up Rpop used is 6k with N = 6 and soft step = 20usec. This should work with 47uF coupling capacitor. Can try N=5,6 or 7 time constants as well. Trade-off delay vs “pop” sound. */ + 2, 0x0a, 0x33, /* Set the Input Common Mode to 0.9V and Output Common Mode for Headphone to 1.65V */ + + 2, 0x3d, 0x00, /* Select ADC PTM_R4 */ + 2, 0x47, 0x32, /* Set MicPGA startup delay to 3.1ms */ + 2, 0x7b, 0x01, /* Set the REF charging time to 40ms */ + 2, 0x34, 0x10, /* Route IN2L to LEFT_P with 10K */ + 2, 0x36, 0x10, /* Route IN2R to LEFT_N with 10K */ + 2, 0x37, 0x04, /* Route IN3R to RIGHT_P with 10K */ + 2, 0x39, 0x04, /* Route IN3L to RIGHT_N with 10K */ + 2, 0x3b, 0, /* Unmute Left MICPGA, Gain selection of 32dB to make channel gain 0dB */ + 2, 0x3c, 0, /* Unmute Right MICPGA, Gain selection of 32dB to make channel gain 0dB */ + 0 // sentinel +}; + +const uint8_t conf_data_unmute[] = { + 2, 0x00, 0x00, /* Select Page 0 */ + 2, 0x51, 0xc0, /* Power up Left and Right ADC Channels */ + 2, 0x52, 0x00, /* Unmute Left and Right ADC Digital Volume Control */ + 0 // sentinel +}; + +static void +tlv320aic3204_bulk_write(const uint8_t *buf, int len) { - uint8_t buf[] = { d0, d1 }; - i2cAcquireBus(&I2CD1); - (void)i2cMasterTransmitTimeout(&I2CD1, addr, buf, 2, NULL, 0, 1000); - i2cReleaseBus(&I2CD1); + int addr = AIC3204_ADDR; + i2cAcquireBus(&I2CD1); + (void)i2cMasterTransmitTimeout(&I2CD1, addr, buf, len, NULL, 0, 1000); + i2cReleaseBus(&I2CD1); +} + +#if 0 +static int +tlv320aic3204_read(uint8_t d0) +{ + int addr = AIC3204_ADDR; + uint8_t buf[] = { d0 }; + i2cAcquireBus(&I2CD1); + i2cMasterTransmitTimeout(&I2CD1, addr, buf, 1, buf, 1, 1000); + i2cReleaseBus(&I2CD1); + return buf[0]; +} +#endif + +static void +tlv320aic3204_config(const uint8_t *data) +{ + const uint8_t *p = data; + while (*p) { + uint8_t len = *p++; + tlv320aic3204_bulk_write(p, len); + p += len; + } } void tlv320aic3204_init(void) { - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Initialize to Page 0 */ - I2CWrite(AIC3204_ADDR, 0x01, 0x01); /* Initialize the device through software reset */ - I2CWrite(AIC3204_ADDR, 0x04, 0x43); /* PLL Clock High, MCLK, PLL */ -#ifdef REFCLK_8000KHZ - /* 8.000MHz*10.7520 = 86.016MHz, 86.016MHz/(2*7*128) = 48kHz */ - I2CWrite(AIC3204_ADDR, 0x05, 0x91); /* Power up PLL, P=1,R=1 */ - I2CWrite(AIC3204_ADDR, 0x06, 0x0a); /* J=10 */ - I2CWrite(AIC3204_ADDR, 0x07, 29); /* D=7520 = (29<<8) + 96 */ - I2CWrite(AIC3204_ADDR, 0x08, 96); -#endif -#ifdef REFCLK_12000KHZ - /* 12.000MHz*7.1680 = 86.016MHz, 86.016MHz/(2*7*128) = 48kHz */ - I2CWrite(AIC3204_ADDR, 0x05, 0x91); /* Power up PLL, P=1,R=1 */ - I2CWrite(AIC3204_ADDR, 0x06, 0x07); /* J=7 */ - I2CWrite(AIC3204_ADDR, 0x07, 6); /* D=1680 = (6<<8) + 144 */ - I2CWrite(AIC3204_ADDR, 0x08, 144); -#endif -#ifdef REFCLK_19200KHZ - /* 19.200MHz*4.48 = 86.016MHz, 86.016MHz/(2*7*128) = 48kHz */ - I2CWrite(AIC3204_ADDR, 0x05, 0x91); /* Power up PLL, P=1,R=1 */ - I2CWrite(AIC3204_ADDR, 0x06, 0x04); /* J=4 */ - I2CWrite(AIC3204_ADDR, 0x07, 18); /* D=4800 = (18<<8) + 192 */ - I2CWrite(AIC3204_ADDR, 0x08, 192); -#endif - I2CWrite(AIC3204_ADDR, 0x0b, 0x82); /* Power up the NDAC divider with value 2 */ - I2CWrite(AIC3204_ADDR, 0x0c, 0x87); /* Power up the MDAC divider with value 7 */ - I2CWrite(AIC3204_ADDR, 0x0d, 0x00); /* Program the OSR of DAC to 128 */ - I2CWrite(AIC3204_ADDR, 0x0e, 0x80); - I2CWrite(AIC3204_ADDR, 0x3c, 0x08); /* Set the DAC Mode to PRB_P8 */ - I2CWrite(AIC3204_ADDR, 0x1b, 0x0c); /* Set the BCLK,WCLK as output */ - I2CWrite(AIC3204_ADDR, 0x1e, 0x80 + 28); /* Enable the BCLKN divider with value 28 */ - I2CWrite(AIC3204_ADDR, 0x25, 0xee); /* DAC power up */ - I2CWrite(AIC3204_ADDR, 0x00, 0x01); /* Select Page 1 */ - I2CWrite(AIC3204_ADDR, 0x01, 0x08); /* Disable Internal Crude AVdd in presence of external AVdd supply or before powering up internal AVdd LDO*/ - I2CWrite(AIC3204_ADDR, 0x02, 0x01); /* Enable Master Analog Power Control */ - I2CWrite(AIC3204_ADDR, 0x7b, 0x01); /* Set the REF charging time to 40ms */ -// I2CWrite(AIC3204_ADDR, 0x0a, 0x00); /* Set the Input Common Mode to 0.9V and Output Common Mode for Headphone to Input Common Mode */ - I2CWrite(AIC3204_ADDR, 0x0a, 0x33); /* Set the Input Common Mode to 0.9V and Output Common Mode for Headphone to 1.65V */ - - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ - I2CWrite(AIC3204_ADDR, 0x12, 0x87); /* Power up the NADC divider with value 7 */ - I2CWrite(AIC3204_ADDR, 0x13, 0x82); /* Power up the MADC divider with value 2 */ - I2CWrite(AIC3204_ADDR, 0x14, 0x80); /* Program the OSR of ADC to 128 */ - I2CWrite(AIC3204_ADDR, 0x3d, 0x01); /* Select ADC PRB_R1 */ - - I2CWrite(AIC3204_ADDR, 0x00, 0x01); /* Select Page 1 */ - I2CWrite(AIC3204_ADDR, 0x3d, 0x00); /* Select ADC PTM_R4 */ - I2CWrite(AIC3204_ADDR, 0x47, 0x32); /* Set MicPGA startup delay to 3.1ms */ - I2CWrite(AIC3204_ADDR, 0x7b, 0x01); /* Set the REF charging time to 40ms */ - I2CWrite(AIC3204_ADDR, 0x34, 0x10); /* Route IN2L to LEFT_P with 10K input impedance */ - I2CWrite(AIC3204_ADDR, 0x36, 0x10); /* Route IN2R to LEFT_N with 10K input impedance */ - I2CWrite(AIC3204_ADDR, 0x37, 0x04); /* Route IN3R to RIGHT_P with input impedance of 10K */ - I2CWrite(AIC3204_ADDR, 0x39, 0x04); /* Route IN3L to RIGHT_N with impedance of 10K */ - I2CWrite(AIC3204_ADDR, 0x3b, 0); /* Unmute Left MICPGA, Gain selection of 32dB to make channel gain 0dB */ - I2CWrite(AIC3204_ADDR, 0x3c, 0); /* Unmute Right MICPGA, Gain selection of 32dB to make channel gain 0dB */ - - wait_ms(40); - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ - I2CWrite(AIC3204_ADDR, 0x51, 0xc0); /* Power up Left and Right ADC Channels */ - I2CWrite(AIC3204_ADDR, 0x52, 0x00); /* Unmute Left and Right ADC Digital Volume Control */ - - //tlv320aic3204_config_adc_filter(); - //tlv320aic3204_adc_filter_enable(TRUE); + tlv320aic3204_config(conf_data_pll); + tlv320aic3204_config(conf_data_clk); + tlv320aic3204_config(conf_data_routing); + wait_ms(40); + tlv320aic3204_config(conf_data_unmute); } -void tlv320aic3204_select_in3(void) +void tlv320aic3204_select(int channel) { - I2CWrite(AIC3204_ADDR, 0x00, 0x01); /* Select Page 1 */ - I2CWrite(AIC3204_ADDR, 0x37, 0x04); /* Route IN3R to RIGHT_P with input impedance of 10K */ - I2CWrite(AIC3204_ADDR, 0x39, 0x04); /* Route IN3L to RIGHT_N with input impedance of 10K */ - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ + const uint8_t ch3[] = { + 2, 0x00, 0x01, /* Select Page 1 */ + 2, 0x37, 0x04, /* Route IN3R to RIGHT_P with input impedance of 10K */ + 2, 0x39, 0x04, /* Route IN3L to RIGHT_N with input impedance of 10K */ + 0 // sentinel + }; + const uint8_t ch1[] = { + 2, 0x00, 0x01, /* Select Page 1 */ + 2, 0x37, 0x40, /* Route IN1R to RIGHT_P with input impedance of 10K */ + 2, 0x39, 0x10, /* Route IN1L to RIGHT_N with input impedance of 10K */ + 0 // sentinel + }; + tlv320aic3204_config(channel ? ch1 : ch3); } -void tlv320aic3204_select_in1(void) -{ - I2CWrite(AIC3204_ADDR, 0x00, 0x01); /* Select Page 1 */ - I2CWrite(AIC3204_ADDR, 0x37, 0x40); /* Route IN1R to RIGHT_P with input impedance of 10K */ - I2CWrite(AIC3204_ADDR, 0x39, 0x10); /* Route IN1L to RIGHT_N with input impedance of 10K */ - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ -} - -void tlv320aic3204_adc_filter_enable(int enable) -{ - if (enable) - I2CWrite(AIC3204_ADDR, 0x3d, 0x02); /* Select ADC PRB_R2 */ - else - I2CWrite(AIC3204_ADDR, 0x3d, 0x01); /* Select ADC PRB_R1 */ -} - -#if 0 -/* bb, aa = signal.ellip(5, 0.1, 100, (4800.0/24000, 5200.0/24000), 'bandpass') */ -const uint8_t adc_filter_config[] = { - /* len, page, reg, data.... */ - - /* left channel C7 - C31 */ - 92, 8, 36, - /* Pg8 Reg36-127 */ - 0x0b, 0xb3, 0xea, 0x00, - 0xf5, 0xeb, 0x1c, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x63, 0x04, 0xf8, 0x00, - 0x82, 0xf3, 0x20, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0xf8, 0xac, 0x58, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x64, 0x26, 0x9e, 0x00, - 0x83, 0x9c, 0x9a, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0xf5, 0x92, 0x43, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x65, 0xcc, 0x37, 0x00, - 0x82, 0xd1, 0x6e, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0xf7, 0xd5, 0x05, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x67, 0x48, 0x63, 0x00, - 0x81, 0x0a, 0xab, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0xf4, 0x4c, 0x16, 0x00, - 8, 9, 8, - /* Pg9 Reg 8-15 */ - 0x62, 0xdd, 0xc7, 0x00, - 0x81, 0x1e, 0xf9, 0x00, - - /* right channel C39 - C63 */ - 84, 9, 44, - /* Pg9 Reg 44-127 */ - 0x0b, 0xb3, 0xea, 0x00, - 0xf5, 0xeb, 0x1c, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x63, 0x04, 0xf8, 0x00, - 0x82, 0xf3, 0x20, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0xf8, 0xac, 0x58, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x64, 0x26, 0x9e, 0x00, - 0x83, 0x9c, 0x9a, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0xf5, 0x92, 0x43, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x65, 0xcc, 0x37, 0x00, - 0x82, 0xd1, 0x6e, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0xf7, 0xd5, 0x05, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - 0x67, 0x48, 0x63, 0x00, - 0x81, 0x0a, 0xab, 0x00, - 0x0b, 0xb3, 0xea, 0x00, - - 16, 10, 8, - /* Pg10 Reg 8-23 */ - 0x00, 0x00, 0x00, 0x00, - 0xf4, 0x4c, 0x16, 0x00, - 0x62, 0xdd, 0xc7, 0x00, - 0x81, 0x1e, 0xf9, 0x00, - 0 /* sentinel */ -}; -#elif 0 -/* bb, aa = signal.ellip(2, 0.1, 100, (4500.0/24000, 5500.0/24000), 'bandpass') */ -const uint8_t adc_filter_config[] = { - /* len, page, reg, data.... */ - /* left channel C7 - C31 */ - 40, 8, 36, - /* Pg8 Reg36-127 */ - 0x02, 0x65, 0xce, 0x00, - 0x02, 0x65, 0x1b, 0x00, - 0x02, 0x65, 0xce, 0x00, - 0x65, 0x27, 0x96, 0x00, - 0x90, 0x4b, 0xd5, 0x00, - 0x52, 0x46, 0xbb, 0x00, - 0xad, 0xb9, 0x96, 0x00, - 0x52, 0x46, 0xbb, 0x00, - 0x56, 0x5f, 0xd2, 0x00, - 0x94, 0x52, 0x41, 0x00, - /* right channel C39 - C63 */ - 40, 9, 44, - /* Pg9 Reg 44-127 */ - 0x02, 0x65, 0xce, 0x00, - 0x02, 0x65, 0x1b, 0x00, - 0x02, 0x65, 0xce, 0x00, - 0x65, 0x27, 0x96, 0x00, - 0x90, 0x4b, 0xd5, 0x00, - 0x52, 0x46, 0xbb, 0x00, - 0xad, 0xb9, 0x96, 0x00, - 0x52, 0x46, 0xbb, 0x00, - 0x56, 0x5f, 0xd2, 0x00, - 0x94, 0x52, 0x41, 0x00, - 0 /* sentinel */ -}; -#else -/* bb, aa = signal.bessel(2, (4500.0/24000, 5500.0/24000), 'bandpass') */ -const uint8_t adc_filter_config[] = { - /* len, page, reg, data.... */ - /* left channel C7 - C31 */ - 40, 8, 36, - /* Pg8 Reg36-127 */ - 0x02, 0x9b, 0xed, 0x00, - 0x02, 0x9b, 0xed, 0x00, - 0x02, 0x9b, 0xed, 0x00, - 0x5d, 0x91, 0x0f, 0x00, - 0x8e, 0x4b, 0x9a, 0x00, - 0x18, 0x22, 0x1d, 0x00, - 0xe7, 0xdd, 0xe3, 0x00, - 0x18, 0x22, 0x1d, 0x00, - 0x62, 0xd9, 0x9b, 0x00, - 0x8d, 0x2c, 0xda, 0x00, - - /* right channel C39 - C63 */ - 40, 9, 44, - /* Pg9 Reg 44-127 */ - 0x02, 0x9b, 0xed, 0x00, - 0x02, 0x9b, 0xed, 0x00, - 0x02, 0x9b, 0xed, 0x00, - 0x5d, 0x91, 0x0f, 0x00, - 0x8e, 0x4b, 0x9a, 0x00, - 0x18, 0x22, 0x1d, 0x00, - 0xe7, 0xdd, 0xe3, 0x00, - 0x18, 0x22, 0x1d, 0x00, - 0x62, 0xd9, 0x9b, 0x00, - 0x8d, 0x2c, 0xda, 0x00, - 0 /* sentinel */ -}; -#endif - - -void tlv320aic3204_config_adc_filter(void) -{ - const uint8_t *p = adc_filter_config; - - while (*p != 0) { - uint8_t len = *p++; - uint8_t page = *p++; - uint8_t reg = *p++; - I2CWrite(AIC3204_ADDR, 0x00, page); - while (len-- > 0) - I2CWrite(AIC3204_ADDR, reg++, *p++); - } - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* page 0 */ -} - - void tlv320aic3204_set_gain(int lgain, int rgain) { - if (lgain < 0) - lgain = 0; - if (lgain > 95) - lgain = 95; - if (rgain < 0) - rgain = 0; - if (rgain > 95) - rgain = 95; - - I2CWrite(AIC3204_ADDR, 0x00, 0x01); /* Select Page 1 */ - I2CWrite(AIC3204_ADDR, 0x3b, lgain); /* Unmute Left MICPGA, set gain */ - I2CWrite(AIC3204_ADDR, 0x3c, rgain); /* Unmute Right MICPGA, set gain */ - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ -} - -void tlv320aic3204_set_digital_gain(int gain) -{ - if (gain < -24) - gain = -24; - if (gain > 40) - gain = 40; - - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ - I2CWrite(AIC3204_ADDR, 0x53, gain & 0x7f); /* Left ADC Channel Volume */ - I2CWrite(AIC3204_ADDR, 0x54, gain & 0x7f); /* Right ADC Channel Volume */ -} - -void tlv320aic3204_set_volume(int gain) -{ - if (gain > 29) - gain = 29; - else if (gain < -6) - gain = 0x40; - else - gain &= 0x3f; - - I2CWrite(AIC3204_ADDR, 0x00, 0x01); /* Select Page 1 */ - I2CWrite(AIC3204_ADDR, 0x10, gain); /* Unmute Left MICPGA, set gain */ - I2CWrite(AIC3204_ADDR, 0x11, gain); /* Unmute Right MICPGA, set gain */ - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ -} - -void tlv320aic3204_agc_config(tlv320aic3204_agc_config_t *conf) -{ - int ctrl = 0; - if (conf == NULL) { - ctrl = 0; - } else { - ctrl = 0x80 - | ((conf->target_level & 0x7) << 4) - | (conf->gain_hysteresis & 0x3); - } - I2CWrite(AIC3204_ADDR, 0x00, 0x00); /* Select Page 0 */ - I2CWrite(AIC3204_ADDR, 0x56, ctrl); /* Left AGC Control Register */ - I2CWrite(AIC3204_ADDR, 0x5e, ctrl); /* Right AGC Control Register */ - if (ctrl == 0) - return; - - ctrl = ((conf->attack & 0x1f) << 3) | (conf->attack_scale & 0x7); - I2CWrite(AIC3204_ADDR, 0x59, ctrl); /* Left AGC Attack Time */ - I2CWrite(AIC3204_ADDR, 0x61, ctrl); /* Right AGC Attack Time */ - - ctrl = ((conf->decay & 0x1f) << 3) | (conf->decay_scale & 0x7); - I2CWrite(AIC3204_ADDR, 0x5a, ctrl); /* Left AGC Decay Time */ - I2CWrite(AIC3204_ADDR, 0x62, ctrl); /* Right AGC Decay Time */ + uint8_t data[] = { + 2, 0x00, 0x01, /* Select Page 1 */ + 2, 0x3b, lgain, /* Unmute Left MICPGA, set gain */ + 2, 0x3c, rgain, /* Unmute Right MICPGA, set gain */ + 0 // sentinel + }; + tlv320aic3204_config(data); } From 2cb3d7d02ef287eb0e2412a61dc494836d231d9c Mon Sep 17 00:00:00 2001 From: TT Date: Mon, 21 Oct 2019 09:09:02 +0900 Subject: [PATCH 7/7] fix: add missing pyserial into requirements.txt --- python/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/python/requirements.txt b/python/requirements.txt index 9e06290..bc7e1ef 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -2,3 +2,4 @@ matplotlib scipy scikit-rf pillow +pyserial