155 lines
5.6 KiB
C
155 lines
5.6 KiB
C
/*
|
|
* font5x7.c
|
|
*
|
|
* Created: 4/8/2015 11:31:21 AM
|
|
* Author: Baron Williams
|
|
*/
|
|
|
|
#if defined(__K64F__)
|
|
#include <stdio.h>
|
|
#include <ctype.h>
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <stdarg.h>
|
|
#include <core_pins.h>
|
|
#include <usb_serial.h>
|
|
#include <Arduino.h>
|
|
#include "k64f_soc.h"
|
|
#include <../../libraries/include/stdmisc.h>
|
|
#elif defined(__ZPU__)
|
|
#include <stdint.h>
|
|
#include <stdio.h>
|
|
#include "zpu_soc.h"
|
|
#include <stdlib.h>
|
|
#include <ctype.h>
|
|
#include <stdmisc.h>
|
|
#else
|
|
#error "Target CPU not defined, use __ZPU__ or __K64F__"
|
|
#endif
|
|
|
|
#include "fonts.h"
|
|
|
|
#define FONT_CHAR_FIRST 32
|
|
#define FONT_CHAR_LAST 126
|
|
#define FONT_CHARS 95
|
|
#define FONT_WIDTH 5
|
|
#define FONT_HEIGHT 7
|
|
#define FONT_SPACING 1
|
|
|
|
static const uint8_t font5x7data[FONT_CHARS][FONT_WIDTH] ={
|
|
{ 0x00, 0x00, 0x00, 0x00, 0x00, }, // ' ' 32
|
|
{ 0x00, 0x00, 0x5F, 0x00, 0x00, }, // '!' 33
|
|
{ 0x00, 0x03, 0x00, 0x03, 0x00, }, // '"' 34
|
|
{ 0x14, 0x3E, 0x14, 0x3E, 0x14, }, // '#' 35
|
|
{ 0x24, 0x2A, 0x7F, 0x2A, 0x12, }, // '$' 36
|
|
{ 0x43, 0x33, 0x08, 0x66, 0x61, }, // '%' 37
|
|
{ 0x36, 0x49, 0x55, 0x22, 0x50, }, // '&' 38
|
|
{ 0x00, 0x05, 0x03, 0x00, 0x00, }, // ''' 39
|
|
{ 0x00, 0x1C, 0x22, 0x41, 0x00, }, // '(' 40
|
|
{ 0x00, 0x41, 0x22, 0x1C, 0x00, }, // ')' 41
|
|
{ 0x14, 0x08, 0x3E, 0x08, 0x14, }, // '*' 42
|
|
{ 0x08, 0x08, 0x3E, 0x08, 0x08, }, // '+' 43
|
|
{ 0x00, 0x50, 0x30, 0x00, 0x00, }, // ',' 44
|
|
{ 0x08, 0x08, 0x08, 0x08, 0x08, }, // '-' 45
|
|
{ 0x00, 0x60, 0x60, 0x00, 0x00, }, // '.' 46
|
|
{ 0x20, 0x10, 0x08, 0x04, 0x02, }, // '/' 47
|
|
{ 0x3E, 0x51, 0x49, 0x45, 0x3E, }, // '0' 48
|
|
{ 0x04, 0x02, 0x7F, 0x00, 0x00, }, // '1' 49
|
|
{ 0x42, 0x61, 0x51, 0x49, 0x46, }, // '2' 50
|
|
{ 0x22, 0x41, 0x49, 0x49, 0x36, }, // '3' 51
|
|
{ 0x18, 0x14, 0x12, 0x7F, 0x10, }, // '4' 52
|
|
{ 0x27, 0x45, 0x45, 0x45, 0x39, }, // '5' 53
|
|
{ 0x3E, 0x49, 0x49, 0x49, 0x32, }, // '6' 54
|
|
{ 0x01, 0x01, 0x71, 0x09, 0x07, }, // '7' 55
|
|
{ 0x36, 0x49, 0x49, 0x49, 0x36, }, // '8' 56
|
|
{ 0x26, 0x49, 0x49, 0x49, 0x3E, }, // '9' 57
|
|
{ 0x00, 0x36, 0x36, 0x00, 0x00, }, // ':' 58
|
|
{ 0x00, 0x56, 0x36, 0x00, 0x00, }, // ';' 59
|
|
{ 0x08, 0x14, 0x22, 0x41, 0x00, }, // '<' 60
|
|
{ 0x14, 0x14, 0x14, 0x14, 0x14, }, // '=' 61
|
|
{ 0x00, 0x41, 0x22, 0x14, 0x08, }, // '>' 62
|
|
{ 0x02, 0x01, 0x51, 0x09, 0x06, }, // '?' 63
|
|
{ 0x3E, 0x41, 0x59, 0x55, 0x5E, }, // '@' 64
|
|
{ 0x7E, 0x09, 0x09, 0x09, 0x7E, }, // 'A' 65
|
|
{ 0x7F, 0x49, 0x49, 0x49, 0x36, }, // 'B' 66
|
|
{ 0x3E, 0x41, 0x41, 0x41, 0x22, }, // 'C' 67
|
|
{ 0x7F, 0x41, 0x41, 0x41, 0x3E, }, // 'D' 68
|
|
{ 0x7F, 0x49, 0x49, 0x49, 0x41, }, // 'E' 69
|
|
{ 0x7F, 0x09, 0x09, 0x09, 0x01, }, // 'F' 70
|
|
{ 0x3E, 0x41, 0x41, 0x49, 0x3A, }, // 'G' 71
|
|
{ 0x7F, 0x08, 0x08, 0x08, 0x7F, }, // 'H' 72
|
|
{ 0x00, 0x41, 0x7F, 0x41, 0x00, }, // 'I' 73
|
|
{ 0x30, 0x40, 0x40, 0x40, 0x3F, }, // 'J' 74
|
|
{ 0x7F, 0x08, 0x14, 0x22, 0x41, }, // 'K' 75
|
|
{ 0x7F, 0x40, 0x40, 0x40, 0x40, }, // 'L' 76
|
|
{ 0x7F, 0x02, 0x0C, 0x02, 0x7F, }, // 'M' 77
|
|
{ 0x7F, 0x02, 0x04, 0x08, 0x7F, }, // 'N' 78
|
|
{ 0x3E, 0x41, 0x41, 0x41, 0x3E, }, // 'O' 79
|
|
{ 0x7F, 0x09, 0x09, 0x09, 0x06, }, // 'P' 80
|
|
{ 0x1E, 0x21, 0x21, 0x21, 0x5E, }, // 'Q' 81
|
|
{ 0x7F, 0x09, 0x09, 0x09, 0x76, }, // 'R' 82
|
|
{ 0x26, 0x49, 0x49, 0x49, 0x32, }, // 'S' 83
|
|
{ 0x01, 0x01, 0x7F, 0x01, 0x01, }, // 'T' 84
|
|
{ 0x3F, 0x40, 0x40, 0x40, 0x3F, }, // 'U' 85
|
|
{ 0x1F, 0x20, 0x40, 0x20, 0x1F, }, // 'V' 86
|
|
{ 0x7F, 0x20, 0x10, 0x20, 0x7F, }, // 'W' 87
|
|
{ 0x41, 0x22, 0x1C, 0x22, 0x41, }, // 'X' 88
|
|
{ 0x07, 0x08, 0x70, 0x08, 0x07, }, // 'Y' 89
|
|
{ 0x61, 0x51, 0x49, 0x45, 0x43, }, // 'Z' 90
|
|
{ 0x00, 0x7F, 0x41, 0x00, 0x00, }, // '[' 91
|
|
{ 0x02, 0x04, 0x08, 0x10, 0x20, }, // '\' 92
|
|
{ 0x00, 0x00, 0x41, 0x7F, 0x00, }, // ']' 93
|
|
{ 0x04, 0x02, 0x01, 0x02, 0x04, }, // '^' 94
|
|
{ 0x40, 0x40, 0x40, 0x40, 0x40, }, // '_' 95
|
|
{ 0x00, 0x01, 0x02, 0x04, 0x00, }, // '`' 96
|
|
{ 0x20, 0x54, 0x54, 0x54, 0x78, }, // 'a' 97
|
|
{ 0x7F, 0x44, 0x44, 0x44, 0x38, }, // 'b' 98
|
|
{ 0x38, 0x44, 0x44, 0x44, 0x44, }, // 'c' 99
|
|
{ 0x38, 0x44, 0x44, 0x44, 0x7F, }, // 'd' 100
|
|
{ 0x38, 0x54, 0x54, 0x54, 0x18, }, // 'e' 101
|
|
{ 0x04, 0x04, 0x7E, 0x05, 0x05, }, // 'f' 102
|
|
{ 0x08, 0x54, 0x54, 0x54, 0x3C, }, // 'g' 103
|
|
{ 0x7F, 0x08, 0x04, 0x04, 0x78, }, // 'h' 104
|
|
{ 0x00, 0x44, 0x7D, 0x40, 0x00, }, // 'i' 105
|
|
{ 0x20, 0x40, 0x44, 0x3D, 0x00, }, // 'j' 106
|
|
{ 0x7F, 0x10, 0x28, 0x44, 0x00, }, // 'k' 107
|
|
{ 0x00, 0x41, 0x7F, 0x40, 0x00, }, // 'l' 108
|
|
{ 0x7C, 0x04, 0x78, 0x04, 0x78, }, // 'm' 109
|
|
{ 0x7C, 0x08, 0x04, 0x04, 0x78, }, // 'n' 110
|
|
{ 0x38, 0x44, 0x44, 0x44, 0x38, }, // 'o' 111
|
|
{ 0x7C, 0x14, 0x14, 0x14, 0x08, }, // 'p' 112
|
|
{ 0x08, 0x14, 0x14, 0x14, 0x7C, }, // 'q' 113
|
|
{ 0x00, 0x7C, 0x08, 0x04, 0x04, }, // 'r' 114
|
|
{ 0x48, 0x54, 0x54, 0x54, 0x20, }, // 's' 115
|
|
{ 0x04, 0x04, 0x3F, 0x44, 0x44, }, // 't' 116
|
|
{ 0x3C, 0x40, 0x40, 0x20, 0x7C, }, // 'u' 117
|
|
{ 0x1C, 0x20, 0x40, 0x20, 0x1C, }, // 'v' 118
|
|
{ 0x3C, 0x40, 0x30, 0x40, 0x3C, }, // 'w' 119
|
|
{ 0x44, 0x28, 0x10, 0x28, 0x44, }, // 'x' 120
|
|
{ 0x0C, 0x50, 0x50, 0x50, 0x3C, }, // 'y' 121
|
|
{ 0x44, 0x64, 0x54, 0x4C, 0x44, }, // 'z' 122
|
|
{ 0x00, 0x08, 0x36, 0x41, 0x41, }, // '{' 123
|
|
{ 0x00, 0x00, 0x7F, 0x00, 0x00, }, // '|' 124
|
|
{ 0x41, 0x41, 0x36, 0x08, 0x00, }, // '}' 125
|
|
{ 0x02, 0x01, 0x02, 0x04, 0x02 }, // '~' 126
|
|
};
|
|
|
|
/*
|
|
* Font Size: 5x7 (+space=6x7)
|
|
* Spacing: requires vertical spacing
|
|
* Characters: 95 (ASCII 32-126).
|
|
* Bit format: vertical
|
|
* Memory: 475 bytes (95x5)
|
|
*/
|
|
const fontStruct font5x7 = {
|
|
(byte *) font5x7data,
|
|
FONT_CHARS,
|
|
FONT_CHAR_FIRST,
|
|
FONT_CHAR_LAST,
|
|
FONT_WIDTH,
|
|
FONT_HEIGHT,
|
|
FONT_SPACING,
|
|
true
|
|
};
|