Demo for MAXREFDES99

Dependencies:   MAX7219 mbed

Committer:
pradipv
Date:
Mon Apr 11 16:19:13 2016 +0000
Revision:
3:41bdbc9b3cec
Parent:
2:9fdd01cf0f88
Child:
6:00aabe967e51
version 0.1, updated with 16x16 font data and code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j3 0:6b0161c3e440 1 /******************************************************************//**
j3 0:6b0161c3e440 2 * @file maxrefdes99.cpp
j3 0:6b0161c3e440 3 *
j3 0:6b0161c3e440 4 * @author Justin Jordan
j3 0:6b0161c3e440 5 *
pradipv 3:41bdbc9b3cec 6 * @version 0.1
j3 0:6b0161c3e440 7 *
j3 0:6b0161c3e440 8 * Started: 08JAN16
j3 0:6b0161c3e440 9 *
pradipv 3:41bdbc9b3cec 10 * Updated: 11APR16,Pradip Vatharkar
j3 0:6b0161c3e440 11 *
pradipv 3:41bdbc9b3cec 12 * @brief Source file for maxrefdes99 demo with 5x7 & 16x16 fonts
j3 0:6b0161c3e440 13 ***********************************************************************
j3 0:6b0161c3e440 14 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
j3 0:6b0161c3e440 15 *
j3 0:6b0161c3e440 16 * Permission is hereby granted, free of charge, to any person obtaining a
j3 0:6b0161c3e440 17 * copy of this software and associated documentation files (the "Software"),
j3 0:6b0161c3e440 18 * to deal in the Software without restriction, including without limitation
j3 0:6b0161c3e440 19 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
j3 0:6b0161c3e440 20 * and/or sell copies of the Software, and to permit persons to whom the
j3 0:6b0161c3e440 21 * Software is furnished to do so, subject to the following conditions:
j3 0:6b0161c3e440 22 *
j3 0:6b0161c3e440 23 * The above copyright notice and this permission notice shall be included
j3 0:6b0161c3e440 24 * in all copies or substantial portions of the Software.
j3 0:6b0161c3e440 25 *
j3 0:6b0161c3e440 26 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
j3 0:6b0161c3e440 27 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
j3 0:6b0161c3e440 28 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
j3 0:6b0161c3e440 29 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
j3 0:6b0161c3e440 30 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
j3 0:6b0161c3e440 31 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
j3 0:6b0161c3e440 32 * OTHER DEALINGS IN THE SOFTWARE.
j3 0:6b0161c3e440 33 *
j3 0:6b0161c3e440 34 * Except as contained in this notice, the name of Maxim Integrated
j3 0:6b0161c3e440 35 * Products, Inc. shall not be used except as stated in the Maxim Integrated
j3 0:6b0161c3e440 36 * Products, Inc. Branding Policy.
j3 0:6b0161c3e440 37 *
j3 0:6b0161c3e440 38 * The mere transfer of this software does not imply any licenses
j3 0:6b0161c3e440 39 * of trade secrets, proprietary technology, copyrights, patents,
j3 0:6b0161c3e440 40 * trademarks, maskwork rights, or any other form of intellectual
j3 0:6b0161c3e440 41 * property whatsoever. Maxim Integrated Products, Inc. retains all
j3 0:6b0161c3e440 42 * ownership rights.
j3 0:6b0161c3e440 43 **********************************************************************/
j3 0:6b0161c3e440 44
j3 0:6b0161c3e440 45
j3 0:6b0161c3e440 46 #include "maxrefdes99.h"
j3 0:6b0161c3e440 47
j3 0:6b0161c3e440 48
j3 0:6b0161c3e440 49 //5x7 character bit map
j3 0:6b0161c3e440 50 static const uint8_t font_5x7[95][6] = {
j3 0:6b0161c3e440 51 {0x00,0x00,0x00,0x00,0x00,0x00}, // SPACE
j3 0:6b0161c3e440 52 {0x00,0x00,0x00,0x4F,0x00,0x00}, // !
j3 0:6b0161c3e440 53 {0x00,0x00,0x07,0x00,0x07,0x00}, // "
j3 0:6b0161c3e440 54 {0x00,0x14,0x7F,0x14,0x7F,0x14}, // #
j3 0:6b0161c3e440 55 {0x00,0x24,0x2A,0x7F,0x2A,0x12}, // $
j3 0:6b0161c3e440 56 {0x00,0x23,0x13,0x08,0x64,0x62}, // %
j3 0:6b0161c3e440 57 {0x00,0x36,0x49,0x55,0x22,0x50}, // &
j3 0:6b0161c3e440 58 {0x00,0x00,0x05,0x03,0x00,0x00}, // '
j3 0:6b0161c3e440 59 {0x00,0x00,0x1C,0x22,0x41,0x00}, // (
j3 0:6b0161c3e440 60 {0x00,0x00,0x41,0x22,0x1C,0x00}, // )
j3 0:6b0161c3e440 61 {0x00,0x14,0x08,0x3E,0x08,0x14}, // *
j3 0:6b0161c3e440 62 {0x00,0x08,0x08,0x3E,0x08,0x08}, // +
j3 0:6b0161c3e440 63 {0x00,0x00,0x50,0x30,0x00,0x00}, // ,
j3 0:6b0161c3e440 64 {0x00,0x08,0x08,0x08,0x08,0x08}, // -
j3 0:6b0161c3e440 65 {0x00,0x00,0x60,0x60,0x00,0x00}, // .
j3 0:6b0161c3e440 66 {0x00,0x20,0x10,0x08,0x04,0x02}, // /
j3 0:6b0161c3e440 67 {0x00,0x3E,0x51,0x49,0x45,0x3E}, // 0
j3 0:6b0161c3e440 68 {0x00,0x00,0x42,0x7F,0x40,0x00}, // 1
j3 0:6b0161c3e440 69 {0x00,0x42,0x61,0x51,0x49,0x46}, // 2
j3 0:6b0161c3e440 70 {0x00,0x21,0x41,0x45,0x4B,0x31}, // 3
j3 0:6b0161c3e440 71 {0x00,0x18,0x14,0x12,0x7F,0x10}, // 4
j3 0:6b0161c3e440 72 {0x00,0x27,0x45,0x45,0x45,0x39}, // 5
j3 0:6b0161c3e440 73 {0x00,0x3C,0x4A,0x49,0x49,0x30}, // 6
j3 0:6b0161c3e440 74 {0x00,0x01,0x71,0x09,0x05,0x03}, // 7
j3 0:6b0161c3e440 75 {0x00,0x36,0x49,0x49,0x49,0x36}, // 8
j3 0:6b0161c3e440 76 {0x00,0x06,0x49,0x49,0x29,0x1E}, // 9
j3 0:6b0161c3e440 77 {0x00,0x36,0x36,0x00,0x00,0x00}, // :
j3 0:6b0161c3e440 78 {0x00,0x56,0x36,0x00,0x00,0x00}, // ;
j3 0:6b0161c3e440 79 {0x00,0x08,0x14,0x22,0x41,0x00}, // <
j3 0:6b0161c3e440 80 {0x00,0x14,0x14,0x14,0x14,0x14}, // =
j3 0:6b0161c3e440 81 {0x00,0x00,0x41,0x22,0x14,0x08}, // >
j3 0:6b0161c3e440 82 {0x00,0x02,0x01,0x51,0x09,0x06}, // ?
j3 0:6b0161c3e440 83 {0x00,0x30,0x49,0x79,0x41,0x3E}, // @
j3 0:6b0161c3e440 84 {0x00,0x7E,0x11,0x11,0x11,0x7E}, // A
j3 0:6b0161c3e440 85 {0x00,0x7F,0x49,0x49,0x49,0x36}, // B
j3 0:6b0161c3e440 86 {0x00,0x3E,0x41,0x41,0x41,0x22}, // C
j3 0:6b0161c3e440 87 {0x00,0x7F,0x41,0x41,0x22,0x1C}, // D
j3 0:6b0161c3e440 88 {0x00,0x7F,0x49,0x49,0x49,0x41}, // E
j3 0:6b0161c3e440 89 {0x00,0x7F,0x09,0x09,0x09,0x01}, // F
j3 0:6b0161c3e440 90 {0x00,0x3E,0x41,0x49,0x49,0x7A}, // G
j3 0:6b0161c3e440 91 {0x00,0x7F,0x08,0x08,0x08,0x7F}, // H
j3 0:6b0161c3e440 92 {0x00,0x00,0x41,0x7F,0x41,0x00}, // I
j3 0:6b0161c3e440 93 {0x00,0x20,0x40,0x41,0x3F,0x01}, // J
j3 0:6b0161c3e440 94 {0x00,0x7F,0x08,0x14,0x22,0x41}, // K
j3 0:6b0161c3e440 95 {0x00,0x7F,0x40,0x40,0x40,0x40}, // L
j3 0:6b0161c3e440 96 {0x00,0x7F,0x02,0x0C,0x02,0x7F}, // M
j3 0:6b0161c3e440 97 {0x00,0x7F,0x04,0x08,0x10,0x7F}, // N
j3 0:6b0161c3e440 98 {0x00,0x3E,0x41,0x41,0x41,0x3E}, // O
j3 0:6b0161c3e440 99 {0x00,0x7F,0x09,0x09,0x09,0x06}, // P
j3 0:6b0161c3e440 100 {0x00,0x3E,0x41,0x51,0x21,0x5E}, // Q
j3 0:6b0161c3e440 101 {0x00,0x7F,0x09,0x19,0x29,0x46}, // R
j3 0:6b0161c3e440 102 {0x00,0x46,0x49,0x49,0x49,0x31}, // S
j3 0:6b0161c3e440 103 {0x00,0x01,0x01,0x7F,0x01,0x01}, // T
j3 0:6b0161c3e440 104 {0x00,0x3F,0x40,0x40,0x40,0x3F}, // U
j3 0:6b0161c3e440 105 {0x00,0x1F,0x20,0x40,0x20,0x1F}, // V
j3 0:6b0161c3e440 106 {0x00,0x3F,0x40,0x30,0x40,0x3F}, // W
j3 0:6b0161c3e440 107 {0x00,0x63,0x14,0x08,0x14,0x63}, // X
j3 0:6b0161c3e440 108 {0x00,0x07,0x08,0x70,0x08,0x07}, // Y
j3 0:6b0161c3e440 109 {0x00,0x61,0x51,0x49,0x45,0x43}, // Z
j3 0:6b0161c3e440 110 {0x00,0x00,0x7F,0x41,0x41,0x00}, // [
j3 0:6b0161c3e440 111 {0x00,0x02,0x04,0x08,0x10,0x20}, // backslash
j3 0:6b0161c3e440 112 {0x00,0x00,0x41,0x41,0x7F,0x00}, // ]
j3 0:6b0161c3e440 113 {0x00,0x04,0x02,0x01,0x02,0x04}, // ^
j3 0:6b0161c3e440 114 {0x00,0x40,0x40,0x40,0x40,0x40}, // _
j3 0:6b0161c3e440 115 {0x00,0x00,0x01,0x02,0x04,0x00}, // `
j3 0:6b0161c3e440 116 {0x00,0x20,0x54,0x54,0x54,0x78}, // a
j3 0:6b0161c3e440 117 {0x00,0x7F,0x50,0x48,0x48,0x30}, // b
j3 0:6b0161c3e440 118 {0x00,0x38,0x44,0x44,0x44,0x20}, // c
j3 0:6b0161c3e440 119 {0x00,0x38,0x44,0x44,0x48,0x7F}, // d
j3 0:6b0161c3e440 120 {0x00,0x38,0x54,0x54,0x54,0x18}, // e
j3 0:6b0161c3e440 121 {0x00,0x08,0x7E,0x09,0x01,0x02}, // f
j3 0:6b0161c3e440 122 {0x00,0x0C,0x52,0x52,0x52,0x3E}, // g
j3 0:6b0161c3e440 123 {0x00,0x7F,0x08,0x04,0x04,0x78}, // h
j3 0:6b0161c3e440 124 {0x00,0x00,0x44,0x7D,0x40,0x00}, // i
j3 0:6b0161c3e440 125 {0x00,0x20,0x40,0x44,0x3D,0x00}, // j
j3 0:6b0161c3e440 126 {0x00,0x7F,0x10,0x28,0x44,0x00}, // k
j3 0:6b0161c3e440 127 {0x00,0x00,0x41,0x7F,0x40,0x00}, // l
j3 0:6b0161c3e440 128 {0x00,0x78,0x04,0x58,0x44,0x78}, // m
j3 0:6b0161c3e440 129 {0x00,0x7C,0x08,0x04,0x04,0x78}, // n
j3 0:6b0161c3e440 130 {0x00,0x38,0x44,0x44,0x44,0x38}, // o
j3 0:6b0161c3e440 131 {0x00,0x7C,0x14,0x14,0x14,0x08}, // p
j3 0:6b0161c3e440 132 {0x00,0x08,0x14,0x14,0x18,0x7C}, // q
j3 0:6b0161c3e440 133 {0x00,0x7C,0x08,0x04,0x04,0x08}, // r
j3 0:6b0161c3e440 134 {0x00,0x48,0x54,0x54,0x54,0x20}, // s
j3 0:6b0161c3e440 135 {0x00,0x04,0x3F,0x44,0x40,0x20}, // t
j3 0:6b0161c3e440 136 {0x00,0x3C,0x40,0x40,0x20,0x7C}, // u
j3 0:6b0161c3e440 137 {0x00,0x1C,0x20,0x40,0x20,0x1C}, // v
j3 0:6b0161c3e440 138 {0x00,0x3C,0x40,0x30,0x40,0x3C}, // w
j3 0:6b0161c3e440 139 {0x00,0x44,0x28,0x10,0x28,0x44}, // x
j3 0:6b0161c3e440 140 {0x00,0x0C,0x50,0x50,0x50,0x3C}, // y
j3 0:6b0161c3e440 141 {0x00,0x44,0x64,0x54,0x4C,0x44}, // z
j3 0:6b0161c3e440 142 {0x00,0x00,0x08,0x36,0x41,0x00}, // {
j3 0:6b0161c3e440 143 {0x00,0x00,0x00,0x7F,0x00,0x00}, // |
j3 0:6b0161c3e440 144 {0x00,0x00,0x41,0x36,0x08,0x00}, // }
j3 0:6b0161c3e440 145 {0x00,0x0C,0x02,0x0C,0x10,0x0C} // ~
j3 0:6b0161c3e440 146 };
j3 0:6b0161c3e440 147
pradipv 3:41bdbc9b3cec 148 // 16*16 character bit map for Aerial bold fonts
j3 0:6b0161c3e440 149
pradipv 3:41bdbc9b3cec 150 static const uint8_t Aerial_bold_font_16x16[95][32] = {
pradipv 3:41bdbc9b3cec 151
pradipv 3:41bdbc9b3cec 152 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 153 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 154 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 155 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // SPACE
pradipv 3:41bdbc9b3cec 156
pradipv 3:41bdbc9b3cec 157 {0x0,0x0,0x0,0x0,0x0,0x0,0x3F,0x3F,
pradipv 3:41bdbc9b3cec 158 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 159 0x0,0x0,0x0,0x0,0x0,0x0,0xEC,0xEC,
pradipv 3:41bdbc9b3cec 160 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // !
pradipv 3:41bdbc9b3cec 161
pradipv 3:41bdbc9b3cec 162 {0x0,0x0,0x0,0x0,0x0,0x3C,0x3C,0x0,
pradipv 3:41bdbc9b3cec 163 0x0,0x3C,0x3C,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 164 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 165 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //"
pradipv 3:41bdbc9b3cec 166
pradipv 3:41bdbc9b3cec 167 {0x0,0x0,0x6,0x6,0x6,0xF,0x3F,0x36,
pradipv 3:41bdbc9b3cec 168 0xF,0x3F,0x36,0x6,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 169 0x0,0x0,0x60,0x6C,0xFC,0xF0,0x6C,0xFC,
pradipv 3:41bdbc9b3cec 170 0xF0,0x60,0x60,0x60,0x0,0x0,0x0,0x0},// #
pradipv 3:41bdbc9b3cec 171
pradipv 3:41bdbc9b3cec 172 {0x0,0x0,0x0,0x0,0xE,0x1F,0x33,0x7F,
pradipv 3:41bdbc9b3cec 173 0x31,0x18,0x8,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 174 0x0,0x0,0x0,0x0,0x30,0x38,0x8C,0xFE,
pradipv 3:41bdbc9b3cec 175 0xCC,0xF8,0x70,0x0,0x0,0x0,0x0,0x0}, //$
pradipv 3:41bdbc9b3cec 176
pradipv 3:41bdbc9b3cec 177 {0x0,0x1E,0x3F,0x21,0x21,0x3F,0x1E,0x0,
pradipv 3:41bdbc9b3cec 178 0x3,0x7,0x1C,0x38,0x20,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 179 0x0,0x0,0x0,0x0,0x4,0xC,0x38,0xF0,
pradipv 3:41bdbc9b3cec 180 0xC0,0x0,0x78,0xFC,0x84,0x84,0xFC,0x78},//%
pradipv 3:41bdbc9b3cec 181
pradipv 3:41bdbc9b3cec 182 {0x0,0x0,0x0,0x0,0x1C,0x3F,0x33,0x33,
pradipv 3:41bdbc9b3cec 183 0x33,0x3E,0x1C,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 184 0x0,0x0,0x0,0x70,0xF8,0x8C,0xC,0xCC,
pradipv 3:41bdbc9b3cec 185 0xEC,0x78,0x38,0xF8,0x5C,0x8,0x0,0x0},//&
pradipv 3:41bdbc9b3cec 186
pradipv 3:41bdbc9b3cec 187 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3C,
pradipv 3:41bdbc9b3cec 188 0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 189 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 190 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//'
pradipv 3:41bdbc9b3cec 191
pradipv 3:41bdbc9b3cec 192 {0x0,0x0,0x0,0x0,0x0,0xF,0x3F,0x70,
pradipv 3:41bdbc9b3cec 193 0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 194 0x0,0x0,0x0,0x0,0x0,0xE0,0xF8,0x1C,
pradipv 3:41bdbc9b3cec 195 0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//(
pradipv 3:41bdbc9b3cec 196
pradipv 3:41bdbc9b3cec 197 {0x0,0x0,0x0,0x0,0x0,0x40,0x70,0x3F,
pradipv 3:41bdbc9b3cec 198 0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 199 0x0,0x0,0x0,0x0,0x0,0x4,0x1C,0xF8,
pradipv 3:41bdbc9b3cec 200 0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //}
pradipv 3:41bdbc9b3cec 201
pradipv 3:41bdbc9b3cec 202 {0x0,0x0,0x3,0x3,0x1,0x1,0xF,0xF,
pradipv 3:41bdbc9b3cec 203 0xF,0x1,0x1,0x3,0x3,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 204 0x0,0x0,0x0,0x10,0x30,0xF8,0xE0,0xC0,
pradipv 3:41bdbc9b3cec 205 0xE0,0xF8,0x30,0x10,0x0,0x0,0x0,0x0},//*
pradipv 3:41bdbc9b3cec 206
pradipv 3:41bdbc9b3cec 207 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 208 0x7,0x7,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 209 0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,0xC0,
pradipv 3:41bdbc9b3cec 210 0xF8,0xF8,0xC0,0xC0,0xC0,0x0,0x0,0x0},//+
pradipv 3:41bdbc9b3cec 211
pradipv 3:41bdbc9b3cec 212 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 213 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 214 0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x3C,
pradipv 3:41bdbc9b3cec 215 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //,
pradipv 3:41bdbc9b3cec 216
pradipv 3:41bdbc9b3cec 217 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 218 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 219 0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,
pradipv 3:41bdbc9b3cec 220 0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0,0x0},// -
pradipv 3:41bdbc9b3cec 221
pradipv 3:41bdbc9b3cec 222 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 223 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 224 0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18,
pradipv 3:41bdbc9b3cec 225 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // .
pradipv 3:41bdbc9b3cec 226
pradipv 3:41bdbc9b3cec 227 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 228 0xF,0x3F,0x30,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 229 0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xFC,
pradipv 3:41bdbc9b3cec 230 0xF0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // /
pradipv 3:41bdbc9b3cec 231
pradipv 3:41bdbc9b3cec 232 {0x0,0x0,0x0,0x0,0xF,0x1F,0x38,0x30,
pradipv 3:41bdbc9b3cec 233 0x30,0x38,0x1F,0xF,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 234 0x0,0x0,0x0,0x0,0xF0,0xF8,0x1C,0xC,
pradipv 3:41bdbc9b3cec 235 0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // 0
pradipv 3:41bdbc9b3cec 236
pradipv 3:41bdbc9b3cec 237 {0x0,0x0,0x0,0x0,0x6,0xC,0x18,0x3F,
pradipv 3:41bdbc9b3cec 238 0x3F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 239 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
pradipv 3:41bdbc9b3cec 240 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // 1
pradipv 3:41bdbc9b3cec 241
pradipv 3:41bdbc9b3cec 242 {0x0,0x0,0x0,0x0,0xC,0x1C,0x38,0x30,
pradipv 3:41bdbc9b3cec 243 0x30,0x31,0x1F,0xE,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 244 0x0,0x0,0x0,0x0,0xC,0x1C,0x3C,0x6C,
pradipv 3:41bdbc9b3cec 245 0xEC,0xCC,0x8C,0xC,0x0,0x0,0x0,0x0},// 2
pradipv 3:41bdbc9b3cec 246
pradipv 3:41bdbc9b3cec 247 {0x0,0x0,0x0,0x0,0x8,0x18,0x38,0x33,
pradipv 3:41bdbc9b3cec 248 0x33,0x33,0x3F,0x1C,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 249 0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0xC,
pradipv 3:41bdbc9b3cec 250 0xC,0x9C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // 3
pradipv 3:41bdbc9b3cec 251
pradipv 3:41bdbc9b3cec 252 {0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x7,
pradipv 3:41bdbc9b3cec 253 0x1C,0x3F,0x3F,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 254 0x0,0x0,0x0,0x0,0x70,0xF0,0xB0,0x30,
pradipv 3:41bdbc9b3cec 255 0x30,0xFC,0xFC,0x30,0x0,0x0,0x0,0x0},//4
pradipv 3:41bdbc9b3cec 256
pradipv 3:41bdbc9b3cec 257 {0x0,0x0,0x0,0x0,0x7,0x3F,0x3B,0x33,
pradipv 3:41bdbc9b3cec 258 0x33,0x33,0x31,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 259 0x0,0x0,0x0,0x0,0xB0,0xB8,0x1C,0xC,
pradipv 3:41bdbc9b3cec 260 0xC,0x9C,0xF8,0xF0,0x0,0x0,0x0,0x0}, //5
pradipv 3:41bdbc9b3cec 261
pradipv 3:41bdbc9b3cec 262 {0x0,0x0,0x0,0x0,0x7,0x1F,0x39,0x33,
pradipv 3:41bdbc9b3cec 263 0x33,0x33,0x39,0x18,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 264 0x0,0x0,0x0,0x0,0xE0,0xF8,0x9C,0xC,
pradipv 3:41bdbc9b3cec 265 0xC,0x8C,0xF8,0xF0,0x0,0x0,0x0,0x0}, //6
pradipv 3:41bdbc9b3cec 266
pradipv 3:41bdbc9b3cec 267 {0x0,0x0,0x0,0x0,0x30,0x30,0x30,0x31,
pradipv 3:41bdbc9b3cec 268 0x37,0x3E,0x38,0x30,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 269 0x0,0x0,0x0,0x0,0x0,0x0,0x3C,0xFC,
pradipv 3:41bdbc9b3cec 270 0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // 7
pradipv 3:41bdbc9b3cec 271
pradipv 3:41bdbc9b3cec 272 {0x0,0x0,0x0,0x0,0xE,0x1F,0x31,0x31,
pradipv 3:41bdbc9b3cec 273 0x31,0x31,0x1F,0xE,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 274 0x0,0x0,0x0,0x0,0x70,0xF8,0x8C,0x8C,
pradipv 3:41bdbc9b3cec 275 0x8C,0x8C,0xF8,0x70,0x0,0x0,0x0,0x0}, //8
pradipv 3:41bdbc9b3cec 276
pradipv 3:41bdbc9b3cec 277 {0x0,0x0,0x0,0x0,0xF,0x1F,0x31,0x30,
pradipv 3:41bdbc9b3cec 278 0x30,0x39,0x1F,0x7,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 279 0x0,0x0,0x0,0x0,0x18,0x9C,0xCC,0xCC,
pradipv 3:41bdbc9b3cec 280 0xCC,0x9C,0xF8,0xE0,0x0,0x0,0x0,0x0}, //9
pradipv 3:41bdbc9b3cec 281
pradipv 3:41bdbc9b3cec 282 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,
pradipv 3:41bdbc9b3cec 283 0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 284 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,
pradipv 3:41bdbc9b3cec 285 0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // :
pradipv 3:41bdbc9b3cec 286
pradipv 3:41bdbc9b3cec 287 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,
pradipv 3:41bdbc9b3cec 288 0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 289 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32,
pradipv 3:41bdbc9b3cec 290 0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ;
pradipv 3:41bdbc9b3cec 291
pradipv 3:41bdbc9b3cec 292 {0x0,0x0,0x0,0x0,0x1,0x1,0x3,0x3,
pradipv 3:41bdbc9b3cec 293 0x6,0x6,0xC,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 294 0x0,0x0,0x0,0x80,0xC0,0xC0,0x60,0x60,
pradipv 3:41bdbc9b3cec 295 0x30,0x30,0x18,0x0,0x0,0x0,0x0,0x0}, // <
pradipv 3:41bdbc9b3cec 296
pradipv 3:41bdbc9b3cec 297 {0x0,0x0,0x0,0xC,0xC,0xC,0xC,0xC,
pradipv 3:41bdbc9b3cec 298 0xC,0xC,0xC,0xC,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 299 0x0,0x0,0x0,0xC0,0xC0,0xC0,0xC0,0xC0,
pradipv 3:41bdbc9b3cec 300 0xC0,0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0}, // =
pradipv 3:41bdbc9b3cec 301
pradipv 3:41bdbc9b3cec 302 {0x0,0x0,0x0,0x0,0xC,0x6,0x6,0x3,
pradipv 3:41bdbc9b3cec 303 0x3,0x1,0x1,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 304 0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x60,
pradipv 3:41bdbc9b3cec 305 0x60,0xC0,0xC0,0x80,0x0,0x0,0x0,0x0}, // >
pradipv 3:41bdbc9b3cec 306
pradipv 3:41bdbc9b3cec 307 {0x0,0x0,0x0,0x0,0xC,0x1C,0x38,0x30,
pradipv 3:41bdbc9b3cec 308 0x31,0x33,0x1F,0xE,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 309 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xEC,
pradipv 3:41bdbc9b3cec 310 0xEC,0x80,0x0,0x0,0x0,0x0,0x0,0x0}, // ?
pradipv 3:41bdbc9b3cec 311
pradipv 3:41bdbc9b3cec 312 {0x0,0x0,0x7,0x18,0x27,0x6F,0x58,0x58,
pradipv 3:41bdbc9b3cec 313 0x4F,0x5F,0x38,0x30,0x1F,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 314 0x0,0x0,0xC0,0x20,0x90,0xC8,0xC8,0x88,
pradipv 3:41bdbc9b3cec 315 0xC8,0xC8,0x48,0x90,0x20,0x0,0x0,0x0}, //@
pradipv 3:41bdbc9b3cec 316
pradipv 3:41bdbc9b3cec 317 {0x0,0x0,0x0,0x0,0x1,0xF,0x3E,0x30,
pradipv 3:41bdbc9b3cec 318 0x3E,0xF,0x1,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 319 0x0,0x0,0x4,0x3C,0xF8,0xE0,0x60,0x60,
pradipv 3:41bdbc9b3cec 320 0x60,0xE0,0xF8,0x3C,0x4,0x0,0x0,0x0}, // A
pradipv 3:41bdbc9b3cec 321
pradipv 3:41bdbc9b3cec 322 {0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,0x31,
pradipv 3:41bdbc9b3cec 323 0x31,0x31,0x3F,0x1E,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 324 0x0,0x0,0x0,0xFC,0xFC,0x8C,0x8C,0x8C,
pradipv 3:41bdbc9b3cec 325 0x8C,0x8C,0x8C,0xF8,0x70,0x0,0x0,0x0}, // B
pradipv 3:41bdbc9b3cec 326
pradipv 3:41bdbc9b3cec 327 {0x0,0x0,0x0,0x7,0x1F,0x1C,0x30,0x30,
pradipv 3:41bdbc9b3cec 328 0x30,0x30,0x38,0x1C,0x8,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 329 0x0,0x0,0x0,0xE0,0xF8,0x38,0xC,0xC,
pradipv 3:41bdbc9b3cec 330 0xC,0xC,0x1C,0x38,0x10,0x0,0x0,0x0}, // C
pradipv 3:41bdbc9b3cec 331
pradipv 3:41bdbc9b3cec 332 {0x0,0x0,0x0,0x3F,0x3F,0x30,0x30,0x30,
pradipv 3:41bdbc9b3cec 333 0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 334 0x0,0x0,0x0,0xFC,0xFC,0xC,0xC,0xC,
pradipv 3:41bdbc9b3cec 335 0xC,0xC,0x18,0xF8,0xE0,0x0,0x0,0x0}, // D
pradipv 3:41bdbc9b3cec 336
pradipv 3:41bdbc9b3cec 337 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,
pradipv 3:41bdbc9b3cec 338 0x31,0x31,0x31,0x31,0x31,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 339 0x0,0x0,0x0,0x0,0xFC,0xFC,0x8C,0x8C,
pradipv 3:41bdbc9b3cec 340 0x8C,0x8C,0x8C,0x8C,0x8C,0x0,0x0,0x0}, // E
pradipv 3:41bdbc9b3cec 341
pradipv 3:41bdbc9b3cec 342 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,
pradipv 3:41bdbc9b3cec 343 0x31,0x31,0x31,0x30,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 344 0x0,0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,
pradipv 3:41bdbc9b3cec 345 0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0}, // F
pradipv 3:41bdbc9b3cec 346
pradipv 3:41bdbc9b3cec 347 {0x0,0x0,0x7,0x1F,0x1C,0x30,0x30,0x30,
pradipv 3:41bdbc9b3cec 348 0x30,0x30,0x38,0x1C,0x8,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 349 0x0,0x0,0xE0,0xF8,0x38,0xC,0xC,0xC,
pradipv 3:41bdbc9b3cec 350 0xCC,0xCC,0xDC,0xF8,0xF8,0x0,0x0,0x0}, //G
pradipv 3:41bdbc9b3cec 351
pradipv 3:41bdbc9b3cec 352 {0x0,0x0,0x0,0x3F,0x3F,0x1,0x1,0x1,
pradipv 3:41bdbc9b3cec 353 0x1,0x1,0x1,0x3F,0x3F,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 354 0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,0x80,
pradipv 3:41bdbc9b3cec 355 0x80,0x80,0x80,0xFC,0xFC,0x0,0x0,0x0}, //H
pradipv 3:41bdbc9b3cec 356
pradipv 3:41bdbc9b3cec 357 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3F,
pradipv 3:41bdbc9b3cec 358 0x3F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 359 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
pradipv 3:41bdbc9b3cec 360 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // I
pradipv 3:41bdbc9b3cec 361
pradipv 3:41bdbc9b3cec 362 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 363 0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 364 0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0xC,
pradipv 3:41bdbc9b3cec 365 0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // J
pradipv 3:41bdbc9b3cec 366
pradipv 3:41bdbc9b3cec 367 {0x0,0x0,0x0,0x3F,0x3F,0x0,0x1,0x3,
pradipv 3:41bdbc9b3cec 368 0x7,0xD,0x18,0x30,0x20,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 369 0x0,0x0,0x0,0xFC,0xFC,0xC0,0x80,0x0,
pradipv 3:41bdbc9b3cec 370 0x80,0xE0,0x70,0x3C,0xC,0x0,0x0,0x0}, //K
pradipv 3:41bdbc9b3cec 371
pradipv 3:41bdbc9b3cec 372 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,
pradipv 3:41bdbc9b3cec 373 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 374 0x0,0x0,0x0,0x0,0xFC,0xFC,0xC,0xC,
pradipv 3:41bdbc9b3cec 375 0xC,0xC,0xC,0xC,0x0,0x0,0x0,0x0}, // L
pradipv 3:41bdbc9b3cec 376
pradipv 3:41bdbc9b3cec 377 {0x0,0x0,0x3F,0x3F,0x3C,0xF,0x1,0x0,
pradipv 3:41bdbc9b3cec 378 0x1,0xF,0x3C,0x3F,0x3F,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 379 0x0,0x0,0xFC,0xFC,0x0,0xC0,0xF8,0x3C,
pradipv 3:41bdbc9b3cec 380 0xF8,0xC0,0x0,0xFC,0xFC,0x0,0x0,0x0}, // M
pradipv 3:41bdbc9b3cec 381
pradipv 3:41bdbc9b3cec 382 {0x0,0x0,0x0,0x3F,0x3F,0x1C,0xE,0x3,
pradipv 3:41bdbc9b3cec 383 0x1,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 384 0x0,0x0,0x0,0xFC,0xFC,0x0,0x0,0x80,
pradipv 3:41bdbc9b3cec 385 0xC0,0x70,0x38,0xFC,0xFC,0x0,0x0,0x0}, // N
pradipv 3:41bdbc9b3cec 386
pradipv 3:41bdbc9b3cec 387 {0x0,0x0,0x7,0x1F,0x18,0x30,0x30,0x30,
pradipv 3:41bdbc9b3cec 388 0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 389 0x0,0x0,0xE0,0xF8,0x18,0xC,0xC,0xC,
pradipv 3:41bdbc9b3cec 390 0xC,0xC,0x18,0xF8,0xE0,0x0,0x0,0x0}, // O
pradipv 3:41bdbc9b3cec 391
pradipv 3:41bdbc9b3cec 392 {0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,
pradipv 3:41bdbc9b3cec 393 0x31,0x31,0x3B,0x1F,0xE,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 394 0x0,0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,
pradipv 3:41bdbc9b3cec 395 0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0}, // P
pradipv 3:41bdbc9b3cec 396
pradipv 3:41bdbc9b3cec 397 {0x0,0x0,0x7,0x1F,0x18,0x30,0x30,0x30,
pradipv 3:41bdbc9b3cec 398 0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 399 0x0,0x0,0xE0,0xF8,0x18,0xC,0xC,0x2C,
pradipv 3:41bdbc9b3cec 400 0x3C,0x18,0x3C,0xFE,0xE2,0x0,0x0,0x0},// Q
pradipv 3:41bdbc9b3cec 401
pradipv 3:41bdbc9b3cec 402 {0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,0x31,
pradipv 3:41bdbc9b3cec 403 0x31,0x31,0x3B,0x1F,0xE,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 404 0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,0x80,
pradipv 3:41bdbc9b3cec 405 0xC0,0xE0,0x78,0x3C,0xC,0x4,0x0,0x0}, // R
pradipv 3:41bdbc9b3cec 406
pradipv 3:41bdbc9b3cec 407 {0x0,0x0,0x0,0x0,0xE,0x1F,0x3B,0x33,
pradipv 3:41bdbc9b3cec 408 0x31,0x31,0x39,0x1C,0xC,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 409 0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0x8C,
pradipv 3:41bdbc9b3cec 410 0x8C,0x8C,0xDC,0xF8,0x70,0x0,0x0,0x0}, //S
pradipv 3:41bdbc9b3cec 411
pradipv 3:41bdbc9b3cec 412 {0x0,0x0,0x0,0x30,0x30,0x30,0x30,0x3F,
pradipv 3:41bdbc9b3cec 413 0x3F,0x30,0x30,0x30,0x30,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 414 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
pradipv 3:41bdbc9b3cec 415 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //T
pradipv 3:41bdbc9b3cec 416
pradipv 3:41bdbc9b3cec 417 {0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 418 0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 419 0x0,0x0,0x0,0xF0,0xF8,0x1C,0xC,0xC,
pradipv 3:41bdbc9b3cec 420 0xC,0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0}, //U
pradipv 3:41bdbc9b3cec 421
pradipv 3:41bdbc9b3cec 422 {0x0,0x0,0x20,0x3C,0x1F,0x3,0x0,0x0,
pradipv 3:41bdbc9b3cec 423 0x0,0x3,0x1F,0x3C,0x20,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 424 0x0,0x0,0x0,0x0,0x80,0xE0,0xFC,0x1C,
pradipv 3:41bdbc9b3cec 425 0xFC,0xE0,0x80,0x0,0x0,0x0,0x0,0x0},//V
pradipv 3:41bdbc9b3cec 426
pradipv 3:41bdbc9b3cec 427 {0x0,0x0,0x38,0x3F,0x7,0x0,0x7,0x3F,
pradipv 3:41bdbc9b3cec 428 0x38,0x3F,0x7,0x0,0x7,0x3F,0x38,0x0,
pradipv 3:41bdbc9b3cec 429 0x0,0x0,0x0,0xC0,0xFC,0x3C,0xFC,0xC0,
pradipv 3:41bdbc9b3cec 430 0x0,0xC0,0xFC,0x3C,0xFC,0xC0,0x0,0x0}, // W
pradipv 3:41bdbc9b3cec 431
pradipv 3:41bdbc9b3cec 432 {0x0,0x0,0x0,0x30,0x38,0x1E,0x7,0x3,
pradipv 3:41bdbc9b3cec 433 0x7,0x1E,0x38,0x30,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 434 0x0,0x0,0x0,0xC,0x1C,0x78,0xE0,0xC0,
pradipv 3:41bdbc9b3cec 435 0xE0,0x78,0x1C,0xC,0x0,0x0,0x0,0x0}, // X
pradipv 3:41bdbc9b3cec 436
pradipv 3:41bdbc9b3cec 437 {0x0,0x0,0x0,0x30,0x38,0x1E,0x7,0x1,
pradipv 3:41bdbc9b3cec 438 0x1,0x7,0x1E,0x38,0x30,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 439 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC,
pradipv 3:41bdbc9b3cec 440 0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // Y
pradipv 3:41bdbc9b3cec 441
pradipv 3:41bdbc9b3cec 442 {0x0,0x0,0x0,0x0,0x0,0x30,0x30,0x30,
pradipv 3:41bdbc9b3cec 443 0x33,0x37,0x3E,0x38,0x30,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 444 0x0,0x0,0x0,0x0,0xC,0x1C,0x7C,0xEC,
pradipv 3:41bdbc9b3cec 445 0xCC,0xC,0xC,0xC,0xC,0x0,0x0,0x0}, // Z
pradipv 3:41bdbc9b3cec 446
pradipv 3:41bdbc9b3cec 447 {0x0,0x0,0x0,0x0,0x0,0x0,0x7F,0x7F,
pradipv 3:41bdbc9b3cec 448 0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 449 0x0,0x0,0x0,0x0,0x0,0x0,0xFE,0xFE,
pradipv 3:41bdbc9b3cec 450 0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // [
pradipv 3:41bdbc9b3cec 451
pradipv 3:41bdbc9b3cec 452 {0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x3F,
pradipv 3:41bdbc9b3cec 453 0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 454 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 455 0xF0,0xFC,0xC,0x0,0x0,0x0,0x0,0x0}, // backslash
pradipv 3:41bdbc9b3cec 456
pradipv 3:41bdbc9b3cec 457 {0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x60,
pradipv 3:41bdbc9b3cec 458 0x7F,0x7F,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 459 0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6,
pradipv 3:41bdbc9b3cec 460 0xFE,0xFE,0x0,0x0,0x0,0x0,0x0,0x0}, // ]
pradipv 3:41bdbc9b3cec 461
pradipv 3:41bdbc9b3cec 462 {0x0,0x0,0x0,0x0,0x1,0xF,0x3E,0x70,
pradipv 3:41bdbc9b3cec 463 0x70,0x3E,0xF,0x1,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 464 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 465 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ^
pradipv 3:41bdbc9b3cec 466
pradipv 3:41bdbc9b3cec 467 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 468 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 469 0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6,
pradipv 3:41bdbc9b3cec 470 0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6}, // _
pradipv 3:41bdbc9b3cec 471
pradipv 3:41bdbc9b3cec 472 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,
pradipv 3:41bdbc9b3cec 473 0x30,0x10,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 474 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 475 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // `
pradipv 3:41bdbc9b3cec 476
pradipv 3:41bdbc9b3cec 477 {0x0,0x0,0x0,0x0,0x6,0xE,0xC,0xD,
pradipv 3:41bdbc9b3cec 478 0xD,0xF,0x7,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 479 0x0,0x0,0x0,0x0,0x70,0xF8,0xD8,0x98,
pradipv 3:41bdbc9b3cec 480 0x98,0xF0,0xF8,0x8,0x0,0x0,0x0,0x0}, // a
pradipv 3:41bdbc9b3cec 481
pradipv 3:41bdbc9b3cec 482 {0x0,0x0,0x0,0x0,0x7F,0x7F,0x6,0xC,
pradipv 3:41bdbc9b3cec 483 0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 484 0x0,0x0,0x0,0x0,0xF8,0xF8,0x30,0x18,
pradipv 3:41bdbc9b3cec 485 0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // b
pradipv 3:41bdbc9b3cec 486
pradipv 3:41bdbc9b3cec 487 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
pradipv 3:41bdbc9b3cec 488 0xC,0xE,0x6,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 489 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
pradipv 3:41bdbc9b3cec 490 0x18,0x38,0x30,0x0,0x0,0x0,0x0,0x0}, //c
pradipv 3:41bdbc9b3cec 491
pradipv 3:41bdbc9b3cec 492 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
pradipv 3:41bdbc9b3cec 493 0xC,0x6,0x7F,0x7F,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 494 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
pradipv 3:41bdbc9b3cec 495 0x18,0x30,0xF8,0xF8,0x0,0x0,0x0,0x0}, // d
pradipv 3:41bdbc9b3cec 496
pradipv 3:41bdbc9b3cec 497 {0x0,0x0,0x0,0x0,0x3,0x7,0xD,0xD,
pradipv 3:41bdbc9b3cec 498 0xD,0x7,0x3,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 499 0x0,0x0,0x0,0x0,0xE0,0xF0,0xB8,0x98,
pradipv 3:41bdbc9b3cec 500 0x98,0xB0,0xA0,0x0,0x0,0x0,0x0,0x0}, // e
pradipv 3:41bdbc9b3cec 501
pradipv 3:41bdbc9b3cec 502 {0x0,0x0,0x0,0x0,0xC,0x3F,0x7F,0x6C,
pradipv 3:41bdbc9b3cec 503 0x6C,0x60,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 504 0x0,0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,
pradipv 3:41bdbc9b3cec 505 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // f
pradipv 3:41bdbc9b3cec 506
pradipv 3:41bdbc9b3cec 507 {0x0,0x0,0x0,0x7,0xF,0x1C,0x18,0x18,
pradipv 3:41bdbc9b3cec 508 0xC,0x1F,0x1F,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 509 0x0,0x0,0x0,0xCC,0xEE,0x76,0x36,0x36,
pradipv 3:41bdbc9b3cec 510 0x66,0xFE,0xFC,0x0,0x0,0x0,0x0,0x0}, // g
pradipv 3:41bdbc9b3cec 511
pradipv 3:41bdbc9b3cec 512 {0x0,0x0,0x0,0x0,0x7F,0x7F,0x6,0xC,
pradipv 3:41bdbc9b3cec 513 0xC,0xC,0xF,0x7,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 514 0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0,
pradipv 3:41bdbc9b3cec 515 0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0x0}, //h
pradipv 3:41bdbc9b3cec 516
pradipv 3:41bdbc9b3cec 517 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x37,
pradipv 3:41bdbc9b3cec 518 0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 519 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF8,
pradipv 3:41bdbc9b3cec 520 0xF8,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // i
pradipv 3:41bdbc9b3cec 521
pradipv 3:41bdbc9b3cec 522 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x37,
pradipv 3:41bdbc9b3cec 523 0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 524 0x0,0x0,0x0,0x0,0x0,0x3,0x3,0xFF,
pradipv 3:41bdbc9b3cec 525 0xFE,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // j
pradipv 3:41bdbc9b3cec 526
pradipv 3:41bdbc9b3cec 527 {0x0,0x0,0x0,0x0,0x7F,0x7F,0x1,0x3,
pradipv 3:41bdbc9b3cec 528 0x7,0xC,0x8,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 529 0x0,0x0,0x0,0x0,0xF8,0xF8,0xC0,0x80,
pradipv 3:41bdbc9b3cec 530 0xE0,0xF8,0x18,0x0,0x0,0x0,0x0,0x0}, // k
pradipv 3:41bdbc9b3cec 531
pradipv 3:41bdbc9b3cec 532 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7F,
pradipv 3:41bdbc9b3cec 533 0x7F,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 534 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF8,
pradipv 3:41bdbc9b3cec 535 0xF8,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // l
pradipv 3:41bdbc9b3cec 536
pradipv 3:41bdbc9b3cec 537 {0x0,0x0,0xF,0xF,0x6,0xC,0xC,0xF,
pradipv 3:41bdbc9b3cec 538 0x7,0x6,0xC,0xC,0xF,0x7,0x0,0x0,
pradipv 3:41bdbc9b3cec 539 0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0xF8,
pradipv 3:41bdbc9b3cec 540 0xF8,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0},// m
pradipv 3:41bdbc9b3cec 541
pradipv 3:41bdbc9b3cec 542 0x0,0x0,0x0,0x0,0xF,0xF,0x6,0xC,
pradipv 3:41bdbc9b3cec 543 0xC,0xC,0xF,0x7,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 544 0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0,
pradipv 3:41bdbc9b3cec 545 0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0x0, // n
pradipv 3:41bdbc9b3cec 546
pradipv 3:41bdbc9b3cec 547 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
pradipv 3:41bdbc9b3cec 548 0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 549 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
pradipv 3:41bdbc9b3cec 550 0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // o
pradipv 3:41bdbc9b3cec 551
pradipv 3:41bdbc9b3cec 552 {0x0,0x0,0x0,0x0,0xF,0xF,0x6,0xC,
pradipv 3:41bdbc9b3cec 553 0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 554 0x0,0x0,0x0,0x0,0xFF,0xFF,0x30,0x18,
pradipv 3:41bdbc9b3cec 555 0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // p
pradipv 3:41bdbc9b3cec 556
pradipv 3:41bdbc9b3cec 557 {0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC,
pradipv 3:41bdbc9b3cec 558 0xC,0x6,0xF,0xF,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 559 0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18,
pradipv 3:41bdbc9b3cec 560 0x18,0x30,0xFF,0xFF,0x0,0x0,0x0,0x0}, //q
pradipv 3:41bdbc9b3cec 561
pradipv 3:41bdbc9b3cec 562 {0x0,0x0,0x0,0x0,0x0,0x0,0xF,0xF,
pradipv 3:41bdbc9b3cec 563 0x6,0xC,0xC,0xC,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 564 0x0,0x0,0x0,0x0,0x0,0x0,0xF8,0xF8,
pradipv 3:41bdbc9b3cec 565 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //r
pradipv 3:41bdbc9b3cec 566
pradipv 3:41bdbc9b3cec 567 {0x0,0x0,0x0,0x0,0x7,0xF,0xD,0xD,
pradipv 3:41bdbc9b3cec 568 0xC,0xE,0x6,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 569 0x0,0x0,0x0,0x0,0x30,0xB8,0x98,0x98,
pradipv 3:41bdbc9b3cec 570 0xD8,0xF8,0x70,0x0,0x0,0x0,0x0,0x0}, // s
pradipv 3:41bdbc9b3cec 571
pradipv 3:41bdbc9b3cec 572 {0x0,0x0,0x0,0x0,0x0,0xC,0x3F,0x7F,
pradipv 3:41bdbc9b3cec 573 0xC,0xC,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 574 0x0,0x0,0x0,0x0,0x0,0x0,0xF0,0xF8,
pradipv 3:41bdbc9b3cec 575 0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0}, // t
pradipv 3:41bdbc9b3cec 576
pradipv 3:41bdbc9b3cec 577 {0x0,0x0,0x0,0x0,0xF,0xF,0x0,0x0,
pradipv 3:41bdbc9b3cec 578 0x0,0x0,0xF,0xF,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 579 0x0,0x0,0x0,0x0,0xF0,0xF8,0x18,0x18,
pradipv 3:41bdbc9b3cec 580 0x18,0x30,0xF8,0xF8,0x0,0x0,0x0,0x0}, // u
pradipv 3:41bdbc9b3cec 581
pradipv 3:41bdbc9b3cec 582 {0x0,0x0,0x0,0x0,0x0,0xE,0xF,0x1,
pradipv 3:41bdbc9b3cec 583 0x0,0x1,0xF,0xE,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 584 0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xF8,
pradipv 3:41bdbc9b3cec 585 0x38,0xF8,0xC0,0x0,0x0,0x0,0x0,0x0}, // v
pradipv 3:41bdbc9b3cec 586
pradipv 3:41bdbc9b3cec 587 {0x0,0x0,0xC,0xF,0x3,0x0,0x1,0xF,
pradipv 3:41bdbc9b3cec 588 0xE,0xF,0x1,0x0,0x3,0xF,0xC,0x0,
pradipv 3:41bdbc9b3cec 589 0x0,0x0,0x0,0xC0,0xF8,0x38,0xF8,0xC0,
pradipv 3:41bdbc9b3cec 590 0x0,0xC0,0xF8,0x38,0xF8,0xC0,0x0,0x0}, // w
pradipv 3:41bdbc9b3cec 591
pradipv 3:41bdbc9b3cec 592 {0x0,0x0,0x0,0x0,0x0,0xC,0xE,0x7,
pradipv 3:41bdbc9b3cec 593 0x1,0x7,0xE,0xC,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 594 0x0,0x0,0x0,0x0,0x0,0x18,0x38,0xF0,
pradipv 3:41bdbc9b3cec 595 0xC0,0xF0,0x38,0x18,0x0,0x0,0x0,0x0}, // x
pradipv 3:41bdbc9b3cec 596
pradipv 3:41bdbc9b3cec 597 {0x0,0x0,0x0,0x0,0xC,0xF,0x3,0x0,
pradipv 3:41bdbc9b3cec 598 0x0,0x0,0x3,0xF,0xC,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 599 0x0,0x0,0x0,0x0,0x0,0x3,0xE3,0xFF,
pradipv 3:41bdbc9b3cec 600 0x3E,0xF8,0xE0,0x0,0x0,0x0,0x0,0x0}, // y
pradipv 3:41bdbc9b3cec 601
pradipv 3:41bdbc9b3cec 602 {0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xC,
pradipv 3:41bdbc9b3cec 603 0xC,0xD,0xF,0xF,0xC,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 604 0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x78,
pradipv 3:41bdbc9b3cec 605 0xF8,0xD8,0x98,0x18,0x18,0x0,0x0,0x0}, //z
pradipv 3:41bdbc9b3cec 606
pradipv 3:41bdbc9b3cec 607 {0x0,0x0,0x0,0x0,0x3,0x3,0x7F,0xFC,
pradipv 3:41bdbc9b3cec 608 0xC0,0xC0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 609 0x0,0x0,0x0,0x0,0x0,0x0,0xFC,0xFE,
pradipv 3:41bdbc9b3cec 610 0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // {
pradipv 3:41bdbc9b3cec 611
pradipv 3:41bdbc9b3cec 612 {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF,
pradipv 3:41bdbc9b3cec 613 0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 614 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF,
pradipv 3:41bdbc9b3cec 615 0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // |
pradipv 3:41bdbc9b3cec 616
pradipv 3:41bdbc9b3cec 617 {0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,
pradipv 3:41bdbc9b3cec 618 0xFC,0x7F,0x3,0x3,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 619 0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6,
pradipv 3:41bdbc9b3cec 620 0xFE,0xFC,0x0,0x0,0x0,0x0,0x0,0x0}, // }
pradipv 3:41bdbc9b3cec 621
pradipv 3:41bdbc9b3cec 622 {0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x30,
pradipv 3:41bdbc9b3cec 623 0x38,0x18,0x18,0x18,0x30,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 624 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
pradipv 3:41bdbc9b3cec 625 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ~
pradipv 3:41bdbc9b3cec 626 };
pradipv 3:41bdbc9b3cec 627
pradipv 3:41bdbc9b3cec 628
pradipv 3:41bdbc9b3cec 629 static uint8_t display_buff[1024];
pradipv 3:41bdbc9b3cec 630 static uint8_t display_buff_16x16[32];
pradipv 3:41bdbc9b3cec 631 static uint16_t buff_end =0;
pradipv 3:41bdbc9b3cec 632 static uint8_t disp_buff1[512];
pradipv 3:41bdbc9b3cec 633 static uint8_t disp_buff2[512];
pradipv 3:41bdbc9b3cec 634 static uint8_t temp_buff1[512];
pradipv 3:41bdbc9b3cec 635 static uint8_t temp_buff2[512];
pradipv 3:41bdbc9b3cec 636 //static uint8_t display_buff[256];
j3 0:6b0161c3e440 637 static uint8_t temp_buff[256];
j3 0:6b0161c3e440 638
j3 2:9fdd01cf0f88 639 static const uint8_t DISPLAY_BUFF_START = 0;
j3 2:9fdd01cf0f88 640 static const uint8_t DISPLAY_BUFF_END = 31;
j3 2:9fdd01cf0f88 641
pradipv 3:41bdbc9b3cec 642 //static uint8_t buff_end = 0;
j3 0:6b0161c3e440 643
j3 0:6b0161c3e440 644 static const uint32_t MAX_STRING_LENGTH = 32;
j3 0:6b0161c3e440 645 static char str[MAX_STRING_LENGTH];
j3 0:6b0161c3e440 646
j3 0:6b0161c3e440 647
j3 0:6b0161c3e440 648 //*********************************************************************
j3 0:6b0161c3e440 649 void get_5x7_character(char c, uint8_t *char_buff)
j3 0:6b0161c3e440 650 {
j3 0:6b0161c3e440 651 uint16_t temp_data;
j3 0:6b0161c3e440 652 uint8_t idx, idy;
j3 0:6b0161c3e440 653
j3 0:6b0161c3e440 654 for(idx = 0; idx < 6; idx++)
j3 0:6b0161c3e440 655 {
j3 0:6b0161c3e440 656 //get byte of char from map and flip it, bit 0 becomes bit 7 and so on
j3 0:6b0161c3e440 657 temp_data = (0x00FF & (font_5x7[c - 0x20][idx]));
j3 0:6b0161c3e440 658 for(idy = 0; idy < 8; idy++)
j3 0:6b0161c3e440 659 {
j3 0:6b0161c3e440 660 temp_data = (temp_data | (((temp_data & (1 << idy)) << (15 - (idy*2)))));
j3 0:6b0161c3e440 661 }
j3 0:6b0161c3e440 662 temp_data = ((temp_data >> 8) & 0x00FF);
j3 0:6b0161c3e440 663
j3 0:6b0161c3e440 664 char_buff[idx] = ((uint8_t) temp_data);
j3 0:6b0161c3e440 665 }
j3 0:6b0161c3e440 666 }
j3 0:6b0161c3e440 667
j3 0:6b0161c3e440 668
j3 0:6b0161c3e440 669 //*********************************************************************
j3 2:9fdd01cf0f88 670 void print_char(Max7219 *p_display, uint8_t position99, char c)
j3 0:6b0161c3e440 671 {
j3 0:6b0161c3e440 672 uint8_t idx;
j3 2:9fdd01cf0f88 673 uint8_t char_buff[6];
j3 2:9fdd01cf0f88 674 uint8_t device;
j3 0:6b0161c3e440 675 uint8_t wrap_device;
j3 0:6b0161c3e440 676 uint8_t wrap_idx;
j3 2:9fdd01cf0f88 677 uint8_t buff_start = position99;
j3 0:6b0161c3e440 678
j3 0:6b0161c3e440 679 get_5x7_character(c, char_buff);
j3 2:9fdd01cf0f88 680
j3 2:9fdd01cf0f88 681 if(position99 < 33)
j3 0:6b0161c3e440 682 {
j3 2:9fdd01cf0f88 683 //get device and device_position
j3 2:9fdd01cf0f88 684 if(position99 > 8)
j3 2:9fdd01cf0f88 685 {
j3 2:9fdd01cf0f88 686 if(position99%8)
j3 2:9fdd01cf0f88 687 {
j3 2:9fdd01cf0f88 688 device = ((position99/8) + 1);
j3 2:9fdd01cf0f88 689 position99 = position99%8;
j3 2:9fdd01cf0f88 690 }
j3 2:9fdd01cf0f88 691 else
j3 2:9fdd01cf0f88 692 {
j3 2:9fdd01cf0f88 693 device = position99/8;
j3 2:9fdd01cf0f88 694 position99 = 8;
j3 2:9fdd01cf0f88 695 }
j3 2:9fdd01cf0f88 696 }
j3 2:9fdd01cf0f88 697 else
j3 2:9fdd01cf0f88 698 {
j3 2:9fdd01cf0f88 699 device = 1;
j3 2:9fdd01cf0f88 700 }
j3 2:9fdd01cf0f88 701
j3 2:9fdd01cf0f88 702 //check for dispaly wrap around
j3 2:9fdd01cf0f88 703 //(moving to next 8x8 grid cause character doesn't fit on current one)
j3 2:9fdd01cf0f88 704 if(position99 > 3)
j3 2:9fdd01cf0f88 705 {
j3 2:9fdd01cf0f88 706 wrap_idx = (9 - position99);
j3 2:9fdd01cf0f88 707 if(device < 4)
j3 2:9fdd01cf0f88 708 {
j3 2:9fdd01cf0f88 709 wrap_device = (device + 1);
j3 2:9fdd01cf0f88 710 }
j3 2:9fdd01cf0f88 711 else
j3 2:9fdd01cf0f88 712 {
j3 2:9fdd01cf0f88 713 wrap_device = 1;
j3 2:9fdd01cf0f88 714 }
j3 2:9fdd01cf0f88 715 }
j3 2:9fdd01cf0f88 716 else
j3 2:9fdd01cf0f88 717 {
j3 2:9fdd01cf0f88 718 wrap_idx = 6; //make bigger than idx, not used
j3 2:9fdd01cf0f88 719 wrap_device = 0; //not used
j3 2:9fdd01cf0f88 720 }
j3 2:9fdd01cf0f88 721
j3 2:9fdd01cf0f88 722 //print character to position
j3 2:9fdd01cf0f88 723 for(idx = 0; idx < 6; idx++)
j3 2:9fdd01cf0f88 724 {
j3 2:9fdd01cf0f88 725 //check for wrap
j3 2:9fdd01cf0f88 726 if((idx >= wrap_idx) && (device != 4))
j3 2:9fdd01cf0f88 727 {
j3 2:9fdd01cf0f88 728 p_display->write_digit(wrap_device, ((idx - wrap_idx) + 1), char_buff[idx]);
j3 2:9fdd01cf0f88 729 }
j3 2:9fdd01cf0f88 730 else
j3 2:9fdd01cf0f88 731 {
j3 2:9fdd01cf0f88 732 p_display->write_digit(device, (position99 + idx), char_buff[idx]);
j3 2:9fdd01cf0f88 733 }
j3 2:9fdd01cf0f88 734
j3 2:9fdd01cf0f88 735 buff_end = ((buff_start - 1) + idx);
j3 2:9fdd01cf0f88 736 display_buff[buff_end] = char_buff[idx];
j3 2:9fdd01cf0f88 737 }
j3 0:6b0161c3e440 738 }
j3 0:6b0161c3e440 739 else
j3 0:6b0161c3e440 740 {
j3 2:9fdd01cf0f88 741 for(idx = 0; idx < 6; idx++)
j3 2:9fdd01cf0f88 742 {
j3 2:9fdd01cf0f88 743 buff_end = ((buff_start - 1) + idx);
j3 2:9fdd01cf0f88 744 display_buff[buff_end] = char_buff[idx];
j3 2:9fdd01cf0f88 745 }
j3 0:6b0161c3e440 746 }
j3 0:6b0161c3e440 747 }
j3 0:6b0161c3e440 748
j3 0:6b0161c3e440 749
j3 0:6b0161c3e440 750 //*********************************************************************
j3 0:6b0161c3e440 751 void print_string(Max7219 *p_display, uint8_t position, const char *s)
j3 0:6b0161c3e440 752 {
j3 0:6b0161c3e440 753 uint8_t idx = 0;
j3 0:6b0161c3e440 754
j3 0:6b0161c3e440 755 while(s[idx] != '\0')
j3 0:6b0161c3e440 756 {
j3 0:6b0161c3e440 757 print_char(p_display, (position + (idx*6)), s[idx]);
j3 0:6b0161c3e440 758 idx++;
j3 0:6b0161c3e440 759 }
j3 0:6b0161c3e440 760 }
j3 0:6b0161c3e440 761
j3 0:6b0161c3e440 762
j3 0:6b0161c3e440 763 //*********************************************************************
j3 2:9fdd01cf0f88 764 void shift_display_right(Max7219 *p_display, uint8_t count, uint8_t ms_delay)
j3 0:6b0161c3e440 765 {
j3 0:6b0161c3e440 766 uint16_t idx, idy;
j3 2:9fdd01cf0f88 767 uint8_t position99;
j3 0:6b0161c3e440 768
j3 0:6b0161c3e440 769 for(idx = 0; idx < count; idx++)
j3 0:6b0161c3e440 770 {
j3 2:9fdd01cf0f88 771 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:6b0161c3e440 772 {
j3 2:9fdd01cf0f88 773 if(idy == buff_end)
j3 0:6b0161c3e440 774 {
j3 0:6b0161c3e440 775 temp_buff[0] = display_buff[idy];
j3 0:6b0161c3e440 776 }
j3 0:6b0161c3e440 777 else
j3 0:6b0161c3e440 778 {
j3 0:6b0161c3e440 779 temp_buff[idy + 1] = display_buff[idy];
j3 0:6b0161c3e440 780 }
j3 0:6b0161c3e440 781 }
j3 0:6b0161c3e440 782
j3 2:9fdd01cf0f88 783 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:6b0161c3e440 784 {
j3 0:6b0161c3e440 785 //save shifted display in buffer
j3 0:6b0161c3e440 786 display_buff[idy] = temp_buff[idy];
j3 0:6b0161c3e440 787
j3 2:9fdd01cf0f88 788 if(idy <= DISPLAY_BUFF_END)
j3 0:6b0161c3e440 789 {
j3 2:9fdd01cf0f88 790 position99 = ((idy - DISPLAY_BUFF_START) + 1);
j3 2:9fdd01cf0f88 791 if(position99 > 24)
j3 0:6b0161c3e440 792 {
j3 2:9fdd01cf0f88 793 if(position99 % 8)
j3 0:6b0161c3e440 794 {
j3 2:9fdd01cf0f88 795 position99 = position99 % 8;
j3 0:6b0161c3e440 796 }
j3 0:6b0161c3e440 797 else
j3 0:6b0161c3e440 798 {
j3 2:9fdd01cf0f88 799 position99 = 8;
j3 0:6b0161c3e440 800 }
j3 2:9fdd01cf0f88 801 p_display->write_digit(4, position99, display_buff[idy]);
j3 0:6b0161c3e440 802 }
j3 2:9fdd01cf0f88 803 else if(position99 > 16)
j3 0:6b0161c3e440 804 {
j3 2:9fdd01cf0f88 805 if(position99 % 8)
j3 0:6b0161c3e440 806 {
j3 2:9fdd01cf0f88 807 position99 = position99 % 8;
j3 0:6b0161c3e440 808 }
j3 0:6b0161c3e440 809 else
j3 0:6b0161c3e440 810 {
j3 2:9fdd01cf0f88 811 position99 = 8;
j3 0:6b0161c3e440 812 }
j3 2:9fdd01cf0f88 813 p_display->write_digit(3, position99, display_buff[idy]);
j3 0:6b0161c3e440 814 }
j3 2:9fdd01cf0f88 815 else if(position99 > 8)
j3 0:6b0161c3e440 816 {
j3 2:9fdd01cf0f88 817 if(position99 % 8)
j3 0:6b0161c3e440 818 {
j3 2:9fdd01cf0f88 819 position99 = position99 % 8;
j3 0:6b0161c3e440 820 }
j3 0:6b0161c3e440 821 else
j3 0:6b0161c3e440 822 {
j3 2:9fdd01cf0f88 823 position99 = 8;
j3 0:6b0161c3e440 824 }
j3 2:9fdd01cf0f88 825 p_display->write_digit(2, position99, display_buff[idy]);
j3 0:6b0161c3e440 826 }
j3 0:6b0161c3e440 827 else
j3 0:6b0161c3e440 828 {
j3 2:9fdd01cf0f88 829 p_display->write_digit(1, position99, display_buff[idy]);
j3 0:6b0161c3e440 830 }
j3 0:6b0161c3e440 831 }
j3 0:6b0161c3e440 832 }
j3 2:9fdd01cf0f88 833
j3 2:9fdd01cf0f88 834 wait_ms(ms_delay);
j3 0:6b0161c3e440 835 }
j3 0:6b0161c3e440 836 }
j3 0:6b0161c3e440 837
j3 0:6b0161c3e440 838
j3 2:9fdd01cf0f88 839 //*********************************************************************
j3 2:9fdd01cf0f88 840 void shift_display_left(Max7219 *p_display, uint8_t count, uint8_t ms_delay)
j3 0:6b0161c3e440 841 {
j3 0:6b0161c3e440 842 uint16_t idx, idy;
j3 2:9fdd01cf0f88 843 uint8_t position99;
j3 0:6b0161c3e440 844
j3 0:6b0161c3e440 845 for(idx = 0; idx < count; idx++)
j3 0:6b0161c3e440 846 {
j3 2:9fdd01cf0f88 847 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:6b0161c3e440 848 {
j3 0:6b0161c3e440 849 if(idy == 0)
j3 0:6b0161c3e440 850 {
j3 2:9fdd01cf0f88 851 temp_buff[buff_end] = display_buff[idy];
j3 0:6b0161c3e440 852 }
j3 0:6b0161c3e440 853 else
j3 0:6b0161c3e440 854 {
j3 0:6b0161c3e440 855 temp_buff[idy - 1] = display_buff[idy];
j3 0:6b0161c3e440 856 }
j3 0:6b0161c3e440 857 }
j3 0:6b0161c3e440 858
j3 2:9fdd01cf0f88 859 for(idy = 0; idy < (buff_end + 1); idy++)
j3 0:6b0161c3e440 860 {
j3 0:6b0161c3e440 861 //save shifted display in buffer
j3 0:6b0161c3e440 862 display_buff[idy] = temp_buff[idy];
j3 0:6b0161c3e440 863
j3 2:9fdd01cf0f88 864 if(idy <= DISPLAY_BUFF_END)
j3 0:6b0161c3e440 865 {
j3 2:9fdd01cf0f88 866 position99 = ((idy - DISPLAY_BUFF_START) + 1);
j3 2:9fdd01cf0f88 867 if(position99 > 24)
j3 0:6b0161c3e440 868 {
j3 2:9fdd01cf0f88 869 if(position99 % 8)
j3 0:6b0161c3e440 870 {
j3 2:9fdd01cf0f88 871 position99 = position99 % 8;
j3 0:6b0161c3e440 872 }
j3 0:6b0161c3e440 873 else
j3 0:6b0161c3e440 874 {
j3 2:9fdd01cf0f88 875 position99 = 8;
j3 0:6b0161c3e440 876 }
j3 2:9fdd01cf0f88 877 p_display->write_digit(4, position99, display_buff[idy]);
j3 0:6b0161c3e440 878 }
j3 2:9fdd01cf0f88 879 else if(position99 > 16)
j3 0:6b0161c3e440 880 {
j3 2:9fdd01cf0f88 881 if(position99 % 8)
j3 0:6b0161c3e440 882 {
j3 2:9fdd01cf0f88 883 position99 = position99 % 8;
j3 0:6b0161c3e440 884 }
j3 0:6b0161c3e440 885 else
j3 0:6b0161c3e440 886 {
j3 2:9fdd01cf0f88 887 position99 = 8;
j3 0:6b0161c3e440 888 }
j3 2:9fdd01cf0f88 889 p_display->write_digit(3, position99, display_buff[idy]);
j3 0:6b0161c3e440 890 }
j3 2:9fdd01cf0f88 891 else if(position99 > 8)
j3 0:6b0161c3e440 892 {
j3 2:9fdd01cf0f88 893 if(position99 % 8)
j3 0:6b0161c3e440 894 {
j3 2:9fdd01cf0f88 895 position99 = position99 % 8;
j3 0:6b0161c3e440 896 }
j3 0:6b0161c3e440 897 else
j3 0:6b0161c3e440 898 {
j3 2:9fdd01cf0f88 899 position99 = 8;
j3 0:6b0161c3e440 900 }
j3 2:9fdd01cf0f88 901 p_display->write_digit(2, position99, display_buff[idy]);
j3 0:6b0161c3e440 902 }
j3 0:6b0161c3e440 903 else
j3 0:6b0161c3e440 904 {
j3 2:9fdd01cf0f88 905 p_display->write_digit(1, position99, display_buff[idy]);
j3 0:6b0161c3e440 906 }
j3 0:6b0161c3e440 907 }
j3 0:6b0161c3e440 908 }
j3 2:9fdd01cf0f88 909
j3 2:9fdd01cf0f88 910 wait_ms(ms_delay);
j3 0:6b0161c3e440 911 }
j3 0:6b0161c3e440 912 }
j3 0:6b0161c3e440 913
j3 0:6b0161c3e440 914
j3 0:6b0161c3e440 915 //*********************************************************************
j3 0:6b0161c3e440 916 void quad_all_on(Max7219 *p_display, uint8_t quad)
j3 0:6b0161c3e440 917 {
j3 0:6b0161c3e440 918 if(quad > 1)
j3 0:6b0161c3e440 919 {
j3 0:6b0161c3e440 920 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:6b0161c3e440 921 {
j3 0:6b0161c3e440 922 display_buff[((quad - 1)*8) + DISPLAY_BUFF_START + idx] = 0xFF;
j3 0:6b0161c3e440 923 }
j3 0:6b0161c3e440 924 }
j3 0:6b0161c3e440 925 else
j3 0:6b0161c3e440 926 {
j3 0:6b0161c3e440 927 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:6b0161c3e440 928 {
j3 0:6b0161c3e440 929 display_buff[idx + DISPLAY_BUFF_START] = 0xFF;
j3 0:6b0161c3e440 930 }
j3 0:6b0161c3e440 931 }
j3 2:9fdd01cf0f88 932
j3 2:9fdd01cf0f88 933 if(buff_end < (quad * 8))
j3 2:9fdd01cf0f88 934 {
j3 2:9fdd01cf0f88 935 buff_end = (quad * 8);
j3 2:9fdd01cf0f88 936 }
j3 0:6b0161c3e440 937
j3 0:6b0161c3e440 938 p_display->device_all_on(quad);
j3 0:6b0161c3e440 939 }
j3 0:6b0161c3e440 940
j3 0:6b0161c3e440 941
j3 0:6b0161c3e440 942 //*********************************************************************
j3 0:6b0161c3e440 943 void quad_all_off(Max7219 *p_display, uint8_t quad)
j3 0:6b0161c3e440 944 {
j3 0:6b0161c3e440 945 if(quad > 1)
j3 0:6b0161c3e440 946 {
j3 0:6b0161c3e440 947 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:6b0161c3e440 948 {
j3 0:6b0161c3e440 949 display_buff[((quad - 1)*8) + DISPLAY_BUFF_START + idx] = 0;
j3 0:6b0161c3e440 950 }
j3 0:6b0161c3e440 951 }
j3 0:6b0161c3e440 952 else
j3 0:6b0161c3e440 953 {
j3 0:6b0161c3e440 954 for(uint8_t idx = 0; idx < 8; idx++)
j3 0:6b0161c3e440 955 {
j3 0:6b0161c3e440 956 display_buff[idx + DISPLAY_BUFF_START] = 0;
j3 0:6b0161c3e440 957 }
j3 0:6b0161c3e440 958 }
j3 2:9fdd01cf0f88 959
j3 2:9fdd01cf0f88 960 //is buff_end in the quad?
j3 2:9fdd01cf0f88 961 if((((quad - 1) * 8) < buff_end) && ((quad * 8) > buff_end))
j3 2:9fdd01cf0f88 962 {
j3 2:9fdd01cf0f88 963 buff_end = ((quad - 1) * 8);
j3 2:9fdd01cf0f88 964 }
j3 2:9fdd01cf0f88 965 //leave it alone otherwise
j3 0:6b0161c3e440 966
j3 0:6b0161c3e440 967 p_display->device_all_off(quad);
j3 0:6b0161c3e440 968 }
j3 0:6b0161c3e440 969
j3 0:6b0161c3e440 970
j3 0:6b0161c3e440 971 //*********************************************************************
j3 0:6b0161c3e440 972 void all_on(Max7219 *p_display)
j3 0:6b0161c3e440 973 {
j3 2:9fdd01cf0f88 974 for(uint16_t idx = 0; idx < 32; idx++)
j3 0:6b0161c3e440 975 {
j3 0:6b0161c3e440 976 display_buff[idx] = 0xFF;
j3 0:6b0161c3e440 977 }
j3 2:9fdd01cf0f88 978
j3 2:9fdd01cf0f88 979 if(buff_end < 32)
j3 2:9fdd01cf0f88 980 {
j3 2:9fdd01cf0f88 981 buff_end = 32;
j3 2:9fdd01cf0f88 982 }
j3 0:6b0161c3e440 983
j3 0:6b0161c3e440 984 p_display->display_all_on();
j3 0:6b0161c3e440 985 }
j3 0:6b0161c3e440 986
j3 0:6b0161c3e440 987
j3 0:6b0161c3e440 988 //*********************************************************************
j3 0:6b0161c3e440 989 void all_off(Max7219 *p_display)
j3 0:6b0161c3e440 990 {
j3 2:9fdd01cf0f88 991 for(uint16_t idx = 0; idx < 32; idx++)
j3 0:6b0161c3e440 992 {
j3 0:6b0161c3e440 993 display_buff[idx] = 0;
j3 0:6b0161c3e440 994 }
j3 2:9fdd01cf0f88 995
j3 2:9fdd01cf0f88 996 if(buff_end < 32)
j3 2:9fdd01cf0f88 997 {
j3 2:9fdd01cf0f88 998 buff_end = 0;
j3 2:9fdd01cf0f88 999 }
j3 0:6b0161c3e440 1000
j3 0:6b0161c3e440 1001 p_display->display_all_off();
j3 0:6b0161c3e440 1002 }
j3 0:6b0161c3e440 1003
j3 0:6b0161c3e440 1004
j3 0:6b0161c3e440 1005 //*********************************************************************
j3 0:6b0161c3e440 1006 void demo(Max7219 *display, max7219_configuration_t display_config, bool endless_loop)
j3 0:6b0161c3e440 1007 {
j3 0:6b0161c3e440 1008 uint8_t position = 1;
j3 0:6b0161c3e440 1009 uint8_t idx = 0;
j3 0:6b0161c3e440 1010
j3 0:6b0161c3e440 1011 do
j3 0:6b0161c3e440 1012 {
j3 0:6b0161c3e440 1013 all_off(display);
j3 0:6b0161c3e440 1014
j3 0:6b0161c3e440 1015 if(position > 25)
j3 0:6b0161c3e440 1016 {
j3 0:6b0161c3e440 1017 position = 1;
j3 0:6b0161c3e440 1018 }
j3 0:6b0161c3e440 1019 printf("\nPosition = %d\n", position);
j3 0:6b0161c3e440 1020
j3 0:6b0161c3e440 1021 for(idx = 0x20; idx < 0x7F; idx++)
j3 0:6b0161c3e440 1022 {
j3 0:6b0161c3e440 1023 print_char(display, position, (char) idx);
j3 0:6b0161c3e440 1024 wait(0.25);
j3 0:6b0161c3e440 1025 }
j3 0:6b0161c3e440 1026 position = (position + 8);
j3 0:6b0161c3e440 1027
j3 0:6b0161c3e440 1028 all_on(display);
j3 0:6b0161c3e440 1029
j3 0:6b0161c3e440 1030 for(idx = 0; idx < 16; idx++)
j3 0:6b0161c3e440 1031 {
j3 0:6b0161c3e440 1032 display_config.intensity = 15 - idx;
j3 0:6b0161c3e440 1033 display->init_display(display_config);
j3 0:6b0161c3e440 1034 wait_ms(50);
j3 0:6b0161c3e440 1035 }
j3 0:6b0161c3e440 1036
j3 0:6b0161c3e440 1037 for(idx = 0; idx < 16; idx++)
j3 0:6b0161c3e440 1038 {
j3 0:6b0161c3e440 1039 display_config.intensity = idx;
j3 0:6b0161c3e440 1040 display->init_display(display_config);
j3 0:6b0161c3e440 1041 wait_ms(100);
j3 0:6b0161c3e440 1042 }
j3 0:6b0161c3e440 1043
j3 0:6b0161c3e440 1044 wait_ms(100);
j3 0:6b0161c3e440 1045 all_off(display);
j3 0:6b0161c3e440 1046 wait_ms(100);
j3 0:6b0161c3e440 1047
j3 0:6b0161c3e440 1048 quad_all_on(display, 1);
j3 0:6b0161c3e440 1049 wait_ms(500);
j3 0:6b0161c3e440 1050 shift_display_right(display, 32, 100);
j3 0:6b0161c3e440 1051 shift_display_left(display, 32, 100);
j3 0:6b0161c3e440 1052 all_off(display);
j3 0:6b0161c3e440 1053 wait_ms(100);
j3 0:6b0161c3e440 1054
j3 0:6b0161c3e440 1055 print_string(display, 1, "Maxim");
j3 0:6b0161c3e440 1056 wait_ms(100);
j3 0:6b0161c3e440 1057 shift_display_right(display, 32, 100);
j3 0:6b0161c3e440 1058 shift_display_left(display, 32, 100);
j3 0:6b0161c3e440 1059 wait_ms(100);
j3 0:6b0161c3e440 1060 }
j3 0:6b0161c3e440 1061 while(endless_loop);
j3 0:6b0161c3e440 1062 }
j3 0:6b0161c3e440 1063
j3 0:6b0161c3e440 1064
j3 0:6b0161c3e440 1065 //*********************************************************************
j3 0:6b0161c3e440 1066 void endless_scroll_display(Max7219 *display, uint32_t scroll_right)
j3 0:6b0161c3e440 1067 {
j3 0:6b0161c3e440 1068 if(scroll_right)
j3 0:6b0161c3e440 1069 {
j3 0:6b0161c3e440 1070 printf("\nScrolling Right\n");
j3 0:6b0161c3e440 1071 while(1)
j3 0:6b0161c3e440 1072 {
j3 0:6b0161c3e440 1073 shift_display_right(display, 1, 100);
j3 0:6b0161c3e440 1074 }
j3 0:6b0161c3e440 1075 }
j3 0:6b0161c3e440 1076 else
j3 0:6b0161c3e440 1077 {
j3 0:6b0161c3e440 1078 printf("\nScrolling Left\n");
j3 0:6b0161c3e440 1079 while(1)
j3 0:6b0161c3e440 1080 {
j3 0:6b0161c3e440 1081 shift_display_left(display, 1, 100);
j3 0:6b0161c3e440 1082 }
j3 0:6b0161c3e440 1083 }
j3 0:6b0161c3e440 1084 }
j3 0:6b0161c3e440 1085
pradipv 3:41bdbc9b3cec 1086 /********************************************************************/
pradipv 3:41bdbc9b3cec 1087 void get_16x16_character(char c, uint8_t *char_buff)
pradipv 3:41bdbc9b3cec 1088 {
pradipv 3:41bdbc9b3cec 1089 uint8_t idx;
pradipv 3:41bdbc9b3cec 1090
pradipv 3:41bdbc9b3cec 1091 for(idx = 0; idx < 32; idx++)
pradipv 3:41bdbc9b3cec 1092 {
pradipv 3:41bdbc9b3cec 1093 //get byte of char from map & store in buffer
pradipv 3:41bdbc9b3cec 1094 char_buff[idx] = Aerial_bold_font_16x16[c - 0x20][idx];
pradipv 3:41bdbc9b3cec 1095 }
pradipv 3:41bdbc9b3cec 1096 }
pradipv 3:41bdbc9b3cec 1097
pradipv 3:41bdbc9b3cec 1098
pradipv 3:41bdbc9b3cec 1099 void print_char_16x16(Max7219 *p_display, uint16_t position, char c)
pradipv 3:41bdbc9b3cec 1100 {
pradipv 3:41bdbc9b3cec 1101
pradipv 3:41bdbc9b3cec 1102 uint8_t idx;
pradipv 3:41bdbc9b3cec 1103 uint8_t char_buff[32];
pradipv 3:41bdbc9b3cec 1104 uint8_t device;
pradipv 3:41bdbc9b3cec 1105 uint16_t buff_start = position;
pradipv 3:41bdbc9b3cec 1106
pradipv 3:41bdbc9b3cec 1107 get_16x16_character(c, char_buff);
pradipv 3:41bdbc9b3cec 1108
pradipv 3:41bdbc9b3cec 1109 for(device =1;device<5;device++)
pradipv 3:41bdbc9b3cec 1110 {
pradipv 3:41bdbc9b3cec 1111 for(idx = 0; idx < 8; idx++)
pradipv 3:41bdbc9b3cec 1112 {
pradipv 3:41bdbc9b3cec 1113 p_display->write_digit(device, idx+1,char_buff[idx+(device-1)*8]);
pradipv 3:41bdbc9b3cec 1114
pradipv 3:41bdbc9b3cec 1115 //get index for display buffer, keeps image of display for shifting
pradipv 3:41bdbc9b3cec 1116 buff_end = (device - 1) * 8 + idx + buff_start;
pradipv 3:41bdbc9b3cec 1117
pradipv 3:41bdbc9b3cec 1118 //wrap buff back around
pradipv 3:41bdbc9b3cec 1119 if(buff_end > 1023)
pradipv 3:41bdbc9b3cec 1120 {
pradipv 3:41bdbc9b3cec 1121 buff_end -= 1023;
pradipv 3:41bdbc9b3cec 1122 }
pradipv 3:41bdbc9b3cec 1123 display_buff[buff_end] = char_buff[idx+(device-1)*8];
pradipv 3:41bdbc9b3cec 1124
pradipv 3:41bdbc9b3cec 1125 }
pradipv 3:41bdbc9b3cec 1126 }
pradipv 3:41bdbc9b3cec 1127 buff_end +=1;
pradipv 3:41bdbc9b3cec 1128 //Arrange single character data in upper and lower row
pradipv 3:41bdbc9b3cec 1129 for(idx=0;idx<16;idx++)
pradipv 3:41bdbc9b3cec 1130 {
pradipv 3:41bdbc9b3cec 1131 disp_buff1[idx] = display_buff[idx];
pradipv 3:41bdbc9b3cec 1132 disp_buff2[idx] = display_buff[idx+16];
pradipv 3:41bdbc9b3cec 1133 }
pradipv 3:41bdbc9b3cec 1134
pradipv 3:41bdbc9b3cec 1135 }
pradipv 3:41bdbc9b3cec 1136 void print_string_16x16(Max7219 *p_display, char *s)
pradipv 3:41bdbc9b3cec 1137 {
pradipv 3:41bdbc9b3cec 1138 uint16_t idx=0,idy=0;
pradipv 3:41bdbc9b3cec 1139
pradipv 3:41bdbc9b3cec 1140 while(s[idx] != '\0')
pradipv 3:41bdbc9b3cec 1141 {
pradipv 3:41bdbc9b3cec 1142 print_char_16x16(p_display, (idx*32), s[idx]);
pradipv 3:41bdbc9b3cec 1143 idx++;
pradipv 3:41bdbc9b3cec 1144 wait_ms(200);
pradipv 3:41bdbc9b3cec 1145 }
pradipv 3:41bdbc9b3cec 1146
pradipv 3:41bdbc9b3cec 1147 //Arrange character data in upper and lower row data
pradipv 3:41bdbc9b3cec 1148 for (idy=0;idy<buff_end/32;idy++)
pradipv 3:41bdbc9b3cec 1149 {
pradipv 3:41bdbc9b3cec 1150 for(idx=0;idx<16;idx++)
pradipv 3:41bdbc9b3cec 1151 {
pradipv 3:41bdbc9b3cec 1152 disp_buff1[idx+16*idy] = display_buff[idx+32*idy];
pradipv 3:41bdbc9b3cec 1153 disp_buff2[idx+16*idy] = display_buff[idx+16+32*idy];
pradipv 3:41bdbc9b3cec 1154 }
pradipv 3:41bdbc9b3cec 1155 }
pradipv 3:41bdbc9b3cec 1156
pradipv 3:41bdbc9b3cec 1157 // Clear buffer
pradipv 3:41bdbc9b3cec 1158 for(idx=0;idx<1024;idx++)
pradipv 3:41bdbc9b3cec 1159 display_buff[idx] = 0;
pradipv 3:41bdbc9b3cec 1160
pradipv 3:41bdbc9b3cec 1161 }
pradipv 3:41bdbc9b3cec 1162
pradipv 3:41bdbc9b3cec 1163 //*********************************************************************
pradipv 3:41bdbc9b3cec 1164 void shift_display_right_16x16(Max7219 *p_display, uint8_t count, uint8_t delay)
pradipv 3:41bdbc9b3cec 1165 {
pradipv 3:41bdbc9b3cec 1166 uint16_t idx, idy;
pradipv 3:41bdbc9b3cec 1167 uint8_t position;
pradipv 3:41bdbc9b3cec 1168 int device;
pradipv 3:41bdbc9b3cec 1169
pradipv 3:41bdbc9b3cec 1170 for(idx = 0; idx < count; idx++)
pradipv 3:41bdbc9b3cec 1171 {
pradipv 3:41bdbc9b3cec 1172
pradipv 3:41bdbc9b3cec 1173 for(idy = 0; idy < buff_end/2; idy++)
pradipv 3:41bdbc9b3cec 1174 {
pradipv 3:41bdbc9b3cec 1175 if(idy ==(buff_end/2-1))
pradipv 3:41bdbc9b3cec 1176 {
pradipv 3:41bdbc9b3cec 1177 temp_buff1[0] = disp_buff1[(buff_end/2) - 1];
pradipv 3:41bdbc9b3cec 1178 temp_buff2[0] = disp_buff2[(buff_end/2) - 1];
pradipv 3:41bdbc9b3cec 1179
pradipv 3:41bdbc9b3cec 1180 }
pradipv 3:41bdbc9b3cec 1181 else
pradipv 3:41bdbc9b3cec 1182 {
pradipv 3:41bdbc9b3cec 1183 temp_buff1[idy + 1] = disp_buff1[idy];
pradipv 3:41bdbc9b3cec 1184 temp_buff2[idy + 1] = disp_buff2[idy];
pradipv 3:41bdbc9b3cec 1185 }
pradipv 3:41bdbc9b3cec 1186
pradipv 3:41bdbc9b3cec 1187 }
pradipv 3:41bdbc9b3cec 1188 for(idy = 0; idy < buff_end/2; idy++)
pradipv 3:41bdbc9b3cec 1189 {
pradipv 3:41bdbc9b3cec 1190 disp_buff1[idy] = temp_buff1[idy];
pradipv 3:41bdbc9b3cec 1191 disp_buff2[idy] = temp_buff2[idy];
pradipv 3:41bdbc9b3cec 1192
pradipv 3:41bdbc9b3cec 1193 }
pradipv 3:41bdbc9b3cec 1194 for(idy = 0; idy < 16; idy++)
pradipv 3:41bdbc9b3cec 1195 {
pradipv 3:41bdbc9b3cec 1196 display_buff_16x16[idy] = disp_buff1[idy];
pradipv 3:41bdbc9b3cec 1197 display_buff_16x16[idy+16] = disp_buff2[idy];
pradipv 3:41bdbc9b3cec 1198 }
pradipv 3:41bdbc9b3cec 1199
pradipv 3:41bdbc9b3cec 1200 position = 0;
pradipv 3:41bdbc9b3cec 1201 for(device =1;device<5;device++)
pradipv 3:41bdbc9b3cec 1202 {
pradipv 3:41bdbc9b3cec 1203 for(idy = 0; idy < 8; idy++)
pradipv 3:41bdbc9b3cec 1204 {
pradipv 3:41bdbc9b3cec 1205 p_display->write_digit(device, idy+1,display_buff_16x16[idy+position]);
pradipv 3:41bdbc9b3cec 1206 }
pradipv 3:41bdbc9b3cec 1207 position+=8;
pradipv 3:41bdbc9b3cec 1208 }
pradipv 3:41bdbc9b3cec 1209 wait_ms(delay);
pradipv 3:41bdbc9b3cec 1210 }
pradipv 3:41bdbc9b3cec 1211
pradipv 3:41bdbc9b3cec 1212 }
pradipv 3:41bdbc9b3cec 1213
pradipv 3:41bdbc9b3cec 1214 void shift_display_left_16x16(Max7219 *p_display, uint8_t count, uint8_t delay)
pradipv 3:41bdbc9b3cec 1215 {
pradipv 3:41bdbc9b3cec 1216 uint16_t idx, idy;
pradipv 3:41bdbc9b3cec 1217 uint8_t position;
pradipv 3:41bdbc9b3cec 1218 int device;
pradipv 3:41bdbc9b3cec 1219
pradipv 3:41bdbc9b3cec 1220 for(idx = 0; idx < count; idx++)
pradipv 3:41bdbc9b3cec 1221 {
pradipv 3:41bdbc9b3cec 1222 for(idy = 0; idy < buff_end/2; idy++)
pradipv 3:41bdbc9b3cec 1223 {
pradipv 3:41bdbc9b3cec 1224 if(idy == 0)
pradipv 3:41bdbc9b3cec 1225 {
pradipv 3:41bdbc9b3cec 1226 temp_buff1[buff_end/2-1] = disp_buff1[idy];
pradipv 3:41bdbc9b3cec 1227 temp_buff2[buff_end/2-1] = disp_buff2[idy];
pradipv 3:41bdbc9b3cec 1228
pradipv 3:41bdbc9b3cec 1229 }
pradipv 3:41bdbc9b3cec 1230 else
pradipv 3:41bdbc9b3cec 1231 {
pradipv 3:41bdbc9b3cec 1232 temp_buff1[idy - 1] = disp_buff1[idy];
pradipv 3:41bdbc9b3cec 1233 temp_buff2[idy - 1] = disp_buff2[idy];
pradipv 3:41bdbc9b3cec 1234
pradipv 3:41bdbc9b3cec 1235 }
pradipv 3:41bdbc9b3cec 1236
pradipv 3:41bdbc9b3cec 1237 }
pradipv 3:41bdbc9b3cec 1238 for(idy = 0; idy < buff_end/2; idy++)
pradipv 3:41bdbc9b3cec 1239 {
pradipv 3:41bdbc9b3cec 1240 disp_buff1[idy] = temp_buff1[idy];
pradipv 3:41bdbc9b3cec 1241 disp_buff2[idy] = temp_buff2[idy];
pradipv 3:41bdbc9b3cec 1242
pradipv 3:41bdbc9b3cec 1243 }
pradipv 3:41bdbc9b3cec 1244 for(idy = 0; idy < 16; idy++)
pradipv 3:41bdbc9b3cec 1245 {
pradipv 3:41bdbc9b3cec 1246 display_buff_16x16[idy] = disp_buff1[idy];
pradipv 3:41bdbc9b3cec 1247 display_buff_16x16[idy+16] = disp_buff2[idy];
pradipv 3:41bdbc9b3cec 1248 }
pradipv 3:41bdbc9b3cec 1249 position = 0;
pradipv 3:41bdbc9b3cec 1250 for(device =1;device<5;device++)
pradipv 3:41bdbc9b3cec 1251 {
pradipv 3:41bdbc9b3cec 1252 for(idy = 0; idy < 8; idy++)
pradipv 3:41bdbc9b3cec 1253 {
pradipv 3:41bdbc9b3cec 1254 p_display->write_digit(device, idy+1,display_buff_16x16[idy+position]);
pradipv 3:41bdbc9b3cec 1255 }
pradipv 3:41bdbc9b3cec 1256 position+=8;
pradipv 3:41bdbc9b3cec 1257 }
pradipv 3:41bdbc9b3cec 1258
pradipv 3:41bdbc9b3cec 1259 wait_ms(delay);
pradipv 3:41bdbc9b3cec 1260 }
pradipv 3:41bdbc9b3cec 1261
pradipv 3:41bdbc9b3cec 1262 }
pradipv 3:41bdbc9b3cec 1263
pradipv 3:41bdbc9b3cec 1264 //*********************************************************************
pradipv 3:41bdbc9b3cec 1265 void demo_16x16(Max7219 *display, max7219_configuration_t display_config, bool endless_loop)
pradipv 3:41bdbc9b3cec 1266 {
pradipv 3:41bdbc9b3cec 1267 uint8_t idx = 0;
pradipv 3:41bdbc9b3cec 1268
pradipv 3:41bdbc9b3cec 1269 do
pradipv 3:41bdbc9b3cec 1270 {
pradipv 3:41bdbc9b3cec 1271 all_off(display);
pradipv 3:41bdbc9b3cec 1272
pradipv 3:41bdbc9b3cec 1273 for(idx = 0x20; idx < 0x7F; idx++)
pradipv 3:41bdbc9b3cec 1274 {
pradipv 3:41bdbc9b3cec 1275 print_char_16x16(display, 0, (char) idx);
pradipv 3:41bdbc9b3cec 1276 wait(0.25);
pradipv 3:41bdbc9b3cec 1277 }
pradipv 3:41bdbc9b3cec 1278
pradipv 3:41bdbc9b3cec 1279 all_on(display);
pradipv 3:41bdbc9b3cec 1280
pradipv 3:41bdbc9b3cec 1281 for(idx = 0; idx < 16; idx++)
pradipv 3:41bdbc9b3cec 1282 {
pradipv 3:41bdbc9b3cec 1283 display_config.intensity = 15 - idx;
pradipv 3:41bdbc9b3cec 1284 display->init_display(display_config);
pradipv 3:41bdbc9b3cec 1285 wait_ms(50);
pradipv 3:41bdbc9b3cec 1286 }
pradipv 3:41bdbc9b3cec 1287
pradipv 3:41bdbc9b3cec 1288 for(idx = 0; idx < 16; idx++)
pradipv 3:41bdbc9b3cec 1289 {
pradipv 3:41bdbc9b3cec 1290 display_config.intensity = idx;
pradipv 3:41bdbc9b3cec 1291 display->init_display(display_config);
pradipv 3:41bdbc9b3cec 1292 wait_ms(100);
pradipv 3:41bdbc9b3cec 1293 }
pradipv 3:41bdbc9b3cec 1294 wait_ms(100);
pradipv 3:41bdbc9b3cec 1295 all_off(display);
pradipv 3:41bdbc9b3cec 1296 wait_ms(100);
pradipv 3:41bdbc9b3cec 1297
pradipv 3:41bdbc9b3cec 1298 all_on(display);
pradipv 3:41bdbc9b3cec 1299 wait_ms(500);
pradipv 3:41bdbc9b3cec 1300 print_char_16x16(display,0,'A');
pradipv 3:41bdbc9b3cec 1301 wait_ms(500);
pradipv 3:41bdbc9b3cec 1302 shift_display_right_16x16(display, 32, 100);
pradipv 3:41bdbc9b3cec 1303 shift_display_left_16x16(display, 32, 100);
pradipv 3:41bdbc9b3cec 1304 all_off(display);
pradipv 3:41bdbc9b3cec 1305 wait_ms(100);
pradipv 3:41bdbc9b3cec 1306
pradipv 3:41bdbc9b3cec 1307 print_string_16x16(display, "Maxim");
pradipv 3:41bdbc9b3cec 1308 wait_ms(500);
pradipv 3:41bdbc9b3cec 1309 shift_display_right_16x16(display, 32, 100);
pradipv 3:41bdbc9b3cec 1310 shift_display_left_16x16(display, 32, 100);
pradipv 3:41bdbc9b3cec 1311 wait_ms(100);
pradipv 3:41bdbc9b3cec 1312 }
pradipv 3:41bdbc9b3cec 1313 while(endless_loop);
pradipv 3:41bdbc9b3cec 1314 }
pradipv 3:41bdbc9b3cec 1315
pradipv 3:41bdbc9b3cec 1316 //*********************************************************************
pradipv 3:41bdbc9b3cec 1317 void endless_scroll_display_16x16(Max7219 *display, uint32_t scroll_right)
pradipv 3:41bdbc9b3cec 1318 {
pradipv 3:41bdbc9b3cec 1319 if(scroll_right)
pradipv 3:41bdbc9b3cec 1320 {
pradipv 3:41bdbc9b3cec 1321 printf("\nScrolling Right\n");
pradipv 3:41bdbc9b3cec 1322 while(1)
pradipv 3:41bdbc9b3cec 1323 {
pradipv 3:41bdbc9b3cec 1324 shift_display_right_16x16(display, 1, 100);
pradipv 3:41bdbc9b3cec 1325 }
pradipv 3:41bdbc9b3cec 1326 }
pradipv 3:41bdbc9b3cec 1327 else
pradipv 3:41bdbc9b3cec 1328 {
pradipv 3:41bdbc9b3cec 1329 printf("\nScrolling Left\n");
pradipv 3:41bdbc9b3cec 1330 while(1)
pradipv 3:41bdbc9b3cec 1331 {
pradipv 3:41bdbc9b3cec 1332 shift_display_left_16x16(display, 1, 100);
pradipv 3:41bdbc9b3cec 1333 }
pradipv 3:41bdbc9b3cec 1334 }
pradipv 3:41bdbc9b3cec 1335 }
j3 0:6b0161c3e440 1336
j3 0:6b0161c3e440 1337 //*********************************************************************
j3 0:6b0161c3e440 1338 uint32_t print_menu(void)
j3 0:6b0161c3e440 1339 {
j3 0:6b0161c3e440 1340 uint32_t user_input;
j3 0:6b0161c3e440 1341
j3 0:6b0161c3e440 1342 printf("\nPlease select an option below:\n");
pradipv 3:41bdbc9b3cec 1343 printf("%t1. Select font\n");
pradipv 3:41bdbc9b3cec 1344 printf("%t2. Set Brightness\n");
pradipv 3:41bdbc9b3cec 1345 printf("%t3. Print a character to given position\n");
pradipv 3:41bdbc9b3cec 1346 printf("%t4. Print a string to position\n");
pradipv 3:41bdbc9b3cec 1347 printf("%t5. Shift display given number of position and direction\n");
pradipv 3:41bdbc9b3cec 1348 printf("%t6. Clear display\n");
pradipv 3:41bdbc9b3cec 1349 printf("%t7. Run the Demo Routine\n");
j3 0:6b0161c3e440 1350 printf("%t8. Scroll Display In Endless Loop, left or right\n");
j3 0:6b0161c3e440 1351 printf("%t9. Quit\n\n");
j3 0:6b0161c3e440 1352
j3 0:6b0161c3e440 1353 user_input = get_user_input(NULL, 9);
j3 0:6b0161c3e440 1354
j3 0:6b0161c3e440 1355 return(user_input);
j3 0:6b0161c3e440 1356 }
j3 0:6b0161c3e440 1357
j3 0:6b0161c3e440 1358
j3 0:6b0161c3e440 1359 //*********************************************************************
j3 0:6b0161c3e440 1360 uint32_t get_user_input(char *msg, uint32_t max_val)
j3 0:6b0161c3e440 1361 {
j3 0:6b0161c3e440 1362 uint32_t user_input;
j3 0:6b0161c3e440 1363
j3 0:6b0161c3e440 1364 do
j3 0:6b0161c3e440 1365 {
j3 0:6b0161c3e440 1366 printf(msg);
j3 0:6b0161c3e440 1367
j3 0:6b0161c3e440 1368 //get user input
j3 0:6b0161c3e440 1369 fgets(str, MAX_STRING_LENGTH, stdin);
pradipv 3:41bdbc9b3cec 1370
j3 0:6b0161c3e440 1371 //Remove trailing newline and CR, if there.
j3 0:6b0161c3e440 1372 if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D))
j3 0:6b0161c3e440 1373 {
j3 0:6b0161c3e440 1374 str[strlen(str) - 1] = '\0';
j3 0:6b0161c3e440 1375 str[strlen(str) - 1] = '\0';
j3 0:6b0161c3e440 1376 }
j3 0:6b0161c3e440 1377
j3 0:6b0161c3e440 1378 user_input = strtoul(str, NULL, 0);
j3 0:6b0161c3e440 1379
j3 0:6b0161c3e440 1380 printf("\nYou entered = %d\n", user_input);
j3 0:6b0161c3e440 1381
j3 0:6b0161c3e440 1382 if(user_input > max_val)
j3 0:6b0161c3e440 1383 {
j3 0:6b0161c3e440 1384 printf("\nOut of range\n");
j3 0:6b0161c3e440 1385 }
j3 0:6b0161c3e440 1386
j3 0:6b0161c3e440 1387 }
j3 0:6b0161c3e440 1388 while(user_input > max_val);
j3 0:6b0161c3e440 1389
j3 0:6b0161c3e440 1390 return(user_input);
j3 0:6b0161c3e440 1391 }
j3 0:6b0161c3e440 1392
j3 0:6b0161c3e440 1393
j3 0:6b0161c3e440 1394 //*********************************************************************
j3 0:6b0161c3e440 1395 char get_user_char(char *msg)
j3 0:6b0161c3e440 1396 {
j3 0:6b0161c3e440 1397
j3 0:6b0161c3e440 1398 do
j3 0:6b0161c3e440 1399 {
j3 0:6b0161c3e440 1400 printf(msg);
j3 0:6b0161c3e440 1401
j3 0:6b0161c3e440 1402 //get user input
pradipv 3:41bdbc9b3cec 1403 fflush(stdin);
j3 2:9fdd01cf0f88 1404 fgets(str, 4, stdin);
pradipv 3:41bdbc9b3cec 1405 fflush(stdin);
j3 0:6b0161c3e440 1406 //Remove trailing newline and CR, if there.
j3 0:6b0161c3e440 1407 if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D))
j3 0:6b0161c3e440 1408 {
j3 0:6b0161c3e440 1409 str[strlen(str) - 1] = '\0';
j3 0:6b0161c3e440 1410 str[strlen(str) - 1] = '\0';
j3 0:6b0161c3e440 1411 }
j3 0:6b0161c3e440 1412
j3 0:6b0161c3e440 1413 printf("\nYou entered = %c\n", str[0]);
j3 0:6b0161c3e440 1414
j3 0:6b0161c3e440 1415 if((str[0] < 0x20) || (str[0] > 0x7E))
j3 0:6b0161c3e440 1416 {
j3 0:6b0161c3e440 1417 printf("\nOut of range\n");
j3 0:6b0161c3e440 1418 }
j3 0:6b0161c3e440 1419 }
j3 0:6b0161c3e440 1420 while((str[0] < 0x20) || (str[0] > 0x7E));
j3 0:6b0161c3e440 1421
j3 0:6b0161c3e440 1422 return(str[0]);
j3 0:6b0161c3e440 1423 }
j3 0:6b0161c3e440 1424
j3 0:6b0161c3e440 1425
j3 0:6b0161c3e440 1426 //*********************************************************************
j3 0:6b0161c3e440 1427 char * get_user_string(char *msg)
j3 0:6b0161c3e440 1428 {
j3 0:6b0161c3e440 1429 printf(msg);
j3 0:6b0161c3e440 1430 //get user input
j3 0:6b0161c3e440 1431 fgets(str, MAX_STRING_LENGTH, stdin);
j3 0:6b0161c3e440 1432 //Remove trailing newline and CR, if there.
j3 0:6b0161c3e440 1433 if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D))
j3 0:6b0161c3e440 1434 {
j3 0:6b0161c3e440 1435 str[strlen(str) - 1] = '\0';
j3 0:6b0161c3e440 1436 str[strlen(str) - 1] = '\0';
j3 0:6b0161c3e440 1437 }
j3 0:6b0161c3e440 1438
j3 0:6b0161c3e440 1439 return(str);
j3 0:6b0161c3e440 1440 }
j3 0:6b0161c3e440 1441
pradipv 3:41bdbc9b3cec 1442