Use the MAXREFDES99 to display the time from a DS3231 RTC. Requires the DS3231 RTC, or a MAXREFDES72 which has the rtc on it.

Dependencies:   MAX7219 ds3231 mbed

Committer:
j3
Date:
Tue May 31 22:32:53 2016 +0000
Revision:
1:ce6a3accca77
Parent:
0:52f9ecc09233
Updated libraries

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j3 0:52f9ecc09233 1 /******************************************************************//**
j3 0:52f9ecc09233 2 * @file maxrefdes99.cpp
j3 0:52f9ecc09233 3 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
j3 0:52f9ecc09233 4 *
j3 0:52f9ecc09233 5 * Permission is hereby granted, free of charge, to any person obtaining a
j3 0:52f9ecc09233 6 * copy of this software and associated documentation files (the "Software"),
j3 0:52f9ecc09233 7 * to deal in the Software without restriction, including without limitation
j3 0:52f9ecc09233 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
j3 0:52f9ecc09233 9 * and/or sell copies of the Software, and to permit persons to whom the
j3 0:52f9ecc09233 10 * Software is furnished to do so, subject to the following conditions:
j3 0:52f9ecc09233 11 *
j3 0:52f9ecc09233 12 * The above copyright notice and this permission notice shall be included
j3 0:52f9ecc09233 13 * in all copies or substantial portions of the Software.
j3 0:52f9ecc09233 14 *
j3 0:52f9ecc09233 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
j3 0:52f9ecc09233 16 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
j3 0:52f9ecc09233 17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
j3 0:52f9ecc09233 18 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
j3 0:52f9ecc09233 19 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
j3 0:52f9ecc09233 20 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
j3 0:52f9ecc09233 21 * OTHER DEALINGS IN THE SOFTWARE.
j3 0:52f9ecc09233 22 *
j3 0:52f9ecc09233 23 * Except as contained in this notice, the name of Maxim Integrated
j3 0:52f9ecc09233 24 * Products, Inc. shall not be used except as stated in the Maxim Integrated
j3 0:52f9ecc09233 25 * Products, Inc. Branding Policy.
j3 0:52f9ecc09233 26 *
j3 0:52f9ecc09233 27 * The mere transfer of this software does not imply any licenses
j3 0:52f9ecc09233 28 * of trade secrets, proprietary technology, copyrights, patents,
j3 0:52f9ecc09233 29 * trademarks, maskwork rights, or any other form of intellectual
j3 0:52f9ecc09233 30 * property whatsoever. Maxim Integrated Products, Inc. retains all
j3 0:52f9ecc09233 31 * ownership rights.
j3 0:52f9ecc09233 32 **********************************************************************/
j3 0:52f9ecc09233 33
j3 0:52f9ecc09233 34
j3 0:52f9ecc09233 35 #include "maxrefdes99.h"
j3 0:52f9ecc09233 36
j3 0:52f9ecc09233 37
j3 0:52f9ecc09233 38 //5x7 character bit map
j3 0:52f9ecc09233 39 static const uint8_t font_5x7[95][6] = {
j3 1:ce6a3accca77 40 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //SPACE
j3 1:ce6a3accca77 41 {0x00, 0x00, 0x00, 0xf2, 0x00, 0x00}, //!
j3 1:ce6a3accca77 42 {0x00, 0x00, 0xe0, 0x00, 0xe0, 0x00}, //"
j3 1:ce6a3accca77 43 {0x00, 0x28, 0xfe, 0x28, 0xfe, 0x28}, //#
j3 1:ce6a3accca77 44 {0x00, 0x24, 0x54, 0xfe, 0x54, 0x48}, //$
j3 1:ce6a3accca77 45 {0x00, 0xc4, 0xc8, 0x10, 0x26, 0x46}, //%
j3 1:ce6a3accca77 46 {0x00, 0x6c, 0x92, 0xaa, 0x44, 0x0a}, //&
j3 1:ce6a3accca77 47 {0x00, 0x00, 0xa0, 0xc0, 0x00, 0x00}, //'
j3 1:ce6a3accca77 48 {0x00, 0x00, 0x38, 0x44, 0x82, 0x00}, //(
j3 1:ce6a3accca77 49 {0x00, 0x00, 0x82, 0x44, 0x38, 0x00}, //)
j3 1:ce6a3accca77 50 {0x00, 0x28, 0x10, 0x7c, 0x10, 0x28}, //*
j3 1:ce6a3accca77 51 {0x00, 0x10, 0x10, 0x7c, 0x10, 0x10}, //+
j3 1:ce6a3accca77 52 {0x00, 0x00, 0x0a, 0x0c, 0x00, 0x00}, //,
j3 1:ce6a3accca77 53 {0x00, 0x10, 0x10, 0x10, 0x10, 0x10}, //-
j3 1:ce6a3accca77 54 {0x00, 0x00, 0x06, 0x06, 0x00, 0x00}, //.
j3 1:ce6a3accca77 55 {0x00, 0x04, 0x08, 0x10, 0x20, 0x40}, ///
j3 1:ce6a3accca77 56 {0x00, 0x7c, 0x8a, 0x92, 0xa2, 0x7c}, //0
j3 1:ce6a3accca77 57 {0x00, 0x00, 0x42, 0xfe, 0x02, 0x00}, //1
j3 1:ce6a3accca77 58 {0x00, 0x42, 0x86, 0x8a, 0x92, 0x62}, //2
j3 1:ce6a3accca77 59 {0x00, 0x84, 0x82, 0xa2, 0xd2, 0x8c}, //3
j3 1:ce6a3accca77 60 {0x00, 0x18, 0x28, 0x48, 0xfe, 0x08}, //4
j3 1:ce6a3accca77 61 {0x00, 0xe4, 0xa2, 0xa2, 0xa2, 0x9c}, //5
j3 1:ce6a3accca77 62 {0x00, 0x3c, 0x52, 0x92, 0x92, 0x0c}, //6
j3 1:ce6a3accca77 63 {0x00, 0x80, 0x8e, 0x90, 0xa0, 0xc0}, //7
j3 1:ce6a3accca77 64 {0x00, 0x6c, 0x92, 0x92, 0x92, 0x6c}, //8
j3 1:ce6a3accca77 65 {0x00, 0x60, 0x92, 0x92, 0x94, 0x78}, //9
j3 1:ce6a3accca77 66 {0x00, 0x6c, 0x6c, 0x00, 0x00, 0x00}, //:
j3 1:ce6a3accca77 67 {0x00, 0x6a, 0x6c, 0x00, 0x00, 0x00}, //;
j3 1:ce6a3accca77 68 {0x00, 0x10, 0x28, 0x44, 0x82, 0x00}, //<
j3 1:ce6a3accca77 69 {0x00, 0x28, 0x28, 0x28, 0x28, 0x28}, //=
j3 1:ce6a3accca77 70 {0x00, 0x00, 0x82, 0x44, 0x28, 0x10}, //>
j3 1:ce6a3accca77 71 {0x00, 0x40, 0x80, 0x8a, 0x90, 0x60}, //?
j3 1:ce6a3accca77 72 {0x00, 0x0c, 0x92, 0x9e, 0x82, 0x7c}, //@
j3 1:ce6a3accca77 73 {0x00, 0x7e, 0x88, 0x88, 0x88, 0x7e}, //A
j3 1:ce6a3accca77 74 {0x00, 0xfe, 0x92, 0x92, 0x92, 0x6c}, //B
j3 1:ce6a3accca77 75 {0x00, 0x7c, 0x82, 0x82, 0x82, 0x44}, //C
j3 1:ce6a3accca77 76 {0x00, 0xfe, 0x82, 0x82, 0x44, 0x38}, //D
j3 1:ce6a3accca77 77 {0x00, 0xfe, 0x92, 0x92, 0x92, 0x82}, //E
j3 1:ce6a3accca77 78 {0x00, 0xfe, 0x90, 0x90, 0x90, 0x80}, //F
j3 1:ce6a3accca77 79 {0x00, 0x7c, 0x82, 0x92, 0x92, 0x5e}, //G
j3 1:ce6a3accca77 80 {0x00, 0xfe, 0x10, 0x10, 0x10, 0xfe}, //H
j3 1:ce6a3accca77 81 {0x00, 0x00, 0x82, 0xfe, 0x82, 0x00}, //I
j3 1:ce6a3accca77 82 {0x00, 0x04, 0x02, 0x82, 0xfc, 0x80}, //J
j3 1:ce6a3accca77 83 {0x00, 0xfe, 0x10, 0x28, 0x44, 0x82}, //K
j3 1:ce6a3accca77 84 {0x00, 0xfe, 0x02, 0x02, 0x02, 0x02}, //L
j3 1:ce6a3accca77 85 {0x00, 0xfe, 0x40, 0x30, 0x40, 0xfe}, //M
j3 1:ce6a3accca77 86 {0x00, 0xfe, 0x20, 0x10, 0x08, 0xfe}, //N
j3 1:ce6a3accca77 87 {0x00, 0x7c, 0x82, 0x82, 0x82, 0x7c}, //O
j3 1:ce6a3accca77 88 {0x00, 0xfe, 0x90, 0x90, 0x90, 0x60}, //P
j3 1:ce6a3accca77 89 {0x00, 0x7c, 0x82, 0x8a, 0x84, 0x7a}, //Q
j3 1:ce6a3accca77 90 {0x00, 0xfe, 0x90, 0x98, 0x94, 0x62}, //R
j3 1:ce6a3accca77 91 {0x00, 0x62, 0x92, 0x92, 0x92, 0x8c}, //S
j3 1:ce6a3accca77 92 {0x00, 0x80, 0x80, 0xfe, 0x80, 0x80}, //T
j3 1:ce6a3accca77 93 {0x00, 0xfc, 0x02, 0x02, 0x02, 0xfc}, //U
j3 1:ce6a3accca77 94 {0x00, 0xf8, 0x04, 0x02, 0x04, 0xf8}, //V
j3 1:ce6a3accca77 95 {0x00, 0xfc, 0x02, 0x0c, 0x02, 0xfc}, //W
j3 1:ce6a3accca77 96 {0x00, 0xc6, 0x28, 0x10, 0x28, 0xc6}, //X
j3 1:ce6a3accca77 97 {0x00, 0xe0, 0x10, 0x0e, 0x10, 0xe0}, //Y
j3 1:ce6a3accca77 98 {0x00, 0x86, 0x8a, 0x92, 0xa2, 0xc2}, //Z
j3 1:ce6a3accca77 99 {0x00, 0x00, 0xfe, 0x82, 0x82, 0x00}, //[
j3 1:ce6a3accca77 100 {0x00, 0x40, 0x20, 0x10, 0x08, 0x04}, //backslash
j3 1:ce6a3accca77 101 {0x00, 0x00, 0x82, 0x82, 0xfe, 0x00}, //]
j3 1:ce6a3accca77 102 {0x00, 0x20, 0x40, 0x80, 0x40, 0x20}, //^
j3 1:ce6a3accca77 103 {0x00, 0x02, 0x02, 0x02, 0x02, 0x02}, //_
j3 1:ce6a3accca77 104 {0x00, 0x00, 0x80, 0x40, 0x20, 0x00}, //`
j3 1:ce6a3accca77 105 {0x00, 0x04, 0x2a, 0x2a, 0x2a, 0x1e}, //a
j3 1:ce6a3accca77 106 {0x00, 0xfe, 0x0a, 0x12, 0x12, 0x0c}, //b
j3 1:ce6a3accca77 107 {0x00, 0x1c, 0x22, 0x22, 0x22, 0x04}, //c
j3 1:ce6a3accca77 108 {0x00, 0x1c, 0x22, 0x22, 0x12, 0xfe}, //d
j3 1:ce6a3accca77 109 {0x00, 0x1c, 0x2a, 0x2a, 0x2a, 0x18}, //e
j3 1:ce6a3accca77 110 {0x00, 0x10, 0x7e, 0x90, 0x80, 0x40}, //f
j3 1:ce6a3accca77 111 {0x00, 0x30, 0x4a, 0x4a, 0x4a, 0x7c}, //g
j3 1:ce6a3accca77 112 {0x00, 0xfe, 0x10, 0x20, 0x20, 0x1e}, //h
j3 1:ce6a3accca77 113 {0x00, 0x00, 0x22, 0xbe, 0x02, 0x00}, //i
j3 1:ce6a3accca77 114 {0x00, 0x04, 0x02, 0x22, 0xbc, 0x00}, //j
j3 1:ce6a3accca77 115 {0x00, 0xfe, 0x08, 0x14, 0x22, 0x00}, //k
j3 1:ce6a3accca77 116 {0x00, 0x00, 0x82, 0xfe, 0x02, 0x00}, //l
j3 1:ce6a3accca77 117 {0x00, 0x1e, 0x20, 0x1a, 0x22, 0x1e}, //m
j3 1:ce6a3accca77 118 {0x00, 0x3e, 0x10, 0x20, 0x20, 0x1e}, //n
j3 1:ce6a3accca77 119 {0x00, 0x1c, 0x22, 0x22, 0x22, 0x1c}, //o
j3 1:ce6a3accca77 120 {0x00, 0x3e, 0x28, 0x28, 0x28, 0x10}, //p
j3 1:ce6a3accca77 121 {0x00, 0x10, 0x28, 0x28, 0x18, 0x3e}, //q
j3 1:ce6a3accca77 122 {0x00, 0x3e, 0x10, 0x20, 0x20, 0x10}, //r
j3 1:ce6a3accca77 123 {0x00, 0x12, 0x2a, 0x2a, 0x2a, 0x04}, //s
j3 1:ce6a3accca77 124 {0x00, 0x20, 0xfc, 0x22, 0x02, 0x04}, //t
j3 1:ce6a3accca77 125 {0x00, 0x3c, 0x02, 0x02, 0x04, 0x3e}, //u
j3 1:ce6a3accca77 126 {0x00, 0x38, 0x04, 0x02, 0x04, 0x38}, //v
j3 1:ce6a3accca77 127 {0x00, 0x3c, 0x02, 0x0c, 0x02, 0x3c}, //w
j3 1:ce6a3accca77 128 {0x00, 0x22, 0x14, 0x08, 0x14, 0x22}, //x
j3 1:ce6a3accca77 129 {0x00, 0x30, 0x0a, 0x0a, 0x0a, 0x3c}, //y
j3 1:ce6a3accca77 130 {0x00, 0x22, 0x26, 0x2a, 0x32, 0x22}, //z
j3 1:ce6a3accca77 131 {0x00, 0x00, 0x10, 0x6c, 0x82, 0x00}, //{
j3 1:ce6a3accca77 132 {0x00, 0x00, 0x00, 0xfe, 0x00, 0x00}, //|
j3 1:ce6a3accca77 133 {0x00, 0x00, 0x82, 0x6c, 0x10, 0x00}, //}
j3 1:ce6a3accca77 134 {0x00, 0x30, 0x40, 0x30, 0x08, 0x30} //~
j3 0:52f9ecc09233 135 };
j3 0:52f9ecc09233 136
j3 0:52f9ecc09233 137
j3 1:ce6a3accca77 138 /*******************************************************************************
j3 1:ce6a3accca77 139 * 16*16 character bit map for Aerial bold fonts
j3 1:ce6a3accca77 140 * These font data taken from the rinkydinkelectronic.com
j3 1:ce6a3accca77 141 * All fonts are considered Public Domain. This means that
j3 1:ce6a3accca77 142 * you are free to use them as you see fit in any project,
j3 1:ce6a3accca77 143 * commercial or not.
j3 1:ce6a3accca77 144 * Important note: Commercial projects will still need a
j3 1:ce6a3accca77 145 * commercial license for any libraries used
j3 1:ce6a3accca77 146 *********************************************************************************/
j3 1:ce6a3accca77 147
j3 1:ce6a3accca77 148 static const uint8_t Aerial_bold_font_16x16[95][32] = {
j3 1:ce6a3accca77 149
j3 1:ce6a3accca77 150 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 151 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 152 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 153 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // SPACE
j3 1:ce6a3accca77 154
j3 1:ce6a3accca77 155 {0x0,0x0,0x0,0x0,0x0,0x0,0x3F,0x3F,
j3 1:ce6a3accca77 156 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 157 0x0,0x0,0x0,0x0,0x0,0x0,0xEC,0xEC,
j3 1:ce6a3accca77 158 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // !
j3 1:ce6a3accca77 159
j3 1:ce6a3accca77 160 {0x0,0x0,0x0,0x0,0x0,0x3C,0x3C,0x0,
j3 1:ce6a3accca77 161 0x0,0x3C,0x3C,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 162 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 163 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //"
j3 1:ce6a3accca77 164
j3 1:ce6a3accca77 165 {0x0,0x0,0x6,0x6,0x6,0xF,0x3F,0x36,
j3 1:ce6a3accca77 166 0xF,0x3F,0x36,0x6,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 167 0x0,0x0,0x60,0x6C,0xFC,0xF0,0x6C,0xFC,
j3 1:ce6a3accca77 168 0xF0,0x60,0x60,0x60,0x0,0x0,0x0,0x0},// #
j3 1:ce6a3accca77 169
j3 1:ce6a3accca77 170 {0x0,0x0,0x0,0x0,0xE,0x1F,0x33,0x7F,
j3 1:ce6a3accca77 171 0x31,0x18,0x8,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 172 0x0,0x0,0x0,0x0,0x30,0x38,0x8C,0xFE,
j3 1:ce6a3accca77 173 0xCC,0xF8,0x70,0x0,0x0,0x0,0x0,0x0}, //$
j3 1:ce6a3accca77 174
j3 1:ce6a3accca77 175 {0x0,0x1E,0x3F,0x21,0x21,0x3F,0x1E,0x0,
j3 1:ce6a3accca77 176 0x3,0x7,0x1C,0x38,0x20,0x0,0x0,0x0,
j3 1:ce6a3accca77 177 0x0,0x0,0x0,0x0,0x4,0xC,0x38,0xF0,
j3 1:ce6a3accca77 178 0xC0,0x0,0x78,0xFC,0x84,0x84,0xFC,0x78},//%
j3 1:ce6a3accca77 179
j3 1:ce6a3accca77 180 {0x0,0x0,0x0,0x0,0x1C,0x3F,0x33,0x33,
j3 1:ce6a3accca77 181 0x33,0x3E,0x1C,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 182 0x0,0x0,0x0,0x70,0xF8,0x8C,0xC,0xCC,
j3 1:ce6a3accca77 183 0xEC,0x78,0x38,0xF8,0x5C,0x8,0x0,0x0},//&
j3 1:ce6a3accca77 184
j3 1:ce6a3accca77 185 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3C,
j3 1:ce6a3accca77 186 0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 187 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 188 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//'
j3 1:ce6a3accca77 189
j3 1:ce6a3accca77 190 {0x0,0x0,0x0,0x0,0x0,0xF,0x3F,0x70,
j3 1:ce6a3accca77 191 0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 192 0x0,0x0,0x0,0x0,0x0,0xE0,0xF8,0x1C,
j3 1:ce6a3accca77 193 0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//(
j3 1:ce6a3accca77 194
j3 1:ce6a3accca77 195 {0x0,0x0,0x0,0x0,0x0,0x40,0x70,0x3F,
j3 1:ce6a3accca77 196 0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 197 0x0,0x0,0x0,0x0,0x0,0x4,0x1C,0xF8,
j3 1:ce6a3accca77 198 0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //}
j3 1:ce6a3accca77 199
j3 1:ce6a3accca77 200 {0x0,0x0,0x3,0x3,0x1,0x1,0xF,0xF,
j3 1:ce6a3accca77 201 0xF,0x1,0x1,0x3,0x3,0x0,0x0,0x0,
j3 1:ce6a3accca77 202 0x0,0x0,0x0,0x10,0x30,0xF8,0xE0,0xC0,
j3 1:ce6a3accca77 203 0xE0,0xF8,0x30,0x10,0x0,0x0,0x0,0x0},//*
j3 1:ce6a3accca77 204
j3 1:ce6a3accca77 205 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 206 0x7,0x7,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 207 0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,0xC0,
j3 1:ce6a3accca77 208 0xF8,0xF8,0xC0,0xC0,0xC0,0x0,0x0,0x0},//+
j3 1:ce6a3accca77 209
j3 1:ce6a3accca77 210 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 211 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 212 0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x3C,
j3 1:ce6a3accca77 213 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //,
j3 1:ce6a3accca77 214
j3 1:ce6a3accca77 215 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 216 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 217 0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,
j3 1:ce6a3accca77 218 0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0,0x0},// -
j3 1:ce6a3accca77 219
j3 1:ce6a3accca77 220 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 221 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 222 0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18,
j3 1:ce6a3accca77 223 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // .
j3 1:ce6a3accca77 224
j3 1:ce6a3accca77 225 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 226 0xF,0x3F,0x30,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 227 0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xFC,
j3 1:ce6a3accca77 228 0xF0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // /
j3 1:ce6a3accca77 229
j3 1:ce6a3accca77 230 {0x0,0x0,0x0,0x0,0xF,0x1F,0x38,0x30,
j3 1:ce6a3accca77 231 0x30,0x38,0x1F,0xF,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 232 0x0,0x0,0x0,0x0,0xF0,0xF8,0x1C,0xC,
j3 1:ce6a3accca77 233 0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // 0
j3 1:ce6a3accca77 234
j3 1:ce6a3accca77 235 {0x0,0x0,0x0,0x0,0x6,0xC,0x18,0x3F,
j3 1:ce6a3accca77 236 0x3F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 237 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
j3 1:ce6a3accca77 238 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // 1
j3 1:ce6a3accca77 239
j3 1:ce6a3accca77 240 {0x0,0x0,0x0,0x0,0xC,0x1C,0x38,0x30,
j3 1:ce6a3accca77 241 0x30,0x31,0x1F,0xE,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 242 0x0,0x0,0x0,0x0,0xC,0x1C,0x3C,0x6C,
j3 1:ce6a3accca77 243 0xEC,0xCC,0x8C,0xC,0x0,0x0,0x0,0x0},// 2
j3 1:ce6a3accca77 244
j3 1:ce6a3accca77 245 {0x0,0x0,0x0,0x0,0x8,0x18,0x38,0x33,
j3 1:ce6a3accca77 246 0x33,0x33,0x3F,0x1C,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 247 0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0xC,
j3 1:ce6a3accca77 248 0xC,0x9C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // 3
j3 1:ce6a3accca77 249
j3 1:ce6a3accca77 250 {0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x7,
j3 1:ce6a3accca77 251 0x1C,0x3F,0x3F,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 252 0x0,0x0,0x0,0x0,0x70,0xF0,0xB0,0x30,
j3 1:ce6a3accca77 253 0x30,0xFC,0xFC,0x30,0x0,0x0,0x0,0x0},//4
j3 1:ce6a3accca77 254
j3 1:ce6a3accca77 255 {0x0,0x0,0x0,0x0,0x7,0x3F,0x3B,0x33,
j3 1:ce6a3accca77 256 0x33,0x33,0x31,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 257 0x0,0x0,0x0,0x0,0xB0,0xB8,0x1C,0xC,
j3 1:ce6a3accca77 258 0xC,0x9C,0xF8,0xF0,0x0,0x0,0x0,0x0}, //5
j3 1:ce6a3accca77 259
j3 1:ce6a3accca77 260 {0x0,0x0,0x0,0x0,0x7,0x1F,0x39,0x33,
j3 1:ce6a3accca77 261 0x33,0x33,0x39,0x18,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 262 0x0,0x0,0x0,0x0,0xE0,0xF8,0x9C,0xC,
j3 1:ce6a3accca77 263 0xC,0x8C,0xF8,0xF0,0x0,0x0,0x0,0x0}, //6
j3 1:ce6a3accca77 264
j3 1:ce6a3accca77 265 {0x0,0x0,0x0,0x0,0x30,0x30,0x30,0x31,
j3 1:ce6a3accca77 266 0x37,0x3E,0x38,0x30,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 267 0x0,0x0,0x0,0x0,0x0,0x0,0x3C,0xFC,
j3 1:ce6a3accca77 268 0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // 7
j3 1:ce6a3accca77 269
j3 1:ce6a3accca77 270 {0x0,0x0,0x0,0x0,0xE,0x1F,0x31,0x31,
j3 1:ce6a3accca77 271 0x31,0x31,0x1F,0xE,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 272 0x0,0x0,0x0,0x0,0x70,0xF8,0x8C,0x8C,
j3 1:ce6a3accca77 273 0x8C,0x8C,0xF8,0x70,0x0,0x0,0x0,0x0}, //8
j3 1:ce6a3accca77 274
j3 1:ce6a3accca77 275 {0x0,0x0,0x0,0x0,0xF,0x1F,0x31,0x30,
j3 1:ce6a3accca77 276 0x30,0x39,0x1F,0x7,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 277 0x0,0x0,0x0,0x0,0x18,0x9C,0xCC,0xCC,
j3 1:ce6a3accca77 278 0xCC,0x9C,0xF8,0xE0,0x0,0x0,0x0,0x0}, //9
j3 1:ce6a3accca77 279
j3 1:ce6a3accca77 280 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,
j3 1:ce6a3accca77 281 0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 282 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,
j3 1:ce6a3accca77 283 0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // :
j3 1:ce6a3accca77 284
j3 1:ce6a3accca77 285 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,
j3 1:ce6a3accca77 286 0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 287 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32,
j3 1:ce6a3accca77 288 0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ;
j3 1:ce6a3accca77 289
j3 1:ce6a3accca77 290 {0x0,0x0,0x0,0x0,0x1,0x1,0x3,0x3,
j3 1:ce6a3accca77 291 0x6,0x6,0xC,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 292 0x0,0x0,0x0,0x80,0xC0,0xC0,0x60,0x60,
j3 1:ce6a3accca77 293 0x30,0x30,0x18,0x0,0x0,0x0,0x0,0x0}, // <
j3 1:ce6a3accca77 294
j3 1:ce6a3accca77 295 {0x0,0x0,0x0,0xC,0xC,0xC,0xC,0xC,
j3 1:ce6a3accca77 296 0xC,0xC,0xC,0xC,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 297 0x0,0x0,0x0,0xC0,0xC0,0xC0,0xC0,0xC0,
j3 1:ce6a3accca77 298 0xC0,0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0}, // =
j3 1:ce6a3accca77 299
j3 1:ce6a3accca77 300 {0x0,0x0,0x0,0x0,0xC,0x6,0x6,0x3,
j3 1:ce6a3accca77 301 0x3,0x1,0x1,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 302 0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x60,
j3 1:ce6a3accca77 303 0x60,0xC0,0xC0,0x80,0x0,0x0,0x0,0x0}, // >
j3 1:ce6a3accca77 304
j3 1:ce6a3accca77 305 {0x0,0x0,0x0,0x0,0xC,0x1C,0x38,0x30,
j3 1:ce6a3accca77 306 0x31,0x33,0x1F,0xE,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 307 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xEC,
j3 1:ce6a3accca77 308 0xEC,0x80,0x0,0x0,0x0,0x0,0x0,0x0}, // ?
j3 1:ce6a3accca77 309
j3 1:ce6a3accca77 310 {0x0,0x0,0x7,0x18,0x27,0x6F,0x58,0x58,
j3 1:ce6a3accca77 311 0x4F,0x5F,0x38,0x30,0x1F,0x0,0x0,0x0,
j3 1:ce6a3accca77 312 0x0,0x0,0xC0,0x20,0x90,0xC8,0xC8,0x88,
j3 1:ce6a3accca77 313 0xC8,0xC8,0x48,0x90,0x20,0x0,0x0,0x0}, //@
j3 1:ce6a3accca77 314
j3 1:ce6a3accca77 315 {0x0,0x0,0x0,0x0,0x1,0xF,0x3E,0x30,
j3 1:ce6a3accca77 316 0x3E,0xF,0x1,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 317 0x0,0x0,0x4,0x3C,0xF8,0xE0,0x60,0x60,
j3 1:ce6a3accca77 318 0x60,0xE0,0xF8,0x3C,0x4,0x0,0x0,0x0}, // A
j3 1:ce6a3accca77 319
j3 1:ce6a3accca77 320 {0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,0x31,
j3 1:ce6a3accca77 321 0x31,0x31,0x3F,0x1E,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 322 0x0,0x0,0x0,0xFC,0xFC,0x8C,0x8C,0x8C,
j3 1:ce6a3accca77 323 0x8C,0x8C,0x8C,0xF8,0x70,0x0,0x0,0x0}, // B
j3 1:ce6a3accca77 324
j3 1:ce6a3accca77 325 {0x0,0x0,0x0,0x7,0x1F,0x1C,0x30,0x30,
j3 1:ce6a3accca77 326 0x30,0x30,0x38,0x1C,0x8,0x0,0x0,0x0,
j3 1:ce6a3accca77 327 0x0,0x0,0x0,0xE0,0xF8,0x38,0xC,0xC,
j3 1:ce6a3accca77 328 0xC,0xC,0x1C,0x38,0x10,0x0,0x0,0x0}, // C
j3 1:ce6a3accca77 329
j3 1:ce6a3accca77 330 {0x0,0x0,0x0,0x3F,0x3F,0x30,0x30,0x30,
j3 1:ce6a3accca77 331 0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0,
j3 1:ce6a3accca77 332 0x0,0x0,0x0,0xFC,0xFC,0xC,0xC,0xC,
j3 1:ce6a3accca77 333 0xC,0xC,0x18,0xF8,0xE0,0x0,0x0,0x0}, // D
j3 1:ce6a3accca77 334
j3 1:ce6a3accca77 335 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,
j3 1:ce6a3accca77 336 0x31,0x31,0x31,0x31,0x31,0x0,0x0,0x0,
j3 1:ce6a3accca77 337 0x0,0x0,0x0,0x0,0xFC,0xFC,0x8C,0x8C,
j3 1:ce6a3accca77 338 0x8C,0x8C,0x8C,0x8C,0x8C,0x0,0x0,0x0}, // E
j3 1:ce6a3accca77 339
j3 1:ce6a3accca77 340 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,
j3 1:ce6a3accca77 341 0x31,0x31,0x31,0x30,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 342 0x0,0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,
j3 1:ce6a3accca77 343 0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0}, // F
j3 1:ce6a3accca77 344
j3 1:ce6a3accca77 345 {0x0,0x0,0x7,0x1F,0x1C,0x30,0x30,0x30,
j3 1:ce6a3accca77 346 0x30,0x30,0x38,0x1C,0x8,0x0,0x0,0x0,
j3 1:ce6a3accca77 347 0x0,0x0,0xE0,0xF8,0x38,0xC,0xC,0xC,
j3 1:ce6a3accca77 348 0xCC,0xCC,0xDC,0xF8,0xF8,0x0,0x0,0x0}, //G
j3 1:ce6a3accca77 349
j3 1:ce6a3accca77 350 {0x0,0x0,0x0,0x3F,0x3F,0x1,0x1,0x1,
j3 1:ce6a3accca77 351 0x1,0x1,0x1,0x3F,0x3F,0x0,0x0,0x0,
j3 1:ce6a3accca77 352 0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,0x80,
j3 1:ce6a3accca77 353 0x80,0x80,0x80,0xFC,0xFC,0x0,0x0,0x0}, //H
j3 1:ce6a3accca77 354
j3 1:ce6a3accca77 355 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3F,
j3 1:ce6a3accca77 356 0x3F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 357 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
j3 1:ce6a3accca77 358 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // I
j3 1:ce6a3accca77 359
j3 1:ce6a3accca77 360 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 361 0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 362 0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0xC,
j3 1:ce6a3accca77 363 0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // J
j3 1:ce6a3accca77 364
j3 1:ce6a3accca77 365 {0x0,0x0,0x0,0x3F,0x3F,0x0,0x1,0x3,
j3 1:ce6a3accca77 366 0x7,0xD,0x18,0x30,0x20,0x0,0x0,0x0,
j3 1:ce6a3accca77 367 0x0,0x0,0x0,0xFC,0xFC,0xC0,0x80,0x0,
j3 1:ce6a3accca77 368 0x80,0xE0,0x70,0x3C,0xC,0x0,0x0,0x0}, //K
j3 1:ce6a3accca77 369
j3 1:ce6a3accca77 370 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,
j3 1:ce6a3accca77 371 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 372 0x0,0x0,0x0,0x0,0xFC,0xFC,0xC,0xC,
j3 1:ce6a3accca77 373 0xC,0xC,0xC,0xC,0x0,0x0,0x0,0x0}, // L
j3 1:ce6a3accca77 374
j3 1:ce6a3accca77 375 {0x0,0x0,0x3F,0x3F,0x3C,0xF,0x1,0x0,
j3 1:ce6a3accca77 376 0x1,0xF,0x3C,0x3F,0x3F,0x0,0x0,0x0,
j3 1:ce6a3accca77 377 0x0,0x0,0xFC,0xFC,0x0,0xC0,0xF8,0x3C,
j3 1:ce6a3accca77 378 0xF8,0xC0,0x0,0xFC,0xFC,0x0,0x0,0x0}, // M
j3 1:ce6a3accca77 379
j3 1:ce6a3accca77 380 {0x0,0x0,0x0,0x3F,0x3F,0x1C,0xE,0x3,
j3 1:ce6a3accca77 381 0x1,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,
j3 1:ce6a3accca77 382 0x0,0x0,0x0,0xFC,0xFC,0x0,0x0,0x80,
j3 1:ce6a3accca77 383 0xC0,0x70,0x38,0xFC,0xFC,0x0,0x0,0x0}, // N
j3 1:ce6a3accca77 384
j3 1:ce6a3accca77 385 {0x0,0x0,0x7,0x1F,0x18,0x30,0x30,0x30,
j3 1:ce6a3accca77 386 0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0,
j3 1:ce6a3accca77 387 0x0,0x0,0xE0,0xF8,0x18,0xC,0xC,0xC,
j3 1:ce6a3accca77 388 0xC,0xC,0x18,0xF8,0xE0,0x0,0x0,0x0}, // O
j3 1:ce6a3accca77 389
j3 1:ce6a3accca77 390 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,
j3 1:ce6a3accca77 391 0x31,0x31,0x3B,0x1F,0xE,0x0,0x0,0x0,
j3 1:ce6a3accca77 392 0x0,0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,
j3 1:ce6a3accca77 393 0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0}, // P
j3 1:ce6a3accca77 394
j3 1:ce6a3accca77 395 {0x0,0x0,0x7,0x1F,0x18,0x30,0x30,0x30,
j3 1:ce6a3accca77 396 0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0,
j3 1:ce6a3accca77 397 0x0,0x0,0xE0,0xF8,0x18,0xC,0xC,0x2C,
j3 1:ce6a3accca77 398 0x3C,0x18,0x3C,0xFE,0xE2,0x0,0x0,0x0},// Q
j3 1:ce6a3accca77 399
j3 1:ce6a3accca77 400 {0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,0x31,
j3 1:ce6a3accca77 401 0x31,0x31,0x3B,0x1F,0xE,0x0,0x0,0x0,
j3 1:ce6a3accca77 402 0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,0x80,
j3 1:ce6a3accca77 403 0xC0,0xE0,0x78,0x3C,0xC,0x4,0x0,0x0}, // R
j3 1:ce6a3accca77 404
j3 1:ce6a3accca77 405 {0x0,0x0,0x0,0x0,0xE,0x1F,0x3B,0x33,
j3 1:ce6a3accca77 406 0x31,0x31,0x39,0x1C,0xC,0x0,0x0,0x0,
j3 1:ce6a3accca77 407 0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0x8C,
j3 1:ce6a3accca77 408 0x8C,0x8C,0xDC,0xF8,0x70,0x0,0x0,0x0}, //S
j3 1:ce6a3accca77 409
j3 1:ce6a3accca77 410 {0x0,0x0,0x0,0x30,0x30,0x30,0x30,0x3F,
j3 1:ce6a3accca77 411 0x3F,0x30,0x30,0x30,0x30,0x0,0x0,0x0,
j3 1:ce6a3accca77 412 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
j3 1:ce6a3accca77 413 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //T
j3 1:ce6a3accca77 414
j3 1:ce6a3accca77 415 {0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,
j3 1:ce6a3accca77 416 0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,
j3 1:ce6a3accca77 417 0x0,0x0,0x0,0xF0,0xF8,0x1C,0xC,0xC,
j3 1:ce6a3accca77 418 0xC,0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0}, //U
j3 1:ce6a3accca77 419
j3 1:ce6a3accca77 420 {0x0,0x0,0x20,0x3C,0x1F,0x3,0x0,0x0,
j3 1:ce6a3accca77 421 0x0,0x3,0x1F,0x3C,0x20,0x0,0x0,0x0,
j3 1:ce6a3accca77 422 0x0,0x0,0x0,0x0,0x80,0xE0,0xFC,0x1C,
j3 1:ce6a3accca77 423 0xFC,0xE0,0x80,0x0,0x0,0x0,0x0,0x0},//V
j3 1:ce6a3accca77 424
j3 1:ce6a3accca77 425 {0x0,0x0,0x38,0x3F,0x7,0x0,0x7,0x3F,
j3 1:ce6a3accca77 426 0x38,0x3F,0x7,0x0,0x7,0x3F,0x38,0x0,
j3 1:ce6a3accca77 427 0x0,0x0,0x0,0xC0,0xFC,0x3C,0xFC,0xC0,
j3 1:ce6a3accca77 428 0x0,0xC0,0xFC,0x3C,0xFC,0xC0,0x0,0x0}, // W
j3 1:ce6a3accca77 429
j3 1:ce6a3accca77 430 {0x0,0x0,0x0,0x30,0x38,0x1E,0x7,0x3,
j3 1:ce6a3accca77 431 0x7,0x1E,0x38,0x30,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 432 0x0,0x0,0x0,0xC,0x1C,0x78,0xE0,0xC0,
j3 1:ce6a3accca77 433 0xE0,0x78,0x1C,0xC,0x0,0x0,0x0,0x0}, // X
j3 1:ce6a3accca77 434
j3 1:ce6a3accca77 435 {0x0,0x0,0x0,0x30,0x38,0x1E,0x7,0x1,
j3 1:ce6a3accca77 436 0x1,0x7,0x1E,0x38,0x30,0x0,0x0,0x0,
j3 1:ce6a3accca77 437 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
j3 1:ce6a3accca77 438 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // Y
j3 1:ce6a3accca77 439
j3 1:ce6a3accca77 440 {0x0,0x0,0x0,0x0,0x0,0x30,0x30,0x30,
j3 1:ce6a3accca77 441 0x33,0x37,0x3E,0x38,0x30,0x0,0x0,0x0,
j3 1:ce6a3accca77 442 0x0,0x0,0x0,0x0,0xC,0x1C,0x7C,0xEC,
j3 1:ce6a3accca77 443 0xCC,0xC,0xC,0xC,0xC,0x0,0x0,0x0}, // Z
j3 1:ce6a3accca77 444
j3 1:ce6a3accca77 445 {0x0,0x0,0x0,0x0,0x0,0x0,0x7F,0x7F,
j3 1:ce6a3accca77 446 0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 447 0x0,0x0,0x0,0x0,0x0,0x0,0xFE,0xFE,
j3 1:ce6a3accca77 448 0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // [
j3 1:ce6a3accca77 449
j3 1:ce6a3accca77 450 {0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x3F,
j3 1:ce6a3accca77 451 0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 452 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 453 0xF0,0xFC,0xC,0x0,0x0,0x0,0x0,0x0}, // backslash
j3 1:ce6a3accca77 454
j3 1:ce6a3accca77 455 {0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x60,
j3 1:ce6a3accca77 456 0x7F,0x7F,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 457 0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6,
j3 1:ce6a3accca77 458 0xFE,0xFE,0x0,0x0,0x0,0x0,0x0,0x0}, // ]
j3 1:ce6a3accca77 459
j3 1:ce6a3accca77 460 {0x0,0x0,0x0,0x0,0x1,0xF,0x3E,0x70,
j3 1:ce6a3accca77 461 0x70,0x3E,0xF,0x1,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 462 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 463 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ^
j3 1:ce6a3accca77 464
j3 1:ce6a3accca77 465 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 466 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 467 0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6,
j3 1:ce6a3accca77 468 0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6}, // _
j3 1:ce6a3accca77 469
j3 1:ce6a3accca77 470 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,
j3 1:ce6a3accca77 471 0x30,0x10,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 472 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 473 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // `
j3 1:ce6a3accca77 474
j3 1:ce6a3accca77 475 {0x0,0x0,0x0,0x0,0x6,0xE,0xC,0xD,
j3 1:ce6a3accca77 476 0xD,0xF,0x7,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 477 0x0,0x0,0x0,0x0,0x70,0xF8,0xD8,0x98,
j3 1:ce6a3accca77 478 0x98,0xF0,0xF8,0x8,0x0,0x0,0x0,0x0}, // a
j3 1:ce6a3accca77 479
j3 1:ce6a3accca77 480 {0x0,0x0,0x0,0x0,0x7F,0x7F,0x6,0xC,
j3 1:ce6a3accca77 481 0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 482 0x0,0x0,0x0,0x0,0xF8,0xF8,0x30,0x18,
j3 1:ce6a3accca77 483 0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // b
j3 1:ce6a3accca77 484
j3 1:ce6a3accca77 485 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
j3 1:ce6a3accca77 486 0xC,0xE,0x6,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 487 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
j3 1:ce6a3accca77 488 0x18,0x38,0x30,0x0,0x0,0x0,0x0,0x0}, //c
j3 1:ce6a3accca77 489
j3 1:ce6a3accca77 490 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
j3 1:ce6a3accca77 491 0xC,0x6,0x7F,0x7F,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 492 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
j3 1:ce6a3accca77 493 0x18,0x30,0xF8,0xF8,0x0,0x0,0x0,0x0}, // d
j3 1:ce6a3accca77 494
j3 1:ce6a3accca77 495 {0x0,0x0,0x0,0x0,0x3,0x7,0xD,0xD,
j3 1:ce6a3accca77 496 0xD,0x7,0x3,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 497 0x0,0x0,0x0,0x0,0xE0,0xF0,0xB8,0x98,
j3 1:ce6a3accca77 498 0x98,0xB0,0xA0,0x0,0x0,0x0,0x0,0x0}, // e
j3 1:ce6a3accca77 499
j3 1:ce6a3accca77 500 {0x0,0x0,0x0,0x0,0xC,0x3F,0x7F,0x6C,
j3 1:ce6a3accca77 501 0x6C,0x60,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 502 0x0,0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,
j3 1:ce6a3accca77 503 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // f
j3 1:ce6a3accca77 504
j3 1:ce6a3accca77 505 {0x0,0x0,0x0,0x7,0xF,0x1C,0x18,0x18,
j3 1:ce6a3accca77 506 0xC,0x1F,0x1F,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 507 0x0,0x0,0x0,0xCC,0xEE,0x76,0x36,0x36,
j3 1:ce6a3accca77 508 0x66,0xFE,0xFC,0x0,0x0,0x0,0x0,0x0}, // g
j3 1:ce6a3accca77 509
j3 1:ce6a3accca77 510 {0x0,0x0,0x0,0x0,0x7F,0x7F,0x6,0xC,
j3 1:ce6a3accca77 511 0xC,0xC,0xF,0x7,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 512 0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0,
j3 1:ce6a3accca77 513 0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0x0}, //h
j3 1:ce6a3accca77 514
j3 1:ce6a3accca77 515 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x37,
j3 1:ce6a3accca77 516 0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 517 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF8,
j3 1:ce6a3accca77 518 0xF8,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // i
j3 1:ce6a3accca77 519
j3 1:ce6a3accca77 520 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x37,
j3 1:ce6a3accca77 521 0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 522 0x0,0x0,0x0,0x0,0x0,0x3,0x3,0xFF,
j3 1:ce6a3accca77 523 0xFE,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // j
j3 1:ce6a3accca77 524
j3 1:ce6a3accca77 525 {0x0,0x0,0x0,0x0,0x7F,0x7F,0x1,0x3,
j3 1:ce6a3accca77 526 0x7,0xC,0x8,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 527 0x0,0x0,0x0,0x0,0xF8,0xF8,0xC0,0x80,
j3 1:ce6a3accca77 528 0xE0,0xF8,0x18,0x0,0x0,0x0,0x0,0x0}, // k
j3 1:ce6a3accca77 529
j3 1:ce6a3accca77 530 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7F,
j3 1:ce6a3accca77 531 0x7F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 532 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF8,
j3 1:ce6a3accca77 533 0xF8,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // l
j3 1:ce6a3accca77 534
j3 1:ce6a3accca77 535 {0x0,0x0,0xF,0xF,0x6,0xC,0xC,0xF,
j3 1:ce6a3accca77 536 0x7,0x6,0xC,0xC,0xF,0x7,0x0,0x0,
j3 1:ce6a3accca77 537 0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0xF8,
j3 1:ce6a3accca77 538 0xF8,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0},// m
j3 1:ce6a3accca77 539
j3 1:ce6a3accca77 540 0x0,0x0,0x0,0x0,0xF,0xF,0x6,0xC,
j3 1:ce6a3accca77 541 0xC,0xC,0xF,0x7,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 542 0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0,
j3 1:ce6a3accca77 543 0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0x0, // n
j3 1:ce6a3accca77 544
j3 1:ce6a3accca77 545 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
j3 1:ce6a3accca77 546 0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 547 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
j3 1:ce6a3accca77 548 0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // o
j3 1:ce6a3accca77 549
j3 1:ce6a3accca77 550 {0x0,0x0,0x0,0x0,0xF,0xF,0x6,0xC,
j3 1:ce6a3accca77 551 0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 552 0x0,0x0,0x0,0x0,0xFF,0xFF,0x30,0x18,
j3 1:ce6a3accca77 553 0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // p
j3 1:ce6a3accca77 554
j3 1:ce6a3accca77 555 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
j3 1:ce6a3accca77 556 0xC,0x6,0xF,0xF,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 557 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
j3 1:ce6a3accca77 558 0x18,0x30,0xFF,0xFF,0x0,0x0,0x0,0x0}, //q
j3 1:ce6a3accca77 559
j3 1:ce6a3accca77 560 {0x0,0x0,0x0,0x0,0x0,0x0,0xF,0xF,
j3 1:ce6a3accca77 561 0x6,0xC,0xC,0xC,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 562 0x0,0x0,0x0,0x0,0x0,0x0,0xF8,0xF8,
j3 1:ce6a3accca77 563 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //r
j3 1:ce6a3accca77 564
j3 1:ce6a3accca77 565 {0x0,0x0,0x0,0x0,0x7,0xF,0xD,0xD,
j3 1:ce6a3accca77 566 0xC,0xE,0x6,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 567 0x0,0x0,0x0,0x0,0x30,0xB8,0x98,0x98,
j3 1:ce6a3accca77 568 0xD8,0xF8,0x70,0x0,0x0,0x0,0x0,0x0}, // s
j3 1:ce6a3accca77 569
j3 1:ce6a3accca77 570 {0x0,0x0,0x0,0x0,0x0,0xC,0x3F,0x7F,
j3 1:ce6a3accca77 571 0xC,0xC,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 572 0x0,0x0,0x0,0x0,0x0,0x0,0xF0,0xF8,
j3 1:ce6a3accca77 573 0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0}, // t
j3 1:ce6a3accca77 574
j3 1:ce6a3accca77 575 {0x0,0x0,0x0,0x0,0xF,0xF,0x0,0x0,
j3 1:ce6a3accca77 576 0x0,0x0,0xF,0xF,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 577 0x0,0x0,0x0,0x0,0xF0,0xF8,0x18,0x18,
j3 1:ce6a3accca77 578 0x18,0x30,0xF8,0xF8,0x0,0x0,0x0,0x0}, // u
j3 1:ce6a3accca77 579
j3 1:ce6a3accca77 580 {0x0,0x0,0x0,0x0,0x0,0xE,0xF,0x1,
j3 1:ce6a3accca77 581 0x0,0x1,0xF,0xE,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 582 0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xF8,
j3 1:ce6a3accca77 583 0x38,0xF8,0xC0,0x0,0x0,0x0,0x0,0x0}, // v
j3 1:ce6a3accca77 584
j3 1:ce6a3accca77 585 {0x0,0x0,0xC,0xF,0x3,0x0,0x1,0xF,
j3 1:ce6a3accca77 586 0xE,0xF,0x1,0x0,0x3,0xF,0xC,0x0,
j3 1:ce6a3accca77 587 0x0,0x0,0x0,0xC0,0xF8,0x38,0xF8,0xC0,
j3 1:ce6a3accca77 588 0x0,0xC0,0xF8,0x38,0xF8,0xC0,0x0,0x0}, // w
j3 1:ce6a3accca77 589
j3 1:ce6a3accca77 590 {0x0,0x0,0x0,0x0,0x0,0xC,0xE,0x7,
j3 1:ce6a3accca77 591 0x1,0x7,0xE,0xC,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 592 0x0,0x0,0x0,0x0,0x0,0x18,0x38,0xF0,
j3 1:ce6a3accca77 593 0xC0,0xF0,0x38,0x18,0x0,0x0,0x0,0x0}, // x
j3 1:ce6a3accca77 594
j3 1:ce6a3accca77 595 {0x0,0x0,0x0,0x0,0xC,0xF,0x3,0x0,
j3 1:ce6a3accca77 596 0x0,0x0,0x3,0xF,0xC,0x0,0x0,0x0,
j3 1:ce6a3accca77 597 0x0,0x0,0x0,0x0,0x0,0x3,0xE3,0xFF,
j3 1:ce6a3accca77 598 0x3E,0xF8,0xE0,0x0,0x0,0x0,0x0,0x0}, // y
j3 1:ce6a3accca77 599
j3 1:ce6a3accca77 600 {0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xC,
j3 1:ce6a3accca77 601 0xC,0xD,0xF,0xF,0xC,0x0,0x0,0x0,
j3 1:ce6a3accca77 602 0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x78,
j3 1:ce6a3accca77 603 0xF8,0xD8,0x98,0x18,0x18,0x0,0x0,0x0}, //z
j3 1:ce6a3accca77 604
j3 1:ce6a3accca77 605 {0x0,0x0,0x0,0x0,0x3,0x3,0x7F,0xFC,
j3 1:ce6a3accca77 606 0xC0,0xC0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 607 0x0,0x0,0x0,0x0,0x0,0x0,0xFC,0xFE,
j3 1:ce6a3accca77 608 0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // {
j3 1:ce6a3accca77 609
j3 1:ce6a3accca77 610 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF,
j3 1:ce6a3accca77 611 0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 612 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF,
j3 1:ce6a3accca77 613 0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // |
j3 1:ce6a3accca77 614
j3 1:ce6a3accca77 615 {0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,
j3 1:ce6a3accca77 616 0xFC,0x7F,0x3,0x3,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 617 0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6,
j3 1:ce6a3accca77 618 0xFE,0xFC,0x0,0x0,0x0,0x0,0x0,0x0}, // }
j3 1:ce6a3accca77 619
j3 1:ce6a3accca77 620 {0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x30,
j3 1:ce6a3accca77 621 0x38,0x18,0x18,0x18,0x30,0x0,0x0,0x0,
j3 1:ce6a3accca77 622 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 623 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ~
j3 1:ce6a3accca77 624 };
j3 1:ce6a3accca77 625
j3 1:ce6a3accca77 626 // Manually created 16*16 character bit map
j3 1:ce6a3accca77 627 static const uint8_t Manual_font_16x16[95][32] = {
j3 1:ce6a3accca77 628
j3 1:ce6a3accca77 629 // Note: Number 0-9, char A-Z and char a-z bit map data created manually, other
j3 1:ce6a3accca77 630 // font bit map data taken from Aerial_bold font
j3 1:ce6a3accca77 631
j3 1:ce6a3accca77 632 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 633 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 634 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 635 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // SPACE
j3 1:ce6a3accca77 636
j3 1:ce6a3accca77 637 {0x0,0x0,0x0,0x0,0x0,0x0,0x3F,0x3F,
j3 1:ce6a3accca77 638 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 639 0x0,0x0,0x0,0x0,0x0,0x0,0xEC,0xEC,
j3 1:ce6a3accca77 640 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // !
j3 1:ce6a3accca77 641
j3 1:ce6a3accca77 642 {0x0,0x0,0x0,0x0,0x0,0x3C,0x3C,0x0,
j3 1:ce6a3accca77 643 0x0,0x3C,0x3C,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 644 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 645 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //"
j3 1:ce6a3accca77 646
j3 1:ce6a3accca77 647 {0x0,0x0,0x6,0x6,0x6,0xF,0x3F,0x36,
j3 1:ce6a3accca77 648 0xF,0x3F,0x36,0x6,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 649 0x0,0x0,0x60,0x6C,0xFC,0xF0,0x6C,0xFC,
j3 1:ce6a3accca77 650 0xF0,0x60,0x60,0x60,0x0,0x0,0x0,0x0},// #
j3 1:ce6a3accca77 651
j3 1:ce6a3accca77 652 {0x0,0x0,0x0,0x0,0xE,0x1F,0x33,0x7F,
j3 1:ce6a3accca77 653 0x31,0x18,0x8,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 654 0x0,0x0,0x0,0x0,0x30,0x38,0x8C,0xFE,
j3 1:ce6a3accca77 655 0xCC,0xF8,0x70,0x0,0x0,0x0,0x0,0x0}, //$
j3 1:ce6a3accca77 656
j3 1:ce6a3accca77 657 {0x0,0x1E,0x3F,0x21,0x21,0x3F,0x1E,0x0,
j3 1:ce6a3accca77 658 0x3,0x7,0x1C,0x38,0x20,0x0,0x0,0x0,
j3 1:ce6a3accca77 659 0x0,0x0,0x0,0x0,0x4,0xC,0x38,0xF0,
j3 1:ce6a3accca77 660 0xC0,0x0,0x78,0xFC,0x84,0x84,0xFC,0x78},//%
j3 1:ce6a3accca77 661
j3 1:ce6a3accca77 662 {0x0,0x0,0x0,0x0,0x1C,0x3F,0x33,0x33,
j3 1:ce6a3accca77 663 0x33,0x3E,0x1C,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 664 0x0,0x0,0x0,0x70,0xF8,0x8C,0xC,0xCC,
j3 1:ce6a3accca77 665 0xEC,0x78,0x38,0xF8,0x5C,0x8,0x0,0x0},//&
j3 1:ce6a3accca77 666
j3 1:ce6a3accca77 667 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3C,
j3 1:ce6a3accca77 668 0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 669 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 670 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//'
j3 1:ce6a3accca77 671
j3 1:ce6a3accca77 672 {0x0,0x0,0x0,0x0,0x0,0xF,0x3F,0x70,
j3 1:ce6a3accca77 673 0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 674 0x0,0x0,0x0,0x0,0x0,0xE0,0xF8,0x1C,
j3 1:ce6a3accca77 675 0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//(
j3 1:ce6a3accca77 676
j3 1:ce6a3accca77 677 {0x0,0x0,0x0,0x0,0x0,0x40,0x70,0x3F,
j3 1:ce6a3accca77 678 0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 679 0x0,0x0,0x0,0x0,0x0,0x4,0x1C,0xF8,
j3 1:ce6a3accca77 680 0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //}
j3 1:ce6a3accca77 681
j3 1:ce6a3accca77 682 {0x0,0x0,0x3,0x3,0x1,0x1,0xF,0xF,
j3 1:ce6a3accca77 683 0xF,0x1,0x1,0x3,0x3,0x0,0x0,0x0,
j3 1:ce6a3accca77 684 0x0,0x0,0x0,0x10,0x30,0xF8,0xE0,0xC0,
j3 1:ce6a3accca77 685 0xE0,0xF8,0x30,0x10,0x0,0x0,0x0,0x0},//*
j3 1:ce6a3accca77 686
j3 1:ce6a3accca77 687 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 688 0x7,0x7,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 689 0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,0xC0,
j3 1:ce6a3accca77 690 0xF8,0xF8,0xC0,0xC0,0xC0,0x0,0x0,0x0},//+
j3 1:ce6a3accca77 691
j3 1:ce6a3accca77 692 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 693 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 694 0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x3C,
j3 1:ce6a3accca77 695 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //,
j3 1:ce6a3accca77 696
j3 1:ce6a3accca77 697 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 698 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 699 0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,
j3 1:ce6a3accca77 700 0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0,0x0},// -
j3 1:ce6a3accca77 701
j3 1:ce6a3accca77 702 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 703 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 704 0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18,
j3 1:ce6a3accca77 705 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // .
j3 1:ce6a3accca77 706
j3 1:ce6a3accca77 707 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 708 0xF,0x3F,0x30,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 709 0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xFC,
j3 1:ce6a3accca77 710 0xF0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // /
j3 1:ce6a3accca77 711
j3 1:ce6a3accca77 712 {0x00,0x00,0x3F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 713 0x61,0x63,0x66,0x7F,0x7F,0x3F,0x00,0x00,
j3 1:ce6a3accca77 714 0x00,0x00,0xFE,0xFF,0xFF,0x33,0x63,0xC3,
j3 1:ce6a3accca77 715 0x83,0x03,0x03,0xFF,0xFF,0x0FE,0x00,0x00}, // 0
j3 1:ce6a3accca77 716
j3 1:ce6a3accca77 717 {0x00,0x00,0x00,0x00,0x08,0x18,0x3F,0x7F,
j3 1:ce6a3accca77 718 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
j3 1:ce6a3accca77 719 0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,
j3 1:ce6a3accca77 720 0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00 }, // 1
j3 1:ce6a3accca77 721
j3 1:ce6a3accca77 722 {0x00,0x00,0x30,0x70,0x60,0x60,0x60,0x60,
j3 1:ce6a3accca77 723 0x61,0x63,0x66,0x7C,0x38,0x30,0x00,0x00,
j3 1:ce6a3accca77 724 0x00,0x00,0x06,0x0E,0x1E,0x36,0x66,0xC6,
j3 1:ce6a3accca77 725 0x86,0x06,0x06,0x06,0x06,0x06,0x00,0x00 }, // 2
j3 1:ce6a3accca77 726
j3 1:ce6a3accca77 727 {0x00,0x00,0x30,0x70,0x60,0x60,0x60,0x60,
j3 1:ce6a3accca77 728 0x61,0x63,0x66,0x7E,0x7C,0x38,0x00,0x00,
j3 1:ce6a3accca77 729 0x00,0x00,0x0C,0x0E,0x06,0x06,0x06,0x06,
j3 1:ce6a3accca77 730 0x86,0xC6,0x66,0x7E,0x3E,0x1C,0x00,0x00 }, // 3
j3 1:ce6a3accca77 731
j3 1:ce6a3accca77 732 {0x00,0x00,0x00,0x01,0x03,0x06,0xC,0x18,
j3 1:ce6a3accca77 733 0x30,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,
j3 1:ce6a3accca77 734 0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,
j3 1:ce6a3accca77 735 0x60,0xFE,0xFE,0xFE,0x60,0x60,0x00,0x00 }, // 4
j3 1:ce6a3accca77 736
j3 1:ce6a3accca77 737 {0x00,0x00,0x7F,0x7F,0x7F,0x61,0x61,0x61,
j3 1:ce6a3accca77 738 0x61,0x61,0x61,0x61,0x61,0x60,0x00,0x00,
j3 1:ce6a3accca77 739 0x00,0x00,0x04,0x86,0x86,0x86,0x86,0x86,
j3 1:ce6a3accca77 740 0x86,0x86,0x86,0xFE,0xFE,0xFC,0x00,0x00 }, // 5
j3 1:ce6a3accca77 741
j3 1:ce6a3accca77 742 {0x00,0x00,0x3F,0x7F,0x7F,0x61,0x61,0x61,
j3 1:ce6a3accca77 743 0x61,0x61,0x61,0x61,0x61,0x20,0x00,0x00,
j3 1:ce6a3accca77 744 0x00,0x00,0xFC,0xFE,0xFE,0x86,0x86,0x86,
j3 1:ce6a3accca77 745 0x86,0x86,0x86,0xFE,0xFE,0xFC,0x00,0x00 }, // 6
j3 1:ce6a3accca77 746
j3 1:ce6a3accca77 747 {0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x30,
j3 1:ce6a3accca77 748 0x30,0x30,0x31,0x3F,0x3E,0x00,0x00,0x00,
j3 1:ce6a3accca77 749 0x00,0x00,0x00,0x00,0x06,0x0C,0x18,0x30,
j3 1:ce6a3accca77 750 0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00 }, // 7
j3 1:ce6a3accca77 751
j3 1:ce6a3accca77 752 {0x00,0x00,0x3F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 753 0x60,0x60,0x60,0x7F,0x7F,0x3F,0x00,0x00,
j3 1:ce6a3accca77 754 0x00,0x00,0x3E,0xFF,0xFF,0xC3,0xC3,0xC3,
j3 1:ce6a3accca77 755 0xC3,0xC3,0xC3,0xFF,0xFF,0x03E,0x00,0x00}, // 8
j3 1:ce6a3accca77 756
j3 1:ce6a3accca77 757 {0x00,0x00,0x3F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 758 0x60,0x60,0x60,0x7F,0x7F,0x3F,0x00,0x00,
j3 1:ce6a3accca77 759 0x00,0x00,0x86,0xC7,0xC3,0xC3,0xC3,0xC3,
j3 1:ce6a3accca77 760 0xC3,0xC3,0xC3,0xFF,0xFF,0x0FE,0x00,0x00}, // 9
j3 1:ce6a3accca77 761
j3 1:ce6a3accca77 762 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,
j3 1:ce6a3accca77 763 0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 764 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,
j3 1:ce6a3accca77 765 0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // :
j3 1:ce6a3accca77 766
j3 1:ce6a3accca77 767 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,
j3 1:ce6a3accca77 768 0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 769 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32,
j3 1:ce6a3accca77 770 0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ;
j3 1:ce6a3accca77 771
j3 1:ce6a3accca77 772 {0x0,0x0,0x0,0x0,0x1,0x1,0x3,0x3,
j3 1:ce6a3accca77 773 0x6,0x6,0xC,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 774 0x0,0x0,0x0,0x80,0xC0,0xC0,0x60,0x60,
j3 1:ce6a3accca77 775 0x30,0x30,0x18,0x0,0x0,0x0,0x0,0x0}, // <
j3 1:ce6a3accca77 776
j3 1:ce6a3accca77 777 {0x0,0x0,0x0,0xC,0xC,0xC,0xC,0xC,
j3 1:ce6a3accca77 778 0xC,0xC,0xC,0xC,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 779 0x0,0x0,0x0,0xC0,0xC0,0xC0,0xC0,0xC0,
j3 1:ce6a3accca77 780 0xC0,0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0}, // =
j3 1:ce6a3accca77 781
j3 1:ce6a3accca77 782 {0x0,0x0,0x0,0x0,0xC,0x6,0x6,0x3,
j3 1:ce6a3accca77 783 0x3,0x1,0x1,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 784 0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x60,
j3 1:ce6a3accca77 785 0x60,0xC0,0xC0,0x80,0x0,0x0,0x0,0x0}, // >
j3 1:ce6a3accca77 786
j3 1:ce6a3accca77 787 {0x0,0x0,0x0,0x0,0xC,0x1C,0x38,0x30,
j3 1:ce6a3accca77 788 0x31,0x33,0x1F,0xE,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 789 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xEC,
j3 1:ce6a3accca77 790 0xEC,0x80,0x0,0x0,0x0,0x0,0x0,0x0}, // ?
j3 1:ce6a3accca77 791
j3 1:ce6a3accca77 792 {0x0,0x0,0x7,0x18,0x27,0x6F,0x58,0x58,
j3 1:ce6a3accca77 793 0x4F,0x5F,0x38,0x30,0x1F,0x0,0x0,0x0,
j3 1:ce6a3accca77 794 0x0,0x0,0xC0,0x20,0x90,0xC8,0xC8,0x88,
j3 1:ce6a3accca77 795 0xC8,0xC8,0x48,0x90,0x20,0x0,0x0,0x0}, //@
j3 1:ce6a3accca77 796
j3 1:ce6a3accca77 797 {0x00,0x00,0x3F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 798 0x60,0x60,0x60,0x7F,0x7F,0x3F,0x00,0x00,
j3 1:ce6a3accca77 799 0x00,0x00,0xFF,0xFF,0xFF,0x60,0x60,0x60,
j3 1:ce6a3accca77 800 0x60,0x60,0x60,0xFF,0xFF,0xFF,0x00,0x00 }, // A
j3 1:ce6a3accca77 801
j3 1:ce6a3accca77 802 {0x00,0x00,0x7F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 803 0x60,0x60,0x60,0x7F,0x07F,0x3E,0x00,0x00,
j3 1:ce6a3accca77 804 0x00,0x00,0xFF,0xFF,0xFF,0xC3,0xC3,0xC3,
j3 1:ce6a3accca77 805 0xC3,0xC3,0xC3,0xFF,0xFF,0x3E,0x00,0x00}, // B
j3 1:ce6a3accca77 806
j3 1:ce6a3accca77 807 {0x00,0x00,0x3F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 808 0x60,0x60,0x60,0x70,0x30,0x00,0x00,0x00,
j3 1:ce6a3accca77 809 0x00,0x00,0xFE,0xFF,0xFF,0x03,0x03,0x03,
j3 1:ce6a3accca77 810 0x03,0x03,0x03,0x07,0x06,0x00,0x00,0x00}, // C
j3 1:ce6a3accca77 811
j3 1:ce6a3accca77 812 {0x00,0x00,0x7F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 813 0x60,0x60,0x60,0x70,0x3F,0x1F,0x00,0x00,
j3 1:ce6a3accca77 814 0x00,0x00,0xFF,0xFF,0xFF,0x03,0x03,0x03,
j3 1:ce6a3accca77 815 0x03,0x03,0x03,0x07,0xFE,0x0FC,0x00,0x00}, // D
j3 1:ce6a3accca77 816
j3 1:ce6a3accca77 817 {0x00,0x00,0x07F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 818 0x60,0x60,0x60,0x60,0x60,0x060,0x00,0x00,
j3 1:ce6a3accca77 819 0x00,0x00,0xFF,0xFF,0xFF,0xC3,0xC3,0xC3,
j3 1:ce6a3accca77 820 0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00}, // E
j3 1:ce6a3accca77 821
j3 1:ce6a3accca77 822 {0x00,0x00,0x7F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 823 0x60,0x60,0x60,0x60,0x60,0x060,0x00,0x00,
j3 1:ce6a3accca77 824 0x00,0x00,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,
j3 1:ce6a3accca77 825 0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00}, // F
j3 1:ce6a3accca77 826
j3 1:ce6a3accca77 827 {0x00,0x00,0x3F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 828 0x60,0x60,0x60,0x78,0x38,0x18,0x00,0x00,
j3 1:ce6a3accca77 829 0x00,0x00,0xFE,0xFF,0xFF,0x03,0x03,0x03,
j3 1:ce6a3accca77 830 0x03,0x23,0x33,0x3F,0x3F,0x3F,0x00,0x00}, // G
j3 1:ce6a3accca77 831
j3 1:ce6a3accca77 832 {0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,0x00,
j3 1:ce6a3accca77 833 0x00,0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,
j3 1:ce6a3accca77 834 0x00,0x00,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,
j3 1:ce6a3accca77 835 0xC0,0xC0,0xC0,0xFF,0xFF,0xFF,0x00,0x00 }, // H
j3 1:ce6a3accca77 836
j3 1:ce6a3accca77 837 {0x00,0x00,0x00,0x00,0x60,0x60,0x7F,0x7F,
j3 1:ce6a3accca77 838 0x7F,0x7F,0x60,0x60,0x00,0x00,0x00,0x00,
j3 1:ce6a3accca77 839 0x00,0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,
j3 1:ce6a3accca77 840 0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00 }, // I
j3 1:ce6a3accca77 841
j3 1:ce6a3accca77 842 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
j3 1:ce6a3accca77 843 0x00,0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,
j3 1:ce6a3accca77 844 0x00,0x00,0x00,0x01E,0x1F,0x1F,0x03,0x03,
j3 1:ce6a3accca77 845 0x03,0x03,0x03,0xFF,0xFF,0xFE,0x00,0x00 }, // J
j3 1:ce6a3accca77 846
j3 1:ce6a3accca77 847 {0x00,0x00,0x7F,0x7F,0x7F,0x03,0x03,0x06,
j3 1:ce6a3accca77 848 0x0C,0x18,0x30,0x60,0x60,0x00,0x00,0x00,
j3 1:ce6a3accca77 849 0x00,0x00,0xFE,0xFE,0xFE,0xC0,0xC0,0x60,
j3 1:ce6a3accca77 850 0x30,0x18,0x0C,0x06,0x06,0x00,0x00,0x00 }, // K
j3 1:ce6a3accca77 851
j3 1:ce6a3accca77 852 {0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,0x00,
j3 1:ce6a3accca77 853 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
j3 1:ce6a3accca77 854 0x00,0x00,0xFF,0xFF,0xFF,0x03,0x03,0x03,
j3 1:ce6a3accca77 855 0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00 }, // L
j3 1:ce6a3accca77 856
j3 1:ce6a3accca77 857 {0x00,0x00,0x7F,0x7F,0x7F,0x1C,0x0E,0x07,
j3 1:ce6a3accca77 858 0x07,0x0E,0x1C,0x7F,0x7F,0x7F,0x00,0x00,
j3 1:ce6a3accca77 859 0x00,0x00,0xFC,0xFC,0xFC,0x00,0x00,0x80,
j3 1:ce6a3accca77 860 0x80,0x00,0x00,0xFC,0xFC,0xFC,0x00,0x00 }, // M
j3 1:ce6a3accca77 861
j3 1:ce6a3accca77 862 {0x00,0x00,0x7F,0x7F,0x7F,0x38,0x1C,0x07,
j3 1:ce6a3accca77 863 0x03,0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,
j3 1:ce6a3accca77 864 0x00,0x00,0xFC,0xFC,0xFC,0x00,0x00,0x00,
j3 1:ce6a3accca77 865 0x80,0xE0,0x70,0xFC,0xFC,0xFC,0x00,0x00 }, // N
j3 1:ce6a3accca77 866
j3 1:ce6a3accca77 867 {0x00,0x00,0x3F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 868 0x60,0x60,0x60,0x7F,0x7F,0x3F,0x00,0x00,
j3 1:ce6a3accca77 869 0x00,0x00,0xFE,0xFF,0xFF,0x03,0x03,0x03,
j3 1:ce6a3accca77 870 0x03,0x03,0x03,0xFF,0xFF,0x0FE,0x00,0x00}, // O
j3 1:ce6a3accca77 871
j3 1:ce6a3accca77 872 {0x00,0x00,0x07F,0x7F,0x7F,0x60,0x60,0x60,
j3 1:ce6a3accca77 873 0x60,0x60,0x60,0x7F,0x7F,0x03F,0x00,0x00,
j3 1:ce6a3accca77 874 0x00,0x00,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,
j3 1:ce6a3accca77 875 0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00}, // P
j3 1:ce6a3accca77 876
j3 1:ce6a3accca77 877 {0x00,0x00,0x3F,0x7F,0x60,0x60,0x60,0x60,
j3 1:ce6a3accca77 878 0x60,0x60,0x60,0x60,0x7F,0x3F,0x00,0x00,
j3 1:ce6a3accca77 879 0x00,0x00,0xF8,0xFC,0x0C,0x0C,0x0C,0x0C,
j3 1:ce6a3accca77 880 0x0C,0x0C,0x3C,0x3C,0xFE,0xFF,0x03,0x00}, // Q
j3 1:ce6a3accca77 881
j3 1:ce6a3accca77 882 {0x00,0x00,0x07F,0x7F,0x7F,0x61,0x61,0x61,
j3 1:ce6a3accca77 883 0x61,0x61,0x61,0x7F,0x7F,0x03F,0x00,0x00,
j3 1:ce6a3accca77 884 0x00,0x00,0xFF,0xFF,0xFF,0xC0,0xE0,0xF0,
j3 1:ce6a3accca77 885 0xB8,0x9C,0x8E,0x87,0x83,0x03,0x00,0x00}, // R
j3 1:ce6a3accca77 886
j3 1:ce6a3accca77 887 {0x00,0x00,0x1E,0x3F,0x73,0x61,0x61,0x61,
j3 1:ce6a3accca77 888 0x61,0x61,0x61,0x70,0x30,0x00,0x00,0x00,
j3 1:ce6a3accca77 889 0x00,0x00,0x0C,0x0C,0x86,0x86,0x86,0x86,
j3 1:ce6a3accca77 890 0x86,0x86,0xC6,0xFC,0x78,0x00,0x00,0x00}, // S
j3 1:ce6a3accca77 891
j3 1:ce6a3accca77 892 {0x00,0x00,0x10,0x30,0x30,0x30,0x30,0x3F,
j3 1:ce6a3accca77 893 0x3F,0x30,0x30,0x30,0x30,0x10,0x00,0x00,
j3 1:ce6a3accca77 894 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
j3 1:ce6a3accca77 895 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, // T
j3 1:ce6a3accca77 896
j3 1:ce6a3accca77 897 {0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,0x00,
j3 1:ce6a3accca77 898 0x00,0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,
j3 1:ce6a3accca77 899 0x00,0x00,0xFC,0xFE,0xFE,0x06,0x06,0x06,
j3 1:ce6a3accca77 900 0x06,0x06,0x06,0xFE,0xFE,0xFC,0x00,0x00 }, // U
j3 1:ce6a3accca77 901
j3 1:ce6a3accca77 902 {0x60,0x70,0x1C,0x0F,0x03,0x00,0x00,
j3 1:ce6a3accca77 903 0x00,0x00,0x00,0x00,0x03,0x0F,0x1C,0x70,0x60,
j3 1:ce6a3accca77 904 0x00,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x06,
j3 1:ce6a3accca77 905 0x06,0x3C,0xF0,0xC0,0x00,0x00,0x00,0x00 }, // V
j3 1:ce6a3accca77 906
j3 1:ce6a3accca77 907 {0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,0x00,
j3 1:ce6a3accca77 908 0x00,0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,
j3 1:ce6a3accca77 909 0x00,0x00,0xFC,0xFE,0xFE,0x1C,0x38,0x70,
j3 1:ce6a3accca77 910 0x70,0x38,0x1C,0xFE,0xFE,0xFC,0x00,0x00 }, // W
j3 1:ce6a3accca77 911
j3 1:ce6a3accca77 912 {0x00,0x00,0x60,0x70,0x78,0x0E,0x07,0x03,
j3 1:ce6a3accca77 913 0x03,0x07,0x0E,0x78,0x70,0x60,0x00,0x00,
j3 1:ce6a3accca77 914 0x00,0x00,0x06,0x0E,0x1E,0x70,0xE0,0xC0,
j3 1:ce6a3accca77 915 0xC0,0xE0,0x70,0x1E,0x0E,0x06,0x00,0x00 }, // X
j3 1:ce6a3accca77 916
j3 1:ce6a3accca77 917 {0x00,0x00,0x20,0x30,0x18,0x0C,0x06,0x03,
j3 1:ce6a3accca77 918 0x03,0x06,0x0C,0x18,0x30,0x20,0x00,0x00,
j3 1:ce6a3accca77 919 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,
j3 1:ce6a3accca77 920 0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, // Y
j3 1:ce6a3accca77 921
j3 1:ce6a3accca77 922 {0x00,0x00,0x70,0x70,0x60,0x60,0x60,0x61,
j3 1:ce6a3accca77 923 0x63,0x67,0x6E,0x78,0x70,0x60,0x00,0x00,
j3 1:ce6a3accca77 924 0x00,0x00,0x06,0x0E,0x3E,0x76,0xE6,0xC6,
j3 1:ce6a3accca77 925 0x86,0x06,0x06,0x06,0x0E,0x0E,0x00,0x00 }, // Z
j3 1:ce6a3accca77 926
j3 1:ce6a3accca77 927 {0x0,0x0,0x0,0x0,0x0,0x0,0x7F,0x7F,
j3 1:ce6a3accca77 928 0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 929 0x0,0x0,0x0,0x0,0x0,0x0,0xFE,0xFE,
j3 1:ce6a3accca77 930 0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // [
j3 1:ce6a3accca77 931
j3 1:ce6a3accca77 932 {0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x3F,
j3 1:ce6a3accca77 933 0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 934 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 935 0xF0,0xFC,0xC,0x0,0x0,0x0,0x0,0x0}, // backslash
j3 1:ce6a3accca77 936
j3 1:ce6a3accca77 937 {0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x60,
j3 1:ce6a3accca77 938 0x7F,0x7F,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 939 0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6,
j3 1:ce6a3accca77 940 0xFE,0xFE,0x0,0x0,0x0,0x0,0x0,0x0}, // ]
j3 1:ce6a3accca77 941
j3 1:ce6a3accca77 942 {0x0,0x0,0x0,0x0,0x1,0xF,0x3E,0x70,
j3 1:ce6a3accca77 943 0x70,0x3E,0xF,0x1,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 944 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 945 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ^
j3 1:ce6a3accca77 946
j3 1:ce6a3accca77 947 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 948 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 949 0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6,
j3 1:ce6a3accca77 950 0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6}, // _
j3 1:ce6a3accca77 951
j3 1:ce6a3accca77 952 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,
j3 1:ce6a3accca77 953 0x30,0x10,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 954 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 955 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // `
j3 1:ce6a3accca77 956
j3 1:ce6a3accca77 957 {0x0,0x0,0x0,0x04,0x09,0x19,0x19,0x19,
j3 1:ce6a3accca77 958 0x0F,0x07,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 959 0x0,0x0,0x0,0xE0,0xB0,0x30,0x30,0x20,
j3 1:ce6a3accca77 960 0xF0,0xF0,0x10,0x0,0x0,0x0,0x0,0x0}, // a
j3 1:ce6a3accca77 961
j3 1:ce6a3accca77 962 {0x0,0x0,0xFF,0xFF,0xFC,0x8,0x18,0x18,
j3 1:ce6a3accca77 963 0x1C,0xF,0x3,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 964 0x0,0x0,0xF0,0xF0,0x60,0x30,0x30,0x30,
j3 1:ce6a3accca77 965 0x60,0xE0,0x80,0x0,0x0,0x0,0x0,0x0}, // b
j3 1:ce6a3accca77 966
j3 1:ce6a3accca77 967 {0x0,0x0,0x07,0x0F,0x0C,0x18,0x18,0x18,
j3 1:ce6a3accca77 968 0xC,0x4,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 969 0x0,0x0,0xC0,0xE0,0x60,0x30,0x30,0x30,
j3 1:ce6a3accca77 970 0x60,0x40,0x0,0x0,0x0,0x0,0x0,0x0}, // c
j3 1:ce6a3accca77 971
j3 1:ce6a3accca77 972 {0x0,0x0,0x03,0x07,0x0C,0x18,0x18,0x18,
j3 1:ce6a3accca77 973 0xFF,0xFF,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 974 0x0,0x0,0xC0,0xE0,0x60,0x30,0x30,0x30,
j3 1:ce6a3accca77 975 0xF8,0xF8,0x0,0x0,0x0,0x0,0x0,0x0}, // d
j3 1:ce6a3accca77 976
j3 1:ce6a3accca77 977 {0x0,0x0,0x03,0x0F,0x0D,0x19,0x19,0x19,
j3 1:ce6a3accca77 978 0x19,0x0F,0x06,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 979 0x0,0x0,0xC0,0xE0,0x30,0x30,0x10,0x30,
j3 1:ce6a3accca77 980 0x30,0x60,0x40,0x0,0x0,0x0,0x0,0x0}, // e
j3 1:ce6a3accca77 981
j3 1:ce6a3accca77 982 {0x0,0x0,0x0,0x0,0x00,0x03,0x03,0x3F,
j3 1:ce6a3accca77 983 0x7F,0x43,0x03,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 984 0x0,0x0,0x0,0x0,0x0,0x0,0x00,0xFE,
j3 1:ce6a3accca77 985 0xFE,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // f
j3 1:ce6a3accca77 986
j3 1:ce6a3accca77 987 {0x0,0x0,0x01,0x07,0x0E,0x08,0x08,0x0C,
j3 1:ce6a3accca77 988 0x0F,0x1F,0x00,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 989 0x0,0x0,0x84,0xE2,0x62,0x23,0x23,0x63,
j3 1:ce6a3accca77 990 0xFE,0xFC,0x0,0x0,0x0,0x0,0x0,0x0}, // g
j3 1:ce6a3accca77 991
j3 1:ce6a3accca77 992 {0x0,0x0,0x00,0x3F,0x3F,0x03,0x02,0x03,
j3 1:ce6a3accca77 993 0x03,0x01,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 994 0x0,0x0,0x0,0xFC,0xFC,0x0,0x0,0x0,
j3 1:ce6a3accca77 995 0xFC,0xFC,0x0,0x0,0x0,0x0,0x0,0x0}, // h
j3 1:ce6a3accca77 996
j3 1:ce6a3accca77 997 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x06F,
j3 1:ce6a3accca77 998 0x6F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 999 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF0,
j3 1:ce6a3accca77 1000 0xF0,0x00,0x0,0x0,0x0,0x0,0x0,0x0}, // i
j3 1:ce6a3accca77 1001
j3 1:ce6a3accca77 1002 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xDF,
j3 1:ce6a3accca77 1003 0xDF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1004 0x0,0x0,0x0,0x0,0x0,0x08,0x0C,0xFC,
j3 1:ce6a3accca77 1005 0xF8,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // j
j3 1:ce6a3accca77 1006
j3 1:ce6a3accca77 1007 {0x0,0x0,0xFF,0xFF,0x03,0x03,0x07,0x0C,
j3 1:ce6a3accca77 1008 0x18,0x30,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1009 0x0,0x0,0xF0,0xF0,0x80,0x0,0x80,0xE0,
j3 1:ce6a3accca77 1010 0x30,0x10,0x0,0x0,0x0,0x0,0x0,0x0}, // k
j3 1:ce6a3accca77 1011
j3 1:ce6a3accca77 1012 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3F,
j3 1:ce6a3accca77 1013 0x3F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1014 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
j3 1:ce6a3accca77 1015 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // l
j3 1:ce6a3accca77 1016
j3 1:ce6a3accca77 1017 {0x0,0x0,0x08,0x1F,0x1F,0x18,0x18,0x18,
j3 1:ce6a3accca77 1018 0x1F,0x1F,0x18,0x18,0x18,0x1F,0x0F,0x0,
j3 1:ce6a3accca77 1019 0x0,0x0,0x0,0xF0,0xF0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1020 0xF0,0xF0,0x0,0x0,0x0,0xF0,0xF0,0x0}, // m
j3 1:ce6a3accca77 1021
j3 1:ce6a3accca77 1022 {0x0,0x0,0x1F,0x0F,0x0C,0x18,0x18,0x1C,
j3 1:ce6a3accca77 1023 0x0F,0x07,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1024 0x0,0x0,0xF0,0xF0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1025 0xF0,0xF0,0x0,0x0,0x0,0x0,0x0,0x0}, // n
j3 1:ce6a3accca77 1026
j3 1:ce6a3accca77 1027 {0x0,0x0,0x03,0x07,0x0C,0x18,0x18,0x18,
j3 1:ce6a3accca77 1028 0x0C,0x07,0x03,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1029 0x0,0x0,0x80,0xC0,0x60,0x30,0x30,0x30,
j3 1:ce6a3accca77 1030 0x60,0xC0,0x80,0x0,0x0,0x0,0x0,0x0}, // o
j3 1:ce6a3accca77 1031
j3 1:ce6a3accca77 1032 {0x0,0x0,0x0,0x1F,0x1F,0x0C,0x08,0x08,
j3 1:ce6a3accca77 1033 0x0C,0x07,0x03,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1034 0x0,0x0,0x0,0xFE,0xFE,0x30,0x10,0x10,
j3 1:ce6a3accca77 1035 0x30,0xE0,0xC0,0x0,0x0,0x0,0x0,0x0}, // p
j3 1:ce6a3accca77 1036
j3 1:ce6a3accca77 1037 {0x0,0x0,0x01,0x07,0x0C,0x08,0x08,0x0C,
j3 1:ce6a3accca77 1038 0x1F,0x1F,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1039 0x0,0x0,0x80,0xE0,0x30,0x10,0x10,0x30,
j3 1:ce6a3accca77 1040 0xFE,0xFE,0x0,0x0,0x0,0x0,0x0,0x0}, // q
j3 1:ce6a3accca77 1041
j3 1:ce6a3accca77 1042 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1F,
j3 1:ce6a3accca77 1043 0x1F,0x0C,0x08,0x0C,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1044 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF0,
j3 1:ce6a3accca77 1045 0xF0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // r
j3 1:ce6a3accca77 1046
j3 1:ce6a3accca77 1047 {0x0,0x0,0x0,0x07,0x0F,0x19,0x19,0x0D,
j3 1:ce6a3accca77 1048 0x04,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1049 0x0,0x0,0x0,0x60,0x30,0x18,0x98,0xB0,
j3 1:ce6a3accca77 1050 0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // s
j3 1:ce6a3accca77 1051
j3 1:ce6a3accca77 1052 {0x0,0x0,0x0,0x0,0x0,0x0,0x03,0x3F,
j3 1:ce6a3accca77 1053 0x3F,0x03,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1054 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF8,
j3 1:ce6a3accca77 1055 0xFC,0x0C,0x08,0x0,0x0,0x0,0x0,0x0}, // t
j3 1:ce6a3accca77 1056
j3 1:ce6a3accca77 1057 {0x0,0x0,0x1F,0x1F,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1058 0x1F,0x1F,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1059 0x0,0x0,0xC0,0xE0,0x70,0x30,0x30,0x60,
j3 1:ce6a3accca77 1060 0xF0,0xF0,0x0,0x0,0x0,0x0,0x0,0x0}, // u
j3 1:ce6a3accca77 1061
j3 1:ce6a3accca77 1062 {0x0,0x0,0x0C,0x0F,0x01,0x0,0x0,0x01,
j3 1:ce6a3accca77 1063 0x0F,0x0C,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1064 0x0,0x0,0x0,0x80,0xE0,0x30,0x30,0xE0,
j3 1:ce6a3accca77 1065 0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // v
j3 1:ce6a3accca77 1066
j3 1:ce6a3accca77 1067 {0x0,0x0,0x18,0x1F,0x0,0x0,0x07,0x0E,
j3 1:ce6a3accca77 1068 0x07,0x0,0x0,0x1F,0x18,0x0,0x0,0x0,
j3 1:ce6a3accca77 1069 0x0,0x0,0x0,0xC0,0x60,0x60,0xC0,0x0,
j3 1:ce6a3accca77 1070 0xC0,0x60,0x60,0xC0,0x0,0x0,0x0,0x0}, // w
j3 1:ce6a3accca77 1071
j3 1:ce6a3accca77 1072 {0x0,0x0,0x0,0x0,0x08,0x0C,0x06,0x03,
j3 1:ce6a3accca77 1073 0x03,0x06,0x0C,0x08,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1074 0x0,0x0,0x0,0x0,0x10,0x30,0x60,0xC0,
j3 1:ce6a3accca77 1075 0xC0,0x60,0x30,0x10,0x0,0x0,0x0,0x0}, // x
j3 1:ce6a3accca77 1076
j3 1:ce6a3accca77 1077 {0x0,0x0,0x08,0x0C,0x06,0x03,0x01,0x01,
j3 1:ce6a3accca77 1078 0x03,0x06,0x0C,0x08,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1079 0x0,0x0,0x0C,0x18,0x30,0x60,0xC0,0x80,
j3 1:ce6a3accca77 1080 0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // y
j3 1:ce6a3accca77 1081
j3 1:ce6a3accca77 1082 {0x0,0x0,0x08,0x08,0x08,0x09,0x0B,0x0E,
j3 1:ce6a3accca77 1083 0x0C,0x08,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1084 0x0,0x0,0x30,0x070,0xD0,0x90,0x10,0x10,
j3 1:ce6a3accca77 1085 0x10,0x10,0x0,0x0,0x0,0x0,0x0,0x0}, // z
j3 1:ce6a3accca77 1086
j3 1:ce6a3accca77 1087 {0x0,0x0,0x0,0x0,0x3,0x3,0x7F,0xFC,
j3 1:ce6a3accca77 1088 0xC0,0xC0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1089 0x0,0x0,0x0,0x0,0x0,0x0,0xFC,0xFE,
j3 1:ce6a3accca77 1090 0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // {
j3 1:ce6a3accca77 1091
j3 1:ce6a3accca77 1092 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF,
j3 1:ce6a3accca77 1093 0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1094 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF,
j3 1:ce6a3accca77 1095 0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // |
j3 1:ce6a3accca77 1096
j3 1:ce6a3accca77 1097 {0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,
j3 1:ce6a3accca77 1098 0xFC,0x7F,0x3,0x3,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1099 0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6,
j3 1:ce6a3accca77 1100 0xFE,0xFC,0x0,0x0,0x0,0x0,0x0,0x0}, // }
j3 1:ce6a3accca77 1101
j3 1:ce6a3accca77 1102 {0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x30,
j3 1:ce6a3accca77 1103 0x38,0x18,0x18,0x18,0x30,0x0,0x0,0x0,
j3 1:ce6a3accca77 1104 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
j3 1:ce6a3accca77 1105 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ~
j3 1:ce6a3accca77 1106 };
j3 1:ce6a3accca77 1107
j3 1:ce6a3accca77 1108
j3 1:ce6a3accca77 1109
j3 1:ce6a3accca77 1110 static uint8_t display_buff[1024];
j3 1:ce6a3accca77 1111 static uint8_t display_buff_16x16[32];
j3 1:ce6a3accca77 1112 static uint16_t buff_end =0;
j3 1:ce6a3accca77 1113 static uint8_t disp_buff1[512];
j3 1:ce6a3accca77 1114 static uint8_t disp_buff2[512];
j3 1:ce6a3accca77 1115 static uint8_t temp_buff1[512];
j3 1:ce6a3accca77 1116 static uint8_t temp_buff2[512];
j3 0:52f9ecc09233 1117 static uint8_t temp_buff[256];
j3 0:52f9ecc09233 1118
j3 0:52f9ecc09233 1119 static const uint8_t DISPLAY_BUFF_START = 0;
j3 0:52f9ecc09233 1120 static const uint8_t DISPLAY_BUFF_END = 31;
j3 0:52f9ecc09233 1121 static const uint32_t MAX_STRING_LENGTH = 32;
j3 0:52f9ecc09233 1122 static char str[MAX_STRING_LENGTH];
j3 0:52f9ecc09233 1123
j3 0:52f9ecc09233 1124
j3 0:52f9ecc09233 1125 //*********************************************************************
j3 0:52f9ecc09233 1126 void print_char(Max7219 *p_display, uint8_t position99, char c)
j3 0:52f9ecc09233 1127 {
j3 0:52f9ecc09233 1128 uint8_t idx;
j3 0:52f9ecc09233 1129 uint8_t char_buff[6];
j3 0:52f9ecc09233 1130 uint8_t device;
j3 0:52f9ecc09233 1131 uint8_t wrap_device;
j3 0:52f9ecc09233 1132 uint8_t wrap_idx;
j3 0:52f9ecc09233 1133 uint8_t buff_start = position99;
j3 0:52f9ecc09233 1134
j3 1:ce6a3accca77 1135 memcpy(char_buff, &(font_5x7[c - 0x20][0]), 6);
j3 0:52f9ecc09233 1136
j3 0:52f9ecc09233 1137 if(position99 < 33)
j3 0:52f9ecc09233 1138 {
j3 1:ce6a3accca77 1139 //get device and device_position
j3 1:ce6a3accca77 1140 if(position99 > 8)
j3 1:ce6a3accca77 1141 {
j3 1:ce6a3accca77 1142 if(position99%8)
j3 1:ce6a3accca77 1143 {
j3 1:ce6a3accca77 1144 device = ((position99/8) + 1);
j3 1:ce6a3accca77 1145 position99 = position99%8;
j3 1:ce6a3accca77 1146 }
j3 1:ce6a3accca77 1147 else
j3 1:ce6a3accca77 1148 {
j3 1:ce6a3accca77 1149 device = position99/8;
j3 1:ce6a3accca77 1150 position99 = 8;
j3 1:ce6a3accca77 1151 }
j3 1:ce6a3accca77 1152 }
j3 1:ce6a3accca77 1153 else
j3 1:ce6a3accca77 1154 {
j3 1:ce6a3accca77 1155 device = 1;
j3 1:ce6a3accca77 1156 }
j3 1:ce6a3accca77 1157 //check for dispaly wrap around
j3 1:ce6a3accca77 1158 //(moving to next 8x8 grid cause character doesn't fit on current one)
j3 1:ce6a3accca77 1159 if(position99 > 3)
j3 1:ce6a3accca77 1160 {
j3 1:ce6a3accca77 1161 wrap_idx = (9 - position99);
j3 1:ce6a3accca77 1162 if(device < 4)
j3 1:ce6a3accca77 1163 {
j3 1:ce6a3accca77 1164 wrap_device = (device + 1);
j3 1:ce6a3accca77 1165 }
j3 1:ce6a3accca77 1166 else
j3 1:ce6a3accca77 1167 {
j3 1:ce6a3accca77 1168 wrap_device = 1;
j3 1:ce6a3accca77 1169 }
j3 1:ce6a3accca77 1170 }
j3 1:ce6a3accca77 1171 else
j3 1:ce6a3accca77 1172 {
j3 1:ce6a3accca77 1173 wrap_idx = 6; //make bigger than idx, not used
j3 1:ce6a3accca77 1174 wrap_device = 0; //not used
j3 1:ce6a3accca77 1175 }
j3 1:ce6a3accca77 1176 //print character to position
j3 1:ce6a3accca77 1177 for(idx = 0; idx < 6; idx++)
j3 1:ce6a3accca77 1178 {
j3 1:ce6a3accca77 1179 //check for wrap
j3 1:ce6a3accca77 1180 if((idx >= wrap_idx) && (device != 4))
j3 1:ce6a3accca77 1181 {
j3 1:ce6a3accca77 1182 p_display->write_digit(wrap_device, ((idx - wrap_idx) + 1), char_buff[idx]);
j3 1:ce6a3accca77 1183 }
j3 1:ce6a3accca77 1184 else
j3 1:ce6a3accca77 1185 {
j3 1:ce6a3accca77 1186 p_display->write_digit(device, (position99 + idx), char_buff[idx]);
j3 1:ce6a3accca77 1187 }
j3 1:ce6a3accca77 1188 buff_end = ((buff_start - 1) + idx);
j3 1:ce6a3accca77 1189 display_buff[buff_end] = char_buff[idx];
j3 1:ce6a3accca77 1190 }
j3 0:52f9ecc09233 1191 }
j3 0:52f9ecc09233 1192 else
j3 0:52f9ecc09233 1193 {
j3 1:ce6a3accca77 1194 for(idx = 0; idx < 6; idx++)
j3 1:ce6a3accca77 1195 {
j3 1:ce6a3accca77 1196 buff_end = ((buff_start - 1) + idx);
j3 1:ce6a3accca77 1197 display_buff[buff_end] = char_buff[idx];
j3 1:ce6a3accca77 1198 }
j3 0:52f9ecc09233 1199 }
j3 0:52f9ecc09233 1200 }
j3 0:52f9ecc09233 1201
j3 0:52f9ecc09233 1202 //*********************************************************************
j3 0:52f9ecc09233 1203 void print_string(Max7219 *p_display, uint8_t position, const char *s)
j3 0:52f9ecc09233 1204 {
j3 0:52f9ecc09233 1205 uint8_t idx = 0;
j3 0:52f9ecc09233 1206
j3 0:52f9ecc09233 1207 while(s[idx] != '\0')
j3 0:52f9ecc09233 1208 {
j3 0:52f9ecc09233 1209 print_char(p_display, (position + (idx*6)), s[idx]);
j3 0:52f9ecc09233 1210 idx++;
j3 0:52f9ecc09233 1211 }
j3 0:52f9ecc09233 1212 }
j3 0:52f9ecc09233 1213
j3 0:52f9ecc09233 1214 //*********************************************************************
j3 0:52f9ecc09233 1215 void shift_display_right(Max7219 *p_display, uint8_t count, uint8_t ms_delay)
j3 0:52f9ecc09233 1216 {
j3 0:52f9ecc09233 1217 uint16_t idx, idy;
j3 0:52f9ecc09233 1218 uint8_t position99;
j3 0:52f9ecc09233 1219
j3 0:52f9ecc09233 1220 for(idx = 0; idx < count; idx++)
j3 0:52f9ecc09233 1221 {
j3 0:52f9ecc09233 1222 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:52f9ecc09233 1223 {
j3 0:52f9ecc09233 1224 if(idy == buff_end)
j3 0:52f9ecc09233 1225 {
j3 0:52f9ecc09233 1226 temp_buff[0] = display_buff[idy];
j3 0:52f9ecc09233 1227 }
j3 0:52f9ecc09233 1228 else
j3 0:52f9ecc09233 1229 {
j3 0:52f9ecc09233 1230 temp_buff[idy + 1] = display_buff[idy];
j3 0:52f9ecc09233 1231 }
j3 0:52f9ecc09233 1232 }
j3 0:52f9ecc09233 1233 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:52f9ecc09233 1234 {
j3 0:52f9ecc09233 1235 //save shifted display in buffer
j3 0:52f9ecc09233 1236 display_buff[idy] = temp_buff[idy];
j3 0:52f9ecc09233 1237 if(idy <= DISPLAY_BUFF_END)
j3 0:52f9ecc09233 1238 {
j3 0:52f9ecc09233 1239 position99 = ((idy - DISPLAY_BUFF_START) + 1);
j3 0:52f9ecc09233 1240 if(position99 > 24)
j3 0:52f9ecc09233 1241 {
j3 0:52f9ecc09233 1242 if(position99 % 8)
j3 0:52f9ecc09233 1243 {
j3 0:52f9ecc09233 1244 position99 = position99 % 8;
j3 0:52f9ecc09233 1245 }
j3 0:52f9ecc09233 1246 else
j3 0:52f9ecc09233 1247 {
j3 0:52f9ecc09233 1248 position99 = 8;
j3 0:52f9ecc09233 1249 }
j3 0:52f9ecc09233 1250 p_display->write_digit(4, position99, display_buff[idy]);
j3 0:52f9ecc09233 1251 }
j3 0:52f9ecc09233 1252 else if(position99 > 16)
j3 0:52f9ecc09233 1253 {
j3 0:52f9ecc09233 1254 if(position99 % 8)
j3 0:52f9ecc09233 1255 {
j3 0:52f9ecc09233 1256 position99 = position99 % 8;
j3 0:52f9ecc09233 1257 }
j3 0:52f9ecc09233 1258 else
j3 0:52f9ecc09233 1259 {
j3 0:52f9ecc09233 1260 position99 = 8;
j3 0:52f9ecc09233 1261 }
j3 0:52f9ecc09233 1262 p_display->write_digit(3, position99, display_buff[idy]);
j3 0:52f9ecc09233 1263 }
j3 0:52f9ecc09233 1264 else if(position99 > 8)
j3 0:52f9ecc09233 1265 {
j3 0:52f9ecc09233 1266 if(position99 % 8)
j3 0:52f9ecc09233 1267 {
j3 0:52f9ecc09233 1268 position99 = position99 % 8;
j3 0:52f9ecc09233 1269 }
j3 0:52f9ecc09233 1270 else
j3 0:52f9ecc09233 1271 {
j3 1:ce6a3accca77 1272 position99 = 8;
j3 0:52f9ecc09233 1273 }
j3 0:52f9ecc09233 1274 p_display->write_digit(2, position99, display_buff[idy]);
j3 0:52f9ecc09233 1275 }
j3 0:52f9ecc09233 1276 else
j3 0:52f9ecc09233 1277 {
j3 0:52f9ecc09233 1278 p_display->write_digit(1, position99, display_buff[idy]);
j3 0:52f9ecc09233 1279 }
j3 0:52f9ecc09233 1280 }
j3 0:52f9ecc09233 1281 }
j3 0:52f9ecc09233 1282 wait_ms(ms_delay);
j3 0:52f9ecc09233 1283 }
j3 0:52f9ecc09233 1284 }
j3 0:52f9ecc09233 1285
j3 0:52f9ecc09233 1286 //*********************************************************************
j3 0:52f9ecc09233 1287 void shift_display_left(Max7219 *p_display, uint8_t count, uint8_t ms_delay)
j3 0:52f9ecc09233 1288 {
j3 0:52f9ecc09233 1289 uint16_t idx, idy;
j3 0:52f9ecc09233 1290 uint8_t position99;
j3 0:52f9ecc09233 1291
j3 0:52f9ecc09233 1292 for(idx = 0; idx < count; idx++)
j3 0:52f9ecc09233 1293 {
j3 0:52f9ecc09233 1294 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:52f9ecc09233 1295 {
j3 0:52f9ecc09233 1296 if(idy == 0)
j3 0:52f9ecc09233 1297 {
j3 0:52f9ecc09233 1298 temp_buff[buff_end] = display_buff[idy];
j3 0:52f9ecc09233 1299 }
j3 0:52f9ecc09233 1300 else
j3 0:52f9ecc09233 1301 {
j3 0:52f9ecc09233 1302 temp_buff[idy - 1] = display_buff[idy];
j3 0:52f9ecc09233 1303 }
j3 0:52f9ecc09233 1304 }
j3 0:52f9ecc09233 1305 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:52f9ecc09233 1306 {
j3 0:52f9ecc09233 1307 //save shifted display in buffer
j3 0:52f9ecc09233 1308 display_buff[idy] = temp_buff[idy];
j3 0:52f9ecc09233 1309 if(idy <= DISPLAY_BUFF_END)
j3 0:52f9ecc09233 1310 {
j3 0:52f9ecc09233 1311 position99 = ((idy - DISPLAY_BUFF_START) + 1);
j3 0:52f9ecc09233 1312 if(position99 > 24)
j3 0:52f9ecc09233 1313 {
j3 0:52f9ecc09233 1314 if(position99 % 8)
j3 0:52f9ecc09233 1315 {
j3 0:52f9ecc09233 1316 position99 = position99 % 8;
j3 0:52f9ecc09233 1317 }
j3 0:52f9ecc09233 1318 else
j3 0:52f9ecc09233 1319 {
j3 0:52f9ecc09233 1320 position99 = 8;
j3 0:52f9ecc09233 1321 }
j3 0:52f9ecc09233 1322 p_display->write_digit(4, position99, display_buff[idy]);
j3 0:52f9ecc09233 1323 }
j3 0:52f9ecc09233 1324 else if(position99 > 16)
j3 0:52f9ecc09233 1325 {
j3 0:52f9ecc09233 1326 if(position99 % 8)
j3 0:52f9ecc09233 1327 {
j3 0:52f9ecc09233 1328 position99 = position99 % 8;
j3 0:52f9ecc09233 1329 }
j3 0:52f9ecc09233 1330 else
j3 0:52f9ecc09233 1331 {
j3 0:52f9ecc09233 1332 position99 = 8;
j3 0:52f9ecc09233 1333 }
j3 0:52f9ecc09233 1334 p_display->write_digit(3, position99, display_buff[idy]);
j3 0:52f9ecc09233 1335 }
j3 0:52f9ecc09233 1336 else if(position99 > 8)
j3 0:52f9ecc09233 1337 {
j3 0:52f9ecc09233 1338 if(position99 % 8)
j3 0:52f9ecc09233 1339 {
j3 0:52f9ecc09233 1340 position99 = position99 % 8;
j3 0:52f9ecc09233 1341 }
j3 0:52f9ecc09233 1342 else
j3 0:52f9ecc09233 1343 {
j3 1:ce6a3accca77 1344 position99 = 8;
j3 0:52f9ecc09233 1345 }
j3 0:52f9ecc09233 1346 p_display->write_digit(2, position99, display_buff[idy]);
j3 0:52f9ecc09233 1347 }
j3 0:52f9ecc09233 1348 else
j3 0:52f9ecc09233 1349 {
j3 0:52f9ecc09233 1350 p_display->write_digit(1, position99, display_buff[idy]);
j3 0:52f9ecc09233 1351 }
j3 0:52f9ecc09233 1352 }
j3 0:52f9ecc09233 1353 }
j3 0:52f9ecc09233 1354 wait_ms(ms_delay);
j3 0:52f9ecc09233 1355 }
j3 0:52f9ecc09233 1356 }
j3 0:52f9ecc09233 1357
j3 0:52f9ecc09233 1358
j3 0:52f9ecc09233 1359 //*********************************************************************
j3 0:52f9ecc09233 1360 void quad_all_on(Max7219 *p_display, uint8_t quad)
j3 0:52f9ecc09233 1361 {
j3 0:52f9ecc09233 1362 if(quad > 1)
j3 0:52f9ecc09233 1363 {
j3 0:52f9ecc09233 1364 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:52f9ecc09233 1365 {
j3 0:52f9ecc09233 1366 display_buff[((quad - 1)*8) + DISPLAY_BUFF_START + idx] = 0xFF;
j3 0:52f9ecc09233 1367 }
j3 0:52f9ecc09233 1368 }
j3 0:52f9ecc09233 1369 else
j3 0:52f9ecc09233 1370 {
j3 0:52f9ecc09233 1371 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:52f9ecc09233 1372 {
j3 0:52f9ecc09233 1373 display_buff[idx + DISPLAY_BUFF_START] = 0xFF;
j3 0:52f9ecc09233 1374 }
j3 0:52f9ecc09233 1375 }
j3 0:52f9ecc09233 1376 if(buff_end < (quad * 8))
j3 0:52f9ecc09233 1377 {
j3 1:ce6a3accca77 1378 buff_end = (quad * 8);
j3 0:52f9ecc09233 1379 }
j3 0:52f9ecc09233 1380 p_display->device_all_on(quad);
j3 0:52f9ecc09233 1381 }
j3 0:52f9ecc09233 1382
j3 0:52f9ecc09233 1383 //*********************************************************************
j3 0:52f9ecc09233 1384 void quad_all_off(Max7219 *p_display, uint8_t quad)
j3 0:52f9ecc09233 1385 {
j3 0:52f9ecc09233 1386 if(quad > 1)
j3 0:52f9ecc09233 1387 {
j3 0:52f9ecc09233 1388 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:52f9ecc09233 1389 {
j3 0:52f9ecc09233 1390 display_buff[((quad - 1)*8) + DISPLAY_BUFF_START + idx] = 0;
j3 0:52f9ecc09233 1391 }
j3 0:52f9ecc09233 1392 }
j3 0:52f9ecc09233 1393 else
j3 0:52f9ecc09233 1394 {
j3 0:52f9ecc09233 1395 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:52f9ecc09233 1396 {
j3 0:52f9ecc09233 1397 display_buff[idx + DISPLAY_BUFF_START] = 0;
j3 0:52f9ecc09233 1398 }
j3 0:52f9ecc09233 1399 }
j3 0:52f9ecc09233 1400
j3 0:52f9ecc09233 1401 //is buff_end in the quad?
j3 0:52f9ecc09233 1402 if((((quad - 1) * 8) < buff_end) && ((quad * 8) > buff_end))
j3 0:52f9ecc09233 1403 {
j3 1:ce6a3accca77 1404 buff_end = ((quad - 1) * 8);
j3 0:52f9ecc09233 1405 }
j3 0:52f9ecc09233 1406 //leave it alone otherwise
j3 0:52f9ecc09233 1407 p_display->device_all_off(quad);
j3 0:52f9ecc09233 1408 }
j3 0:52f9ecc09233 1409
j3 0:52f9ecc09233 1410 //*********************************************************************
j3 0:52f9ecc09233 1411 void all_on(Max7219 *p_display)
j3 0:52f9ecc09233 1412 {
j3 0:52f9ecc09233 1413 for(uint16_t idx = 0; idx < 32; idx++)
j3 0:52f9ecc09233 1414 {
j3 0:52f9ecc09233 1415 display_buff[idx] = 0xFF;
j3 0:52f9ecc09233 1416 }
j3 0:52f9ecc09233 1417 if(buff_end < 32)
j3 0:52f9ecc09233 1418 {
j3 1:ce6a3accca77 1419 buff_end = 32;
j3 0:52f9ecc09233 1420 }
j3 0:52f9ecc09233 1421 p_display->display_all_on();
j3 0:52f9ecc09233 1422 }
j3 0:52f9ecc09233 1423
j3 0:52f9ecc09233 1424 //*********************************************************************
j3 0:52f9ecc09233 1425 void all_off(Max7219 *p_display)
j3 0:52f9ecc09233 1426 {
j3 0:52f9ecc09233 1427 for(uint16_t idx = 0; idx < 32; idx++)
j3 0:52f9ecc09233 1428 {
j3 0:52f9ecc09233 1429 display_buff[idx] = 0;
j3 0:52f9ecc09233 1430 }
j3 0:52f9ecc09233 1431 if(buff_end < 32)
j3 0:52f9ecc09233 1432 {
j3 1:ce6a3accca77 1433 buff_end = 0;
j3 0:52f9ecc09233 1434 }
j3 0:52f9ecc09233 1435 p_display->display_all_off();
j3 0:52f9ecc09233 1436 }
j3 0:52f9ecc09233 1437
j3 0:52f9ecc09233 1438 //*********************************************************************
j3 0:52f9ecc09233 1439 void demo(Max7219 *display, max7219_configuration_t display_config, bool endless_loop)
j3 0:52f9ecc09233 1440 {
j3 0:52f9ecc09233 1441 uint8_t position = 1;
j3 0:52f9ecc09233 1442 uint8_t idx = 0;
j3 0:52f9ecc09233 1443 do
j3 0:52f9ecc09233 1444 {
j3 0:52f9ecc09233 1445 all_off(display);
j3 0:52f9ecc09233 1446 if(position > 25)
j3 0:52f9ecc09233 1447 {
j3 0:52f9ecc09233 1448 position = 1;
j3 0:52f9ecc09233 1449 }
j3 0:52f9ecc09233 1450 printf("\nPosition = %d\n", position);
j3 0:52f9ecc09233 1451 for(idx = 0x20; idx < 0x7F; idx++)
j3 0:52f9ecc09233 1452 {
j3 0:52f9ecc09233 1453 print_char(display, position, (char) idx);
j3 0:52f9ecc09233 1454 wait(0.25);
j3 0:52f9ecc09233 1455 }
j3 0:52f9ecc09233 1456 position = (position + 8);
j3 0:52f9ecc09233 1457 all_on(display);
j3 0:52f9ecc09233 1458 for(idx = 0; idx < 16; idx++)
j3 0:52f9ecc09233 1459 {
j3 0:52f9ecc09233 1460 display_config.intensity = 15 - idx;
j3 0:52f9ecc09233 1461 display->init_display(display_config);
j3 0:52f9ecc09233 1462 wait_ms(50);
j3 0:52f9ecc09233 1463 }
j3 0:52f9ecc09233 1464 for(idx = 0; idx < 16; idx++)
j3 0:52f9ecc09233 1465 {
j3 0:52f9ecc09233 1466 display_config.intensity = idx;
j3 0:52f9ecc09233 1467 display->init_display(display_config);
j3 0:52f9ecc09233 1468 wait_ms(100);
j3 0:52f9ecc09233 1469 }
j3 0:52f9ecc09233 1470 wait_ms(100);
j3 0:52f9ecc09233 1471 all_off(display);
j3 0:52f9ecc09233 1472 wait_ms(100);
j3 0:52f9ecc09233 1473
j3 0:52f9ecc09233 1474 quad_all_on(display, 1);
j3 0:52f9ecc09233 1475 wait_ms(500);
j3 0:52f9ecc09233 1476 shift_display_right(display, 32, 100);
j3 0:52f9ecc09233 1477 shift_display_left(display, 32, 100);
j3 0:52f9ecc09233 1478 all_off(display);
j3 0:52f9ecc09233 1479 wait_ms(100);
j3 0:52f9ecc09233 1480
j3 0:52f9ecc09233 1481 print_string(display, 1, "Maxim");
j3 0:52f9ecc09233 1482 wait_ms(100);
j3 0:52f9ecc09233 1483 shift_display_right(display, 32, 100);
j3 0:52f9ecc09233 1484 shift_display_left(display, 32, 100);
j3 0:52f9ecc09233 1485 wait_ms(100);
j3 0:52f9ecc09233 1486 }
j3 0:52f9ecc09233 1487 while(endless_loop);
j3 0:52f9ecc09233 1488 }
j3 0:52f9ecc09233 1489
j3 0:52f9ecc09233 1490 //*********************************************************************
j3 0:52f9ecc09233 1491 void endless_scroll_display(Max7219 *display, uint32_t scroll_right)
j3 0:52f9ecc09233 1492 {
j3 0:52f9ecc09233 1493 if(scroll_right)
j3 0:52f9ecc09233 1494 {
j3 0:52f9ecc09233 1495 printf("\nScrolling Right\n");
j3 0:52f9ecc09233 1496 while(1)
j3 0:52f9ecc09233 1497 {
j3 0:52f9ecc09233 1498 shift_display_right(display, 1, 100);
j3 0:52f9ecc09233 1499 }
j3 0:52f9ecc09233 1500 }
j3 0:52f9ecc09233 1501 else
j3 0:52f9ecc09233 1502 {
j3 0:52f9ecc09233 1503 printf("\nScrolling Left\n");
j3 0:52f9ecc09233 1504 while(1)
j3 0:52f9ecc09233 1505 {
j3 0:52f9ecc09233 1506 shift_display_left(display, 1, 100);
j3 0:52f9ecc09233 1507 }
j3 0:52f9ecc09233 1508 }
j3 0:52f9ecc09233 1509 }
j3 0:52f9ecc09233 1510
j3 1:ce6a3accca77 1511 /********************************************************************/
j3 1:ce6a3accca77 1512 void get_16x16_character(char c, uint8_t *char_buff, uint8_t font_type)
j3 1:ce6a3accca77 1513 {
j3 1:ce6a3accca77 1514 uint8_t idx;
j3 1:ce6a3accca77 1515
j3 1:ce6a3accca77 1516 switch(font_type)
j3 1:ce6a3accca77 1517 {
j3 1:ce6a3accca77 1518 case 1: // Use 16x16 Aerial bold font
j3 1:ce6a3accca77 1519 for(idx = 0; idx < 32; idx++)
j3 1:ce6a3accca77 1520 {
j3 1:ce6a3accca77 1521 //Get byte of char from map & store in buffer
j3 1:ce6a3accca77 1522 char_buff[idx] = Aerial_bold_font_16x16[c - 0x20][idx];
j3 1:ce6a3accca77 1523 }
j3 1:ce6a3accca77 1524 break;
j3 1:ce6a3accca77 1525 case 2: // Use For 16x16 manual font
j3 1:ce6a3accca77 1526 for(idx = 0; idx < 32; idx++)
j3 1:ce6a3accca77 1527 {
j3 1:ce6a3accca77 1528 //Get byte of char from map & store in buffer
j3 1:ce6a3accca77 1529 char_buff[idx] = Manual_font_16x16[c - 0x20][idx];
j3 1:ce6a3accca77 1530 }
j3 1:ce6a3accca77 1531 break;
j3 1:ce6a3accca77 1532 default : //Use 16x16 Aerial bold font
j3 1:ce6a3accca77 1533 for(idx = 0; idx < 32; idx++)
j3 1:ce6a3accca77 1534 {
j3 1:ce6a3accca77 1535 //Get byte of char from map & store in buffer
j3 1:ce6a3accca77 1536 char_buff[idx] = Aerial_bold_font_16x16[c - 0x20][idx];
j3 1:ce6a3accca77 1537 }
j3 1:ce6a3accca77 1538 break;
j3 1:ce6a3accca77 1539 } //end of switch
j3 1:ce6a3accca77 1540 }
j3 1:ce6a3accca77 1541
j3 1:ce6a3accca77 1542 void print_char_16x16(Max7219 *p_display, uint16_t position, char c, uint8_t font_type)
j3 1:ce6a3accca77 1543 {
j3 1:ce6a3accca77 1544
j3 1:ce6a3accca77 1545 uint8_t idx,device;
j3 1:ce6a3accca77 1546 uint8_t char_buff[32];
j3 1:ce6a3accca77 1547 uint16_t buff_start = position;
j3 1:ce6a3accca77 1548
j3 1:ce6a3accca77 1549 get_16x16_character(c, char_buff,font_type);
j3 1:ce6a3accca77 1550 //Write bit map data to display device and store it in buffer
j3 1:ce6a3accca77 1551 for(device = 1; device < 5; device++)
j3 1:ce6a3accca77 1552 {
j3 1:ce6a3accca77 1553 for(idx = 0; idx < 8; idx++)
j3 1:ce6a3accca77 1554 {
j3 1:ce6a3accca77 1555 p_display->write_digit(device, (idx+1), char_buff[idx + ( device - 1) * 8]);
j3 1:ce6a3accca77 1556 //Get index for display buffer, keeps image of display for shifting
j3 1:ce6a3accca77 1557 buff_end = (device - 1) * 8 + idx + buff_start;
j3 1:ce6a3accca77 1558 //Wrap buffer back around
j3 1:ce6a3accca77 1559 if(buff_end > 1023)
j3 1:ce6a3accca77 1560 {
j3 1:ce6a3accca77 1561 buff_end -= 1023;
j3 1:ce6a3accca77 1562 }
j3 1:ce6a3accca77 1563 display_buff[buff_end] = char_buff[idx + ( device - 1) * 8];
j3 1:ce6a3accca77 1564 }
j3 1:ce6a3accca77 1565 }
j3 1:ce6a3accca77 1566 buff_end +=1;
j3 1:ce6a3accca77 1567 //Arrange single character data in buffers as upper and lower row
j3 1:ce6a3accca77 1568 for(idx = 0;idx < 16; idx++)
j3 1:ce6a3accca77 1569 {
j3 1:ce6a3accca77 1570 disp_buff1[idx] = display_buff[idx];
j3 1:ce6a3accca77 1571 disp_buff2[idx] = display_buff[idx+16];
j3 1:ce6a3accca77 1572 }
j3 1:ce6a3accca77 1573 }
j3 1:ce6a3accca77 1574
j3 1:ce6a3accca77 1575 void print_string_16x16(Max7219 *p_display, char *s,uint8_t font_type)
j3 1:ce6a3accca77 1576 {
j3 1:ce6a3accca77 1577 uint16_t idx1=0,idy1=0;
j3 1:ce6a3accca77 1578
j3 1:ce6a3accca77 1579 while(s[idx1] != '\0')
j3 1:ce6a3accca77 1580 {
j3 1:ce6a3accca77 1581 print_char_16x16(p_display, (idx1 * 32), s[idx1], font_type);
j3 1:ce6a3accca77 1582 idx1++;
j3 1:ce6a3accca77 1583 wait_ms(200);
j3 1:ce6a3accca77 1584 }
j3 1:ce6a3accca77 1585 //Arrange character data in upper and lower row data
j3 1:ce6a3accca77 1586 for (idy1=0; idy1 < (buff_end/32); idy1++)
j3 1:ce6a3accca77 1587 {
j3 1:ce6a3accca77 1588 for(idx1 = 0; idx1 < 16; idx1++)
j3 1:ce6a3accca77 1589 {
j3 1:ce6a3accca77 1590 disp_buff1[idx1 + (16 * idy1)] = display_buff[idx1 + (32 * idy1)];
j3 1:ce6a3accca77 1591 disp_buff2[idx1 + (16 * idy1)] = display_buff[idx1 + 16 + (32 * idy1)];
j3 1:ce6a3accca77 1592 }
j3 1:ce6a3accca77 1593 }
j3 1:ce6a3accca77 1594 // Clear buffer for next iteration
j3 1:ce6a3accca77 1595 for(idx1 = 0; idx1 < 1024; idx1++)
j3 1:ce6a3accca77 1596 display_buff[idx1] = 0;
j3 1:ce6a3accca77 1597 }
j3 1:ce6a3accca77 1598
j3 1:ce6a3accca77 1599 //*********************************************************************
j3 1:ce6a3accca77 1600 void shift_display_right_16x16(Max7219 *p_display, uint8_t count, uint8_t delay)
j3 1:ce6a3accca77 1601 {
j3 1:ce6a3accca77 1602 uint16_t idx1, idy1;
j3 1:ce6a3accca77 1603 uint8_t position,device;
j3 1:ce6a3accca77 1604
j3 1:ce6a3accca77 1605 for(idx1 = 0; idx1 < count; idx1++)
j3 1:ce6a3accca77 1606 {
j3 1:ce6a3accca77 1607 // Right shift data in display buffer 1 & 2
j3 1:ce6a3accca77 1608 for(idy1 = 0; idy1 < buff_end/2; idy1++)
j3 1:ce6a3accca77 1609 {
j3 1:ce6a3accca77 1610 if(idy1 == ((buff_end/2)-1))
j3 1:ce6a3accca77 1611 {
j3 1:ce6a3accca77 1612 temp_buff1[0] = disp_buff1[(buff_end/2) - 1];
j3 1:ce6a3accca77 1613 temp_buff2[0] = disp_buff2[(buff_end/2) - 1];
j3 1:ce6a3accca77 1614 }
j3 1:ce6a3accca77 1615 else
j3 1:ce6a3accca77 1616 {
j3 1:ce6a3accca77 1617 temp_buff1[idy1 + 1] = disp_buff1[idy1];
j3 1:ce6a3accca77 1618 temp_buff2[idy1 + 1] = disp_buff2[idy1];
j3 1:ce6a3accca77 1619 }
j3 1:ce6a3accca77 1620 }
j3 1:ce6a3accca77 1621 // Save shifted data in the display buffer 1 & 2
j3 1:ce6a3accca77 1622 for(idy1 = 0; idy1 < buff_end/2; idy1++)
j3 1:ce6a3accca77 1623 {
j3 1:ce6a3accca77 1624 disp_buff1[idy1] = temp_buff1[idy1];
j3 1:ce6a3accca77 1625 disp_buff2[idy1] = temp_buff2[idy1];
j3 1:ce6a3accca77 1626 }
j3 1:ce6a3accca77 1627 for(idy1 = 0; idy1 < 16; idy1++)
j3 1:ce6a3accca77 1628 {
j3 1:ce6a3accca77 1629 display_buff_16x16[idy1] = disp_buff1[idy1];
j3 1:ce6a3accca77 1630 display_buff_16x16[idy1 + 16] = disp_buff2[idy1];
j3 1:ce6a3accca77 1631 }
j3 1:ce6a3accca77 1632 position = 0;
j3 1:ce6a3accca77 1633 for(device = 1; device < 5; device++)
j3 1:ce6a3accca77 1634 {
j3 1:ce6a3accca77 1635 for(idy1 = 0; idy1 < 8; idy1++)
j3 1:ce6a3accca77 1636 {
j3 1:ce6a3accca77 1637 p_display->write_digit(device, (idy1 + 1), display_buff_16x16[idy1 + position]);
j3 1:ce6a3accca77 1638 }
j3 1:ce6a3accca77 1639 position+= 8;
j3 1:ce6a3accca77 1640 }
j3 1:ce6a3accca77 1641 wait_ms(delay);
j3 1:ce6a3accca77 1642 }
j3 1:ce6a3accca77 1643 }
j3 1:ce6a3accca77 1644
j3 1:ce6a3accca77 1645 //*********************************************************************
j3 1:ce6a3accca77 1646 void shift_display_left_16x16(Max7219 *p_display, uint8_t count, uint8_t delay)
j3 1:ce6a3accca77 1647 {
j3 1:ce6a3accca77 1648 uint16_t idx1,idy1;
j3 1:ce6a3accca77 1649 uint8_t position,device;
j3 1:ce6a3accca77 1650
j3 1:ce6a3accca77 1651 for(idx1 = 0; idx1 < count; idx1++)
j3 1:ce6a3accca77 1652 {
j3 1:ce6a3accca77 1653 // Left shift data in display buffer 1 & 2
j3 1:ce6a3accca77 1654 for(idy1 = 0; idy1 < buff_end/2; idy1++)
j3 1:ce6a3accca77 1655 {
j3 1:ce6a3accca77 1656 if(idy1 == 0)
j3 1:ce6a3accca77 1657 {
j3 1:ce6a3accca77 1658 temp_buff1[(buff_end/2) - 1] = disp_buff1[idy1];
j3 1:ce6a3accca77 1659 temp_buff2[(buff_end/2) - 1] = disp_buff2[idy1];
j3 1:ce6a3accca77 1660 }
j3 1:ce6a3accca77 1661 else
j3 1:ce6a3accca77 1662 {
j3 1:ce6a3accca77 1663 temp_buff1[idy1 - 1] = disp_buff1[idy1];
j3 1:ce6a3accca77 1664 temp_buff2[idy1 - 1] = disp_buff2[idy1];
j3 1:ce6a3accca77 1665 }
j3 1:ce6a3accca77 1666 }
j3 1:ce6a3accca77 1667 // Save shifted data in the display buffer 1 & 2
j3 1:ce6a3accca77 1668 for(idy1 = 0; idy1 < buff_end/2; idy1++)
j3 1:ce6a3accca77 1669 {
j3 1:ce6a3accca77 1670 disp_buff1[idy1] = temp_buff1[idy1];
j3 1:ce6a3accca77 1671 disp_buff2[idy1] = temp_buff2[idy1];
j3 1:ce6a3accca77 1672 }
j3 1:ce6a3accca77 1673 for(idy1 = 0; idy1 < 16; idy1++)
j3 1:ce6a3accca77 1674 {
j3 1:ce6a3accca77 1675 display_buff_16x16[idy1] = disp_buff1[idy1];
j3 1:ce6a3accca77 1676 display_buff_16x16[idy1 + 16] = disp_buff2[idy1];
j3 1:ce6a3accca77 1677 }
j3 1:ce6a3accca77 1678 position = 0;
j3 1:ce6a3accca77 1679 for(device = 1; device < 5; device++)
j3 1:ce6a3accca77 1680 {
j3 1:ce6a3accca77 1681 for(idy1 = 0; idy1 < 8; idy1++)
j3 1:ce6a3accca77 1682 {
j3 1:ce6a3accca77 1683 p_display->write_digit(device, (idy1+1), display_buff_16x16[idy1 + position]);
j3 1:ce6a3accca77 1684 }
j3 1:ce6a3accca77 1685 position+= 8;
j3 1:ce6a3accca77 1686 }
j3 1:ce6a3accca77 1687 wait_ms(delay);
j3 1:ce6a3accca77 1688 }
j3 1:ce6a3accca77 1689 }
j3 1:ce6a3accca77 1690
j3 1:ce6a3accca77 1691 //*********************************************************************
j3 1:ce6a3accca77 1692 void demo_16x16(Max7219 *display, max7219_configuration_t display_config, uint8_t font_type, bool endless_loop)
j3 1:ce6a3accca77 1693 {
j3 1:ce6a3accca77 1694 uint8_t index = 0;
j3 1:ce6a3accca77 1695
j3 1:ce6a3accca77 1696 do
j3 1:ce6a3accca77 1697 {
j3 1:ce6a3accca77 1698 all_off(display);
j3 1:ce6a3accca77 1699 for(index = 0x20; index < 0x7F; index++)
j3 1:ce6a3accca77 1700 {
j3 1:ce6a3accca77 1701 print_char_16x16(display, 0, (char) index, font_type);
j3 1:ce6a3accca77 1702 wait(0.25);
j3 1:ce6a3accca77 1703 }
j3 1:ce6a3accca77 1704 all_on(display);
j3 1:ce6a3accca77 1705 for(index = 0; index < 16; index++)
j3 1:ce6a3accca77 1706 {
j3 1:ce6a3accca77 1707 display_config.intensity = 15 - index;
j3 1:ce6a3accca77 1708 display->init_display(display_config);
j3 1:ce6a3accca77 1709 wait_ms(50);
j3 1:ce6a3accca77 1710 }
j3 1:ce6a3accca77 1711 for(index = 0; index < 16; index++)
j3 1:ce6a3accca77 1712 {
j3 1:ce6a3accca77 1713 display_config.intensity = index;
j3 1:ce6a3accca77 1714 display->init_display(display_config);
j3 1:ce6a3accca77 1715 wait_ms(100);
j3 1:ce6a3accca77 1716 }
j3 1:ce6a3accca77 1717 wait_ms(100);
j3 1:ce6a3accca77 1718 all_off(display);
j3 1:ce6a3accca77 1719 wait_ms(100);
j3 1:ce6a3accca77 1720
j3 1:ce6a3accca77 1721 all_on(display);
j3 1:ce6a3accca77 1722 wait_ms(500);
j3 1:ce6a3accca77 1723 // Display character then shift right and left
j3 1:ce6a3accca77 1724 print_char_16x16(display, 0, 'A', font_type);
j3 1:ce6a3accca77 1725 wait_ms(500);
j3 1:ce6a3accca77 1726 shift_display_right_16x16(display, 32, 100);
j3 1:ce6a3accca77 1727 shift_display_left_16x16(display, 32, 100);
j3 1:ce6a3accca77 1728 all_off(display);
j3 1:ce6a3accca77 1729 wait_ms(100);
j3 1:ce6a3accca77 1730 // Display string then shift right and left
j3 1:ce6a3accca77 1731 print_string_16x16(display, "Maxim", font_type);
j3 1:ce6a3accca77 1732 wait_ms(500);
j3 1:ce6a3accca77 1733 shift_display_right_16x16(display, 32, 100);
j3 1:ce6a3accca77 1734 shift_display_left_16x16(display, 32, 100);
j3 1:ce6a3accca77 1735 wait_ms(100);
j3 1:ce6a3accca77 1736 }
j3 1:ce6a3accca77 1737 while(endless_loop);
j3 1:ce6a3accca77 1738 }
j3 1:ce6a3accca77 1739
j3 1:ce6a3accca77 1740 //*********************************************************************
j3 1:ce6a3accca77 1741 void endless_scroll_display_16x16(Max7219 *display, uint32_t scroll_right)
j3 1:ce6a3accca77 1742 {
j3 1:ce6a3accca77 1743 if(scroll_right)
j3 1:ce6a3accca77 1744 {
j3 1:ce6a3accca77 1745 printf("\nScrolling Right\n");
j3 1:ce6a3accca77 1746 while(1)
j3 1:ce6a3accca77 1747 {
j3 1:ce6a3accca77 1748 shift_display_right_16x16(display, 1, 100);
j3 1:ce6a3accca77 1749 }
j3 1:ce6a3accca77 1750 }
j3 1:ce6a3accca77 1751 else
j3 1:ce6a3accca77 1752 {
j3 1:ce6a3accca77 1753 printf("\nScrolling Left\n");
j3 1:ce6a3accca77 1754 while(1)
j3 1:ce6a3accca77 1755 {
j3 1:ce6a3accca77 1756 shift_display_left_16x16(display, 1, 100);
j3 1:ce6a3accca77 1757 }
j3 1:ce6a3accca77 1758 }
j3 1:ce6a3accca77 1759 }
j3 0:52f9ecc09233 1760
j3 0:52f9ecc09233 1761 //*********************************************************************
j3 0:52f9ecc09233 1762 uint32_t print_menu(void)
j3 0:52f9ecc09233 1763 {
j3 0:52f9ecc09233 1764 uint32_t user_input;
j3 0:52f9ecc09233 1765
j3 0:52f9ecc09233 1766 printf("\nPlease select an option below:\n");
j3 1:ce6a3accca77 1767 printf("%t1. Select font\n");
j3 1:ce6a3accca77 1768 printf("%t2. Set Brightness\n");
j3 1:ce6a3accca77 1769 printf("%t3. Print a character to given position\n");
j3 1:ce6a3accca77 1770 printf("%t4. Print a string to position\n");
j3 1:ce6a3accca77 1771 printf("%t5. Shift display given number of position and direction\n");
j3 1:ce6a3accca77 1772 printf("%t6. Clear display\n");
j3 1:ce6a3accca77 1773 printf("%t7. Run the Demo Routine\n");
j3 0:52f9ecc09233 1774 printf("%t8. Scroll Display In Endless Loop, left or right\n");
j3 0:52f9ecc09233 1775 printf("%t9. Quit\n\n");
j3 0:52f9ecc09233 1776
j3 0:52f9ecc09233 1777 user_input = get_user_input(NULL, 9);
j3 0:52f9ecc09233 1778
j3 0:52f9ecc09233 1779 return(user_input);
j3 0:52f9ecc09233 1780 }
j3 0:52f9ecc09233 1781
j3 0:52f9ecc09233 1782 //*********************************************************************
j3 0:52f9ecc09233 1783 uint32_t get_user_input(char *msg, uint32_t max_val)
j3 0:52f9ecc09233 1784 {
j3 0:52f9ecc09233 1785 uint32_t user_input;
j3 0:52f9ecc09233 1786
j3 0:52f9ecc09233 1787 do
j3 0:52f9ecc09233 1788 {
j3 0:52f9ecc09233 1789 printf(msg);
j3 0:52f9ecc09233 1790
j3 0:52f9ecc09233 1791 //get user input
j3 0:52f9ecc09233 1792 fgets(str, MAX_STRING_LENGTH, stdin);
j3 1:ce6a3accca77 1793
j3 0:52f9ecc09233 1794 //Remove trailing newline and CR, if there.
j3 0:52f9ecc09233 1795 if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D))
j3 0:52f9ecc09233 1796 {
j3 0:52f9ecc09233 1797 str[strlen(str) - 1] = '\0';
j3 0:52f9ecc09233 1798 str[strlen(str) - 1] = '\0';
j3 0:52f9ecc09233 1799 }
j3 0:52f9ecc09233 1800 user_input = strtoul(str, NULL, 0);
j3 0:52f9ecc09233 1801 printf("\nYou entered = %d\n", user_input);
j3 0:52f9ecc09233 1802
j3 0:52f9ecc09233 1803 if(user_input > max_val)
j3 0:52f9ecc09233 1804 {
j3 0:52f9ecc09233 1805 printf("\nOut of range\n");
j3 0:52f9ecc09233 1806 }
j3 0:52f9ecc09233 1807 }
j3 0:52f9ecc09233 1808 while(user_input > max_val);
j3 0:52f9ecc09233 1809
j3 0:52f9ecc09233 1810 return(user_input);
j3 0:52f9ecc09233 1811 }
j3 0:52f9ecc09233 1812
j3 0:52f9ecc09233 1813 //*********************************************************************
j3 0:52f9ecc09233 1814 char get_user_char(char *msg)
j3 0:52f9ecc09233 1815 {
j3 0:52f9ecc09233 1816
j3 0:52f9ecc09233 1817 do
j3 0:52f9ecc09233 1818 {
j3 0:52f9ecc09233 1819 printf(msg);
j3 0:52f9ecc09233 1820
j3 0:52f9ecc09233 1821 //get user input
j3 1:ce6a3accca77 1822 fflush(stdin);
j3 0:52f9ecc09233 1823 fgets(str, 4, stdin);
j3 1:ce6a3accca77 1824 fflush(stdin);
j3 0:52f9ecc09233 1825 //Remove trailing newline and CR, if there.
j3 0:52f9ecc09233 1826 if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D))
j3 0:52f9ecc09233 1827 {
j3 0:52f9ecc09233 1828 str[strlen(str) - 1] = '\0';
j3 0:52f9ecc09233 1829 str[strlen(str) - 1] = '\0';
j3 0:52f9ecc09233 1830 }
j3 0:52f9ecc09233 1831
j3 0:52f9ecc09233 1832 printf("\nYou entered = %c\n", str[0]);
j3 0:52f9ecc09233 1833
j3 0:52f9ecc09233 1834 if((str[0] < 0x20) || (str[0] > 0x7E))
j3 0:52f9ecc09233 1835 {
j3 0:52f9ecc09233 1836 printf("\nOut of range\n");
j3 0:52f9ecc09233 1837 }
j3 0:52f9ecc09233 1838 }
j3 0:52f9ecc09233 1839 while((str[0] < 0x20) || (str[0] > 0x7E));
j3 0:52f9ecc09233 1840
j3 0:52f9ecc09233 1841 return(str[0]);
j3 0:52f9ecc09233 1842 }
j3 0:52f9ecc09233 1843
j3 0:52f9ecc09233 1844
j3 0:52f9ecc09233 1845 //*********************************************************************
j3 0:52f9ecc09233 1846 char * get_user_string(char *msg)
j3 0:52f9ecc09233 1847 {
j3 0:52f9ecc09233 1848 printf(msg);
j3 0:52f9ecc09233 1849 //get user input
j3 0:52f9ecc09233 1850 fgets(str, MAX_STRING_LENGTH, stdin);
j3 0:52f9ecc09233 1851 //Remove trailing newline and CR, if there.
j3 0:52f9ecc09233 1852 if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D))
j3 0:52f9ecc09233 1853 {
j3 0:52f9ecc09233 1854 str[strlen(str) - 1] = '\0';
j3 0:52f9ecc09233 1855 str[strlen(str) - 1] = '\0';
j3 0:52f9ecc09233 1856 }
j3 0:52f9ecc09233 1857
j3 0:52f9ecc09233 1858 return(str);
j3 0:52f9ecc09233 1859 }
j3 0:52f9ecc09233 1860
j3 1:ce6a3accca77 1861
j3 1:ce6a3accca77 1862 void clear_buffer(void)
j3 1:ce6a3accca77 1863 {
j3 1:ce6a3accca77 1864 buff_end = 0;
j3 1:ce6a3accca77 1865
j3 1:ce6a3accca77 1866 for(uint16_t idx = 0; idx < 256; idx++)
j3 1:ce6a3accca77 1867 {
j3 1:ce6a3accca77 1868 display_buff[idx] = 0;
j3 1:ce6a3accca77 1869 }
j3 1:ce6a3accca77 1870 }