Library for Princeton PT6318 VFD controller Initial version for KUH8300.

Committer:
wim
Date:
Sun Jun 19 13:27:07 2016 +0000
Revision:
1:a7a518dbca96
Parent:
0:e5741b4e6a1a
Library for Princeton PT6318 VFD controller; Initial version for KUH8300.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:e5741b4e6a1a 1 /* mbed Font Library, for PT6318 VFD Controller
wim 0:e5741b4e6a1a 2 * Copyright (c) 2016, v01: WH, Initial version, Test in KUH8300
wim 0:e5741b4e6a1a 3 *
wim 0:e5741b4e6a1a 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
wim 0:e5741b4e6a1a 5 * of this software and associated documentation files (the "Software"), to deal
wim 0:e5741b4e6a1a 6 * in the Software without restriction, including without limitation the rights
wim 0:e5741b4e6a1a 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
wim 0:e5741b4e6a1a 8 * copies of the Software, and to permit persons to whom the Software is
wim 0:e5741b4e6a1a 9 * furnished to do so, subject to the following conditions:
wim 0:e5741b4e6a1a 10 *
wim 0:e5741b4e6a1a 11 * The above copyright notice and this permission notice shall be included in
wim 0:e5741b4e6a1a 12 * all copies or substantial portions of the Software.
wim 0:e5741b4e6a1a 13 *
wim 0:e5741b4e6a1a 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
wim 0:e5741b4e6a1a 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
wim 0:e5741b4e6a1a 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
wim 0:e5741b4e6a1a 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
wim 0:e5741b4e6a1a 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
wim 0:e5741b4e6a1a 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
wim 0:e5741b4e6a1a 20 * THE SOFTWARE.
wim 0:e5741b4e6a1a 21 */
wim 0:e5741b4e6a1a 22 #ifndef MBED_FONT_7SEG_H
wim 0:e5741b4e6a1a 23 #define MBED_FONT_7SEG_H
wim 0:e5741b4e6a1a 24
wim 0:e5741b4e6a1a 25 // Select one of the testboards for PT6318 controller
wim 0:e5741b4e6a1a 26 //#include "PT6318.h"
wim 0:e5741b4e6a1a 27 #include "PT6318_Config.h"
wim 0:e5741b4e6a1a 28
wim 0:e5741b4e6a1a 29 #if (KUH8300_TEST == 1)
wim 0:e5741b4e6a1a 30 // Segment bit positions for 7 Segment display using the KUH8300 mapping for PT6318
wim 0:e5741b4e6a1a 31 // Modify this table for different 'bit-to-segment' mappings. The ASCII character defines and the FONT_7S const table below
wim 0:e5741b4e6a1a 32 // will be adapted automatically according to the bit-to-segment mapping. Obviously this will only work when the segment
wim 0:e5741b4e6a1a 33 // mapping is identical for every digit position. This will be the case unless the hardware designer really hates software developers.
wim 0:e5741b4e6a1a 34 //
wim 0:e5741b4e6a1a 35 // A
wim 0:e5741b4e6a1a 36 // -----
wim 0:e5741b4e6a1a 37 // | |
wim 0:e5741b4e6a1a 38 // F | | B
wim 0:e5741b4e6a1a 39 // | G |
wim 0:e5741b4e6a1a 40 // -----
wim 0:e5741b4e6a1a 41 // | |
wim 0:e5741b4e6a1a 42 // E | | C
wim 0:e5741b4e6a1a 43 // | |
wim 0:e5741b4e6a1a 44 // ----- * DP
wim 0:e5741b4e6a1a 45 // D
wim 0:e5741b4e6a1a 46 //
wim 0:e5741b4e6a1a 47 //Placeholders for remapping font to one of two digits per grid
wim 0:e5741b4e6a1a 48 #define S7_A 0x0001
wim 0:e5741b4e6a1a 49 #define S7_B 0x0002
wim 0:e5741b4e6a1a 50 #define S7_C 0x0004
wim 0:e5741b4e6a1a 51 #define S7_D 0x0008
wim 0:e5741b4e6a1a 52 #define S7_E 0x0010
wim 0:e5741b4e6a1a 53 #define S7_F 0x0020
wim 0:e5741b4e6a1a 54 #define S7_G 0x0040
wim 0:e5741b4e6a1a 55 //#define S7_DP 0x0080
wim 0:e5741b4e6a1a 56 #define S7_DP 0x0004
wim 0:e5741b4e6a1a 57
wim 0:e5741b4e6a1a 58 //Mask for blending out and setting 7 segments digits
wim 0:e5741b4e6a1a 59 #define MASK_7S_ALL = (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F | S7_G}
wim 0:e5741b4e6a1a 60
wim 0:e5741b4e6a1a 61
wim 0:e5741b4e6a1a 62 //Each Grid has 2 Digits in the KUH8300
wim 0:e5741b4e6a1a 63 #define S7_D0 0x000001
wim 0:e5741b4e6a1a 64 #define S7_E0 0x000002
wim 0:e5741b4e6a1a 65 #define S7_C0 0x000004
wim 0:e5741b4e6a1a 66 #define S7_G0 0x000008
wim 0:e5741b4e6a1a 67 #define S7_F0 0x000010
wim 0:e5741b4e6a1a 68 #define S7_B0 0x000020
wim 0:e5741b4e6a1a 69 #define S7_A0 0x000040
wim 0:e5741b4e6a1a 70 #define S7_DP0 0x000000
wim 0:e5741b4e6a1a 71
wim 0:e5741b4e6a1a 72 #define S7_A1 0x000800
wim 0:e5741b4e6a1a 73 #define S7_B1 0x001000
wim 0:e5741b4e6a1a 74 #define S7_F1 0x002000
wim 0:e5741b4e6a1a 75 #define S7_G1 0x004000
wim 0:e5741b4e6a1a 76 #define S7_C1 0x008000
wim 0:e5741b4e6a1a 77 #define S7_E1 0x010000
wim 0:e5741b4e6a1a 78 #define S7_D1 0x020000
wim 0:e5741b4e6a1a 79 #define S7_DP1 0x000000
wim 0:e5741b4e6a1a 80
wim 0:e5741b4e6a1a 81 //Icons Grid 1
wim 0:e5741b4e6a1a 82 #define S7_CAM 0x000080
wim 0:e5741b4e6a1a 83 #define S7_DIG 0x000100
wim 0:e5741b4e6a1a 84 #define S7_MONO 0x000200
wim 0:e5741b4e6a1a 85 #define S7_PRG 0x000400
wim 0:e5741b4e6a1a 86 #define S7_DTS 0x002000
wim 0:e5741b4e6a1a 87 #define S7_MEM 0x004000
wim 0:e5741b4e6a1a 88 #define S7_KHZ 0x008000
wim 0:e5741b4e6a1a 89 #define S7_STR 0x010000
wim 0:e5741b4e6a1a 90 #define S7_MHZ 0x020000
wim 0:e5741b4e6a1a 91 #define S7_ICON_GR1 (S7_CAM | S7_DIG | S7_MONO | S7_PRG | S7_DTS | S7_MEM | S7_KHZ | S7_STR | S7_MHZ)
wim 0:e5741b4e6a1a 92
wim 0:e5741b4e6a1a 93 //Icons Grid 2
wim 0:e5741b4e6a1a 94 #define S7_KEY 0x000080
wim 0:e5741b4e6a1a 95 #define S7_ALL 0x000100
wim 0:e5741b4e6a1a 96 #define S7_DP6 0x000200
wim 0:e5741b4e6a1a 97 #define S7_COL6 0x000400
wim 0:e5741b4e6a1a 98 #define S7_ICON_GR2 (S7_KEY | S7_ALL | S7_DP6 | S7_COL6)
wim 0:e5741b4e6a1a 99
wim 0:e5741b4e6a1a 100 //Icons Grid 3
wim 0:e5741b4e6a1a 101 #define S7_ARW 0x000080
wim 0:e5741b4e6a1a 102 #define S7_A_ 0x000100
wim 0:e5741b4e6a1a 103 #define S7_B_ 0x000200
wim 0:e5741b4e6a1a 104 #define S7_CD4A 0x000400
wim 0:e5741b4e6a1a 105 #define S7_ICON_GR3 (S7_ARW | S7_A_ | S7_B_ | S7_CD4A)
wim 0:e5741b4e6a1a 106
wim 0:e5741b4e6a1a 107 //Icons Grid 4
wim 0:e5741b4e6a1a 108 #define S7_CHP 0x000080
wim 0:e5741b4e6a1a 109 #define S7_N3 0x000100
wim 0:e5741b4e6a1a 110 #define S7_L3 0x000200
wim 0:e5741b4e6a1a 111 #define S7_HK3 0x000400
wim 0:e5741b4e6a1a 112 #define S7_ICON_GR4 (S7_CHP | S7_N3 | S7_L3 | S7_HK3)
wim 0:e5741b4e6a1a 113
wim 0:e5741b4e6a1a 114 //Icons Grid 5
wim 0:e5741b4e6a1a 115 #define S7_TTL 0x000080
wim 0:e5741b4e6a1a 116 #define S7_JM1 0x000100
wim 0:e5741b4e6a1a 117 #define S7_HK2 0x000400
wim 0:e5741b4e6a1a 118 #define S7_ICON_GR5 (S7_TTL | S7_JM1 | S7_HK2)
wim 0:e5741b4e6a1a 119
wim 0:e5741b4e6a1a 120 //Icons Grid 6
wim 0:e5741b4e6a1a 121 #define S7_PSE 0x000002
wim 0:e5741b4e6a1a 122 #define S7_PLY 0x000004
wim 0:e5741b4e6a1a 123 #define S7_PBC 0x000008
wim 0:e5741b4e6a1a 124 #define S7_DVD 0x000010
wim 0:e5741b4e6a1a 125 #define S7_CD 0x000020
wim 0:e5741b4e6a1a 126 #define S7_V 0x000040
wim 0:e5741b4e6a1a 127 #define S7_S 0x000080
wim 0:e5741b4e6a1a 128 #define S7_ICON_GR6 (S7_PSE | S7_PLY | S7_PBC | S7_DVD | S7_CD | S7_V | S7_S)
wim 0:e5741b4e6a1a 129
wim 0:e5741b4e6a1a 130 //Mask for blending out and restoring Icons
wim 0:e5741b4e6a1a 131 extern const char MASK_ICON_GRID[][3];
wim 0:e5741b4e6a1a 132 //extern const char MASK_ICON_GRID[][PT6318_BYTES_PER_GRID];
wim 0:e5741b4e6a1a 133 #endif
wim 0:e5741b4e6a1a 134
wim 0:e5741b4e6a1a 135
wim 0:e5741b4e6a1a 136 // ASCII Font definitions for segments in each character
wim 0:e5741b4e6a1a 137 //
wim 0:e5741b4e6a1a 138 //32 0x20 Symbols
wim 0:e5741b4e6a1a 139 #define C7_SPC (0x000000)
wim 0:e5741b4e6a1a 140 #define C7_EXC (S7_B | S7_C) //!
wim 0:e5741b4e6a1a 141 #define C7_QTE (S7_B | S7_F) //"
wim 0:e5741b4e6a1a 142 #define C7_HSH (S7_C | S7_D | S7_E | S7_G) //#
wim 0:e5741b4e6a1a 143 #define C7_DLR (S7_A | S7_C | S7_D | S7_F | S7_G) //$
wim 0:e5741b4e6a1a 144 #define C7_PCT (S7_C | S7_F) //%
wim 0:e5741b4e6a1a 145 #define C7_AMP (S7_A | S7_C | S7_D | S7_E | S7_F | S7_G) //&
wim 0:e5741b4e6a1a 146 #define C7_ACC (S7_B) //'
wim 0:e5741b4e6a1a 147 #define C7_LBR (S7_A | S7_D | S7_E | S7_F) //(
wim 0:e5741b4e6a1a 148 #define C7_RBR (S7_A | S7_B | S7_C | S7_D) //)
wim 0:e5741b4e6a1a 149 #define C7_MLT (S7_B | S7_C | S7_E | S7_F | S7_G) //*
wim 0:e5741b4e6a1a 150 #define C7_PLS (S7_B | S7_C | S7_G) //+
wim 0:e5741b4e6a1a 151 #define C7_CMA (S7_DP)
wim 0:e5741b4e6a1a 152 #define C7_MIN (S7_G)
wim 0:e5741b4e6a1a 153 #define C7_DPT (S7_DP)
wim 0:e5741b4e6a1a 154 #define C7_RS (S7_B | S7_E | S7_G) // /
wim 0:e5741b4e6a1a 155
wim 0:e5741b4e6a1a 156 //48 0x30 Digits
wim 0:e5741b4e6a1a 157 #define C7_0 (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F)
wim 0:e5741b4e6a1a 158 #define C7_1 (S7_B | S7_C)
wim 0:e5741b4e6a1a 159 #define C7_2 (S7_A | S7_B | S7_D | S7_E | S7_G)
wim 0:e5741b4e6a1a 160 #define C7_3 (S7_A | S7_B | S7_C | S7_D | S7_G)
wim 0:e5741b4e6a1a 161 #define C7_4 (S7_B | S7_C | S7_F | S7_G)
wim 0:e5741b4e6a1a 162 #define C7_5 (S7_A | S7_C | S7_D | S7_F | S7_G)
wim 0:e5741b4e6a1a 163 #define C7_6 (S7_A | S7_C | S7_D | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 164 #define C7_7 (S7_A | S7_B | S7_C)
wim 0:e5741b4e6a1a 165 #define C7_8 (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 166 #define C7_9 (S7_A | S7_B | S7_C | S7_D | S7_F | S7_G)
wim 0:e5741b4e6a1a 167
wim 0:e5741b4e6a1a 168 //58 0x3A
wim 0:e5741b4e6a1a 169 #define C7_COL (S7_D | S7_G) // :
wim 0:e5741b4e6a1a 170 #define C7_SCL (S7_D | S7_G) // ;
wim 0:e5741b4e6a1a 171 #define C7_LT (S7_D | S7_E | S7_G) // <
wim 0:e5741b4e6a1a 172 #define C7_EQ (S7_D | S7_G) // =
wim 0:e5741b4e6a1a 173 #define C7_GT (S7_C | S7_D | S7_G) // >
wim 0:e5741b4e6a1a 174 #define C7_QM (S7_A | S7_B | S7_E | S7_G) // ?
wim 0:e5741b4e6a1a 175 #define C7_AT (S7_A | S7_B | S7_C | S7_D | S7_E | S7_G) // @
wim 0:e5741b4e6a1a 176
wim 0:e5741b4e6a1a 177 //65 0x41 Upper case alphabet
wim 0:e5741b4e6a1a 178 #define C7_A (S7_A | S7_B | S7_C | S7_E | S7_F | S7_G )
wim 0:e5741b4e6a1a 179 #define C7_B (S7_C | S7_D | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 180 #define C7_C (S7_A | S7_D | S7_E | S7_F)
wim 0:e5741b4e6a1a 181 #define C7_D (S7_B | S7_C | S7_D | S7_E | S7_G)
wim 0:e5741b4e6a1a 182 #define C7_E (S7_A | S7_D | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 183 #define C7_F (S7_A | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 184
wim 0:e5741b4e6a1a 185 #define C7_G (S7_A | S7_C | S7_D | S7_E | S7_F)
wim 0:e5741b4e6a1a 186 #define C7_H (S7_B | S7_C | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 187 #define C7_I (S7_B | S7_C)
wim 0:e5741b4e6a1a 188 #define C7_J (S7_B | S7_C | S7_D | S7_E)
wim 0:e5741b4e6a1a 189 #define C7_K (S7_B | S7_C | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 190 #define C7_L (S7_D | S7_E | S7_F)
wim 0:e5741b4e6a1a 191 #define C7_M (S7_A | S7_C | S7_E)
wim 0:e5741b4e6a1a 192 #define C7_N (S7_A | S7_B | S7_C | S7_E | S7_F)
wim 0:e5741b4e6a1a 193 #define C7_O (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F)
wim 0:e5741b4e6a1a 194 #define C7_P (S7_A | S7_B | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 195 #define C7_Q (S7_A | S7_B | S7_C | S7_F | S7_G)
wim 0:e5741b4e6a1a 196 #define C7_R (S7_E | S7_G )
wim 0:e5741b4e6a1a 197 #define C7_S (S7_A | S7_C | S7_D | S7_F | S7_G)
wim 0:e5741b4e6a1a 198 #define C7_T (S7_D | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 199 #define C7_U (S7_B | S7_C | S7_D | S7_E | S7_F)
wim 0:e5741b4e6a1a 200 #define C7_V (S7_B | S7_C | S7_D | S7_E | S7_F)
wim 0:e5741b4e6a1a 201 #define C7_W (S7_B | S7_D | S7_F)
wim 0:e5741b4e6a1a 202 #define C7_X (S7_B | S7_C | S7_E | S7_F | S7_G)
wim 0:e5741b4e6a1a 203 #define C7_Y (S7_B | S7_C | S7_D | S7_F | S7_G)
wim 0:e5741b4e6a1a 204 #define C7_Z (S7_A | S7_B | S7_D | S7_E | S7_G)
wim 0:e5741b4e6a1a 205
wim 0:e5741b4e6a1a 206 //91 0x5B
wim 0:e5741b4e6a1a 207 #define C7_SBL (S7_A | S7_D | S7_E | S7_F) // [
wim 0:e5741b4e6a1a 208 #define C7_LS (S7_C | S7_F | S7_G) // left slash
wim 0:e5741b4e6a1a 209 #define C7_SBR (S7_A | S7_B | S7_C | S7_D) // ]
wim 0:e5741b4e6a1a 210 #define C7_PWR (S7_A | S7_B | S7_F) // ^
wim 0:e5741b4e6a1a 211 #define C7_UDS (S7_D) // _
wim 0:e5741b4e6a1a 212 #define C7_DSH (S7_F) // `
wim 0:e5741b4e6a1a 213
wim 0:e5741b4e6a1a 214 //97 0x61 Lower case alphabet
wim 0:e5741b4e6a1a 215 #define C7_a C7_A
wim 0:e5741b4e6a1a 216 #define C7_b C7_B
wim 0:e5741b4e6a1a 217 #define C7_c C7_C
wim 0:e5741b4e6a1a 218 #define C7_d C7_D
wim 0:e5741b4e6a1a 219 #define C7_e C7_E
wim 0:e5741b4e6a1a 220 #define C7_f C7_H
wim 0:e5741b4e6a1a 221
wim 0:e5741b4e6a1a 222 #define C7_g C7_G
wim 0:e5741b4e6a1a 223 #define C7_h C7_H
wim 0:e5741b4e6a1a 224 #define C7_i C7_I
wim 0:e5741b4e6a1a 225 #define C7_j C7_J
wim 0:e5741b4e6a1a 226 #define C7_k C7_K
wim 0:e5741b4e6a1a 227 #define C7_l C7_L
wim 0:e5741b4e6a1a 228 #define C7_m C7_M
wim 0:e5741b4e6a1a 229 //#define C7_n C7_N
wim 0:e5741b4e6a1a 230 #define C7_n (S7_C | S7_E | S7_G)
wim 0:e5741b4e6a1a 231 //#define C7_o C7_O
wim 0:e5741b4e6a1a 232 #define C7_o (S7_C | S7_D | S7_E | S7_G)
wim 0:e5741b4e6a1a 233 #define C7_p C7_P
wim 0:e5741b4e6a1a 234 #define C7_q C7_Q
wim 0:e5741b4e6a1a 235 //#define C7_r C7_R
wim 0:e5741b4e6a1a 236 #define C7_r (S7_E | S7_G)
wim 0:e5741b4e6a1a 237 #define C7_s C7_S
wim 0:e5741b4e6a1a 238 #define C7_t C7_T
wim 0:e5741b4e6a1a 239 #define C7_u C7_U
wim 0:e5741b4e6a1a 240 #define C7_v C7_V
wim 0:e5741b4e6a1a 241 #define C7_w C7_W
wim 0:e5741b4e6a1a 242 #define C7_x C7_X
wim 0:e5741b4e6a1a 243 #define C7_y C7_Y
wim 0:e5741b4e6a1a 244 #define C7_z C7_Z
wim 0:e5741b4e6a1a 245
wim 0:e5741b4e6a1a 246 //123 0x7B
wim 0:e5741b4e6a1a 247 #define C7_CBL (S7_A | S7_D | S7_E | S7_F) // {
wim 0:e5741b4e6a1a 248 #define C7_OR (S7_B | S7_C) // |
wim 0:e5741b4e6a1a 249 #define C7_CBR (S7_A | S7_B | S7_C | S7_D) // }
wim 0:e5741b4e6a1a 250 #define C7_TLD (S7_B | S7_E | S7_G ) // ~
wim 0:e5741b4e6a1a 251 #define C7_DEL (0x000000)
wim 0:e5741b4e6a1a 252
wim 0:e5741b4e6a1a 253
wim 0:e5741b4e6a1a 254 //User Defined Characters (some examples)
wim 0:e5741b4e6a1a 255 #define C7_DGR (S7_A | S7_B | S7_F | S7_G) //Degrees
wim 0:e5741b4e6a1a 256
wim 0:e5741b4e6a1a 257 // Font data selection for transmission to PT6318 memory
wim 0:e5741b4e6a1a 258 #define LO(x) ( x & 0xFF)
wim 0:e5741b4e6a1a 259 #define MD(x) ((x >> 8) & 0xFF)
wim 0:e5741b4e6a1a 260 #define HI(x) ((x >> 16) & 0xFF)
wim 0:e5741b4e6a1a 261
wim 0:e5741b4e6a1a 262 // ASCII Font definition table
wim 0:e5741b4e6a1a 263 //
wim 0:e5741b4e6a1a 264 #define FONT_7S_START 0x20
wim 0:e5741b4e6a1a 265 #define FONT_7S_END 0x7F
wim 0:e5741b4e6a1a 266 //#define FONT_7S_NR_CHARS (FONT_7S_END - FONT_7S_START + 1)
wim 1:a7a518dbca96 267 extern const char FONT_7S[];
wim 0:e5741b4e6a1a 268
wim 0:e5741b4e6a1a 269 #endif