tr

Committer:
eencae
Date:
Mon May 19 18:23:21 2014 +0000
Revision:
7:3010f24e0a81
Parent:
6:adb79338d40f
Child:
8:40abe5736eca
Modified refresh() function so that the address is reset to (0,0) before sending the entire screen buffer to the display. Ensures the origin of the buffer coincides with the top-left pixel. This may not be the case after printing strings.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 1:df68f34cd32d 1 /**
eencae 2:e93021cfb0a9 2 @file N5110.h
eencae 1:df68f34cd32d 3
eencae 5:6ea180eef702 4 @brief Header file containing member functions and variables
eencae 4:e923c54c1c7d 5
eencae 0:d563e74f0ae9 6 */
eencae 0:d563e74f0ae9 7
eencae 0:d563e74f0ae9 8 #ifndef N5110_H
eencae 0:d563e74f0ae9 9 #define N5110_H
eencae 0:d563e74f0ae9 10
eencae 0:d563e74f0ae9 11 // Command Bytes - taken from Chris Yan's library
eencae 2:e93021cfb0a9 12 // More information can be found in the display datasheet
eencae 2:e93021cfb0a9 13 // H = 0 - Basic instructions
eencae 0:d563e74f0ae9 14 #define CMD_DC_CLEAR_DISPLAY 0x08
eencae 0:d563e74f0ae9 15 #define CMD_DC_NORMAL_MODE 0x0C
eencae 0:d563e74f0ae9 16 #define CMD_DC_FILL_DISPLAY 0x09
eencae 0:d563e74f0ae9 17 #define CMD_DC_INVERT_VIDEO 0x0D
eencae 0:d563e74f0ae9 18 #define CMD_FS_HORIZONTAL_MODE 0x00
eencae 0:d563e74f0ae9 19 #define CMD_FS_VERTICAL_MODE 0x02
eencae 0:d563e74f0ae9 20 #define CMD_FS_BASIC_MODE 0x00
eencae 0:d563e74f0ae9 21 #define CMD_FS_EXTENDED_MODE 0x01
eencae 0:d563e74f0ae9 22 #define CMD_FS_ACTIVE_MODE 0x00
eencae 0:d563e74f0ae9 23 #define CMD_FS_POWER_DOWN_MODE 0x04
eencae 2:e93021cfb0a9 24 // H = 1 - Extended instructions
eencae 0:d563e74f0ae9 25 #define CMD_TC_TEMP_0 0x04
eencae 0:d563e74f0ae9 26 #define CMD_TC_TEMP_1 0x05
eencae 0:d563e74f0ae9 27 #define CMD_TC_TEMP_2 0x06
eencae 0:d563e74f0ae9 28 #define CMD_TC_TEMP_3 0x07
eencae 0:d563e74f0ae9 29 #define CMD_BI_MUX_24 0x15
eencae 0:d563e74f0ae9 30 #define CMD_BI_MUX_48 0x13
eencae 0:d563e74f0ae9 31 #define CMD_BI_MUX_100 0x10
eencae 0:d563e74f0ae9 32 #define CMD_VOP_6V06 0xB2
eencae 0:d563e74f0ae9 33 #define CMD_VOP_7V38 0xC8
eencae 0:d563e74f0ae9 34
eencae 0:d563e74f0ae9 35 #include "mbed.h"
eencae 0:d563e74f0ae9 36
eencae 5:6ea180eef702 37 /**
eencae 5:6ea180eef702 38 @brief Simple library for interfacing with Nokia 5110 LCD display (https://www.sparkfun.com/products/10168) using the hardware SPI on the mbed.
eencae 5:6ea180eef702 39 @brief The display is powered from a GPIO pin meaning it can be controlled via software. The LED backlight is also software-controllable (via PWM pin).
eencae 5:6ea180eef702 40 @brief Can print characters and strings to the display using the included 5x7 font.
eencae 5:6ea180eef702 41 @brief The library also implements a screen buffer so that individual pixels on the display (84 x 48) can be set, cleared and read.
eencae 5:6ea180eef702 42
eencae 5:6ea180eef702 43 @brief Acknowledgements to Chris Yan's Nokia_5110 Library.
eencae 5:6ea180eef702 44
eencae 5:6ea180eef702 45 @brief Revision 1.0
eencae 5:6ea180eef702 46
eencae 5:6ea180eef702 47 @author Craig A. Evans
eencae 5:6ea180eef702 48 @date January 2014
eencae 2:e93021cfb0a9 49 *
eencae 2:e93021cfb0a9 50 * Example:
eencae 2:e93021cfb0a9 51 * @code
eencae 6:adb79338d40f 52
eencae 6:adb79338d40f 53 #include "mbed.h"
eencae 6:adb79338d40f 54 #include "N5110.h"
eencae 6:adb79338d40f 55
eencae 6:adb79338d40f 56 // VCC,SCE,RST,D/C,MOSI,SCLK,LED
eencae 6:adb79338d40f 57 N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
eencae 6:adb79338d40f 58
eencae 6:adb79338d40f 59 int main() {
eencae 6:adb79338d40f 60
eencae 6:adb79338d40f 61 // initialise display
eencae 6:adb79338d40f 62 lcd.init();
eencae 6:adb79338d40f 63 // print a string in top-left corner
eencae 6:adb79338d40f 64 lcd.printString("Hello, World!",0,0);
eencae 6:adb79338d40f 65 // move cursor to 4th row
eencae 6:adb79338d40f 66 lcd.setXYAddress(0,3);
eencae 6:adb79338d40f 67 // print character
eencae 6:adb79338d40f 68 lcd.printChar('X');
eencae 6:adb79338d40f 69
eencae 6:adb79338d40f 70 while(1);
eencae 6:adb79338d40f 71 }
eencae 6:adb79338d40f 72
eencae 2:e93021cfb0a9 73 * @endcode
eencae 2:e93021cfb0a9 74 */
eencae 1:df68f34cd32d 75 class N5110
eencae 1:df68f34cd32d 76 {
eencae 0:d563e74f0ae9 77
eencae 1:df68f34cd32d 78 public:
eencae 1:df68f34cd32d 79 /** Create a N5110 object connected to the specified pins
eencae 1:df68f34cd32d 80 *
eencae 1:df68f34cd32d 81 * @param pwr Pin connected to Vcc on the LCD display (pin 1)
eencae 1:df68f34cd32d 82 * @param sce Pin connected to chip enable (pin 3)
eencae 1:df68f34cd32d 83 * @param rst Pin connected to reset (pin 4)
eencae 1:df68f34cd32d 84 * @param dc Pin connected to data/command select (pin 5)
eencae 1:df68f34cd32d 85 * @param mosi Pin connected to data input (MOSI) (pin 6)
eencae 1:df68f34cd32d 86 * @param sclk Pin connected to serial clock (SCLK) (pin 7)
eencae 1:df68f34cd32d 87 * @param led Pin connected to LED backlight (must be PWM) (pin 8)
eencae 1:df68f34cd32d 88 *
eencae 1:df68f34cd32d 89 */
eencae 1:df68f34cd32d 90 N5110(PinName pwrPin, PinName scePin, PinName rstPin, PinName dcPin, PinName mosiPin, PinName sclkPin, PinName ledPin);
eencae 1:df68f34cd32d 91
eencae 1:df68f34cd32d 92 /** Initialise display
eencae 1:df68f34cd32d 93 *
eencae 1:df68f34cd32d 94 * Powers up the display and turns on backlight (50% brightness default).
eencae 1:df68f34cd32d 95 * Sets the display up in horizontal addressing mode and with normal video mode.
eencae 1:df68f34cd32d 96 */
eencae 1:df68f34cd32d 97 void init();
eencae 1:df68f34cd32d 98
eencae 1:df68f34cd32d 99 /** Turn off
eencae 1:df68f34cd32d 100 *
eencae 1:df68f34cd32d 101 * Powers down the display and turns of the backlight.
eencae 1:df68f34cd32d 102 * Needs to be reinitialised before being re-used.
eencae 1:df68f34cd32d 103 */
eencae 1:df68f34cd32d 104 void turnOff();
eencae 1:df68f34cd32d 105
eencae 1:df68f34cd32d 106 /** Clears
eencae 1:df68f34cd32d 107 *
eencae 1:df68f34cd32d 108 * Clears the screen.
eencae 1:df68f34cd32d 109 */
eencae 1:df68f34cd32d 110 void clear();
eencae 1:df68f34cd32d 111
eencae 1:df68f34cd32d 112 /** Turn on normal video mode (default)
eencae 1:df68f34cd32d 113 * Black on white
eencae 1:df68f34cd32d 114 */
eencae 1:df68f34cd32d 115 void normalMode();
eencae 1:df68f34cd32d 116
eencae 1:df68f34cd32d 117 /** Turn on inverse video mode (default)
eencae 1:df68f34cd32d 118 * White on black
eencae 1:df68f34cd32d 119 */
eencae 1:df68f34cd32d 120 void inverseMode();
eencae 1:df68f34cd32d 121
eencae 1:df68f34cd32d 122 /** Set Brightness
eencae 1:df68f34cd32d 123 *
eencae 1:df68f34cd32d 124 * Sets brightness of LED backlight.
eencae 1:df68f34cd32d 125 * @param brightness - float in range 0.0 to 1.0
eencae 1:df68f34cd32d 126 */
eencae 1:df68f34cd32d 127 void setBrightness(float brightness);
eencae 1:df68f34cd32d 128
eencae 1:df68f34cd32d 129 /** Set XY Address
eencae 1:df68f34cd32d 130 *
eencae 1:df68f34cd32d 131 * Sets the X and Y address of where the next data sent to the displa will be written in RAM.
eencae 1:df68f34cd32d 132 * @param x - the column number (0 to 83) - is automatically incremented after data is written
eencae 2:e93021cfb0a9 133 * @param y - the row number (0 to 5) - the diplay is split into 6 banks - each bank can be considered a row
eencae 1:df68f34cd32d 134 */
eencae 1:df68f34cd32d 135 void setXYAddress(int x, int y);
eencae 1:df68f34cd32d 136
eencae 2:e93021cfb0a9 137 /** Print String
eencae 2:e93021cfb0a9 138 *
eencae 2:e93021cfb0a9 139 * Prints a string of characters to the display.
eencae 2:e93021cfb0a9 140 * @param x - the column number (0 to 83)
eencae 2:e93021cfb0a9 141 * @param y - the row number (0 to 5) - the display is split into 6 banks - each bank can be considered a row
eencae 2:e93021cfb0a9 142 */
eencae 1:df68f34cd32d 143 void printString(const char * str,int x,int y);
eencae 1:df68f34cd32d 144
eencae 1:df68f34cd32d 145 /** Print Character
eencae 1:df68f34cd32d 146 *
eencae 1:df68f34cd32d 147 * Sends a character to the display. Will be printed at the current address.
eencae 6:adb79338d40f 148 * X address is autoincremented by 1 to leave a pixel between successive characters.
eencae 1:df68f34cd32d 149 * @param c - the character to print. Can print ASCII as so printChar('C').
eencae 1:df68f34cd32d 150 */
eencae 1:df68f34cd32d 151 void printChar(char c);
eencae 1:df68f34cd32d 152
eencae 6:adb79338d40f 153 /** Set a Pixel
eencae 6:adb79338d40f 154 *
eencae 6:adb79338d40f 155 * This function sets a pixel in the display. A call to refresh() must be made
eencae 6:adb79338d40f 156 * to update the display to reflect the change in pixels.
eencae 6:adb79338d40f 157 * @param x - the x co-ordinate of the pixel (0 to 83)
eencae 6:adb79338d40f 158 * @param y - the y co-ordinate of the pixel (0 to 47)
eencae 6:adb79338d40f 159 */
eencae 1:df68f34cd32d 160 void setPixel(int x, int y);
eencae 6:adb79338d40f 161
eencae 6:adb79338d40f 162 /** Clear a Pixel
eencae 6:adb79338d40f 163 *
eencae 6:adb79338d40f 164 * This function clears pixel in the display. A call to refresh() must be made
eencae 6:adb79338d40f 165 * to update the display to reflect the change in pixels.
eencae 6:adb79338d40f 166 * @param x - the x co-ordinate of the pixel (0 to 83)
eencae 6:adb79338d40f 167 * @param y - the y co-ordinate of the pixel (0 to 47)
eencae 6:adb79338d40f 168 */
eencae 1:df68f34cd32d 169 void clearPixel(int x, int y);
eencae 6:adb79338d40f 170
eencae 6:adb79338d40f 171 /** Get a Pixel
eencae 6:adb79338d40f 172 *
eencae 6:adb79338d40f 173 * This function gets the status of a pixel in the display.
eencae 6:adb79338d40f 174 * @param x - the x co-ordinate of the pixel (0 to 83)
eencae 6:adb79338d40f 175 * @param y - the y co-ordinate of the pixel (0 to 47)
eencae 6:adb79338d40f 176 * @returns
eencae 6:adb79338d40f 177 * 0 - pixel is clear
eencae 6:adb79338d40f 178 * non-zero - pixel is set
eencae 6:adb79338d40f 179 */
eencae 7:3010f24e0a81 180 int getPixel(int x, int y);
eencae 2:e93021cfb0a9 181
eencae 6:adb79338d40f 182 /** Refresh display
eencae 6:adb79338d40f 183 *
eencae 6:adb79338d40f 184 * This functions refreshes the display to reflect the current data in the buffer.
eencae 6:adb79338d40f 185 */
eencae 6:adb79338d40f 186 void refresh();
eencae 2:e93021cfb0a9 187
eencae 6:adb79338d40f 188 /** Randomise buffer
eencae 6:adb79338d40f 189 *
eencae 6:adb79338d40f 190 * This function fills the buffer with random data. Can be used to test the display.
eencae 6:adb79338d40f 191 * A call to refresh() must be made to update the display to reflect the change in pixels.
eencae 6:adb79338d40f 192 * The seed is not set and so the generated pattern will probably be the same each time.
eencae 6:adb79338d40f 193 * TODO: Randomise the seed - maybe using the noise on the AnalogIn pins.
eencae 6:adb79338d40f 194 */
eencae 1:df68f34cd32d 195 void randomiseBuffer();
eencae 1:df68f34cd32d 196
eencae 1:df68f34cd32d 197 private:
eencae 1:df68f34cd32d 198 void initSPI();
eencae 1:df68f34cd32d 199 void turnOn();
eencae 1:df68f34cd32d 200 void reset();
eencae 1:df68f34cd32d 201 void clearRAM();
eencae 6:adb79338d40f 202 void clearBuffer();
eencae 1:df68f34cd32d 203 void sendCommand(unsigned char command);
eencae 1:df68f34cd32d 204 void sendData(unsigned char data);
eencae 1:df68f34cd32d 205
eencae 1:df68f34cd32d 206 public:
eencae 1:df68f34cd32d 207 unsigned char buffer[84][6]; // screen buffer - the 6 is for the banks - each one is 8 bits;
eencae 1:df68f34cd32d 208
eencae 1:df68f34cd32d 209 private: // private variables
eencae 1:df68f34cd32d 210 SPI* spi;
eencae 1:df68f34cd32d 211 PwmOut* led;
eencae 1:df68f34cd32d 212 DigitalOut* pwr;
eencae 1:df68f34cd32d 213 DigitalOut* sce;
eencae 1:df68f34cd32d 214 DigitalOut* rst;
eencae 1:df68f34cd32d 215 DigitalOut* dc;
eencae 0:d563e74f0ae9 216
eencae 0:d563e74f0ae9 217 };
eencae 0:d563e74f0ae9 218
eencae 0:d563e74f0ae9 219 const unsigned char font5x7[480] = {
eencae 0:d563e74f0ae9 220 0x00, 0x00, 0x00, 0x00, 0x00,// (space)
eencae 0:d563e74f0ae9 221 0x00, 0x00, 0x5F, 0x00, 0x00,// !
eencae 0:d563e74f0ae9 222 0x00, 0x07, 0x00, 0x07, 0x00,// "
eencae 0:d563e74f0ae9 223 0x14, 0x7F, 0x14, 0x7F, 0x14,// #
eencae 0:d563e74f0ae9 224 0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
eencae 0:d563e74f0ae9 225 0x23, 0x13, 0x08, 0x64, 0x62,// %
eencae 0:d563e74f0ae9 226 0x36, 0x49, 0x55, 0x22, 0x50,// &
eencae 0:d563e74f0ae9 227 0x00, 0x05, 0x03, 0x00, 0x00,// '
eencae 0:d563e74f0ae9 228 0x00, 0x1C, 0x22, 0x41, 0x00,// (
eencae 0:d563e74f0ae9 229 0x00, 0x41, 0x22, 0x1C, 0x00,// )
eencae 0:d563e74f0ae9 230 0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
eencae 0:d563e74f0ae9 231 0x08, 0x08, 0x3E, 0x08, 0x08,// +
eencae 0:d563e74f0ae9 232 0x00, 0x50, 0x30, 0x00, 0x00,// ,
eencae 0:d563e74f0ae9 233 0x08, 0x08, 0x08, 0x08, 0x08,// -
eencae 0:d563e74f0ae9 234 0x00, 0x60, 0x60, 0x00, 0x00,// .
eencae 0:d563e74f0ae9 235 0x20, 0x10, 0x08, 0x04, 0x02,// /
eencae 0:d563e74f0ae9 236 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
eencae 0:d563e74f0ae9 237 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
eencae 0:d563e74f0ae9 238 0x42, 0x61, 0x51, 0x49, 0x46,// 2
eencae 0:d563e74f0ae9 239 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
eencae 0:d563e74f0ae9 240 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
eencae 0:d563e74f0ae9 241 0x27, 0x45, 0x45, 0x45, 0x39,// 5
eencae 0:d563e74f0ae9 242 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
eencae 0:d563e74f0ae9 243 0x01, 0x71, 0x09, 0x05, 0x03,// 7
eencae 0:d563e74f0ae9 244 0x36, 0x49, 0x49, 0x49, 0x36,// 8
eencae 0:d563e74f0ae9 245 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
eencae 0:d563e74f0ae9 246 0x00, 0x36, 0x36, 0x00, 0x00,// :
eencae 0:d563e74f0ae9 247 0x00, 0x56, 0x36, 0x00, 0x00,// ;
eencae 0:d563e74f0ae9 248 0x00, 0x08, 0x14, 0x22, 0x41,// <
eencae 0:d563e74f0ae9 249 0x14, 0x14, 0x14, 0x14, 0x14,// =
eencae 0:d563e74f0ae9 250 0x41, 0x22, 0x14, 0x08, 0x00,// >
eencae 0:d563e74f0ae9 251 0x02, 0x01, 0x51, 0x09, 0x06,// ?
eencae 0:d563e74f0ae9 252 0x32, 0x49, 0x79, 0x41, 0x3E,// @
eencae 0:d563e74f0ae9 253 0x7E, 0x11, 0x11, 0x11, 0x7E,// A
eencae 0:d563e74f0ae9 254 0x7F, 0x49, 0x49, 0x49, 0x36,// B
eencae 0:d563e74f0ae9 255 0x3E, 0x41, 0x41, 0x41, 0x22,// C
eencae 0:d563e74f0ae9 256 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
eencae 0:d563e74f0ae9 257 0x7F, 0x49, 0x49, 0x49, 0x41,// E
eencae 0:d563e74f0ae9 258 0x7F, 0x09, 0x09, 0x01, 0x01,// F
eencae 0:d563e74f0ae9 259 0x3E, 0x41, 0x41, 0x51, 0x32,// G
eencae 0:d563e74f0ae9 260 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
eencae 0:d563e74f0ae9 261 0x00, 0x41, 0x7F, 0x41, 0x00,// I
eencae 0:d563e74f0ae9 262 0x20, 0x40, 0x41, 0x3F, 0x01,// J
eencae 0:d563e74f0ae9 263 0x7F, 0x08, 0x14, 0x22, 0x41,// K
eencae 0:d563e74f0ae9 264 0x7F, 0x40, 0x40, 0x40, 0x40,// L
eencae 0:d563e74f0ae9 265 0x7F, 0x02, 0x04, 0x02, 0x7F,// M
eencae 0:d563e74f0ae9 266 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
eencae 0:d563e74f0ae9 267 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
eencae 0:d563e74f0ae9 268 0x7F, 0x09, 0x09, 0x09, 0x06,// P
eencae 0:d563e74f0ae9 269 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
eencae 0:d563e74f0ae9 270 0x7F, 0x09, 0x19, 0x29, 0x46,// R
eencae 0:d563e74f0ae9 271 0x46, 0x49, 0x49, 0x49, 0x31,// S
eencae 0:d563e74f0ae9 272 0x01, 0x01, 0x7F, 0x01, 0x01,// T
eencae 0:d563e74f0ae9 273 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
eencae 0:d563e74f0ae9 274 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
eencae 0:d563e74f0ae9 275 0x7F, 0x20, 0x18, 0x20, 0x7F,// W
eencae 0:d563e74f0ae9 276 0x63, 0x14, 0x08, 0x14, 0x63,// X
eencae 0:d563e74f0ae9 277 0x03, 0x04, 0x78, 0x04, 0x03,// Y
eencae 0:d563e74f0ae9 278 0x61, 0x51, 0x49, 0x45, 0x43,// Z
eencae 0:d563e74f0ae9 279 0x00, 0x00, 0x7F, 0x41, 0x41,// [
eencae 0:d563e74f0ae9 280 0x02, 0x04, 0x08, 0x10, 0x20,// "\"
eencae 0:d563e74f0ae9 281 0x41, 0x41, 0x7F, 0x00, 0x00,// ]
eencae 0:d563e74f0ae9 282 0x04, 0x02, 0x01, 0x02, 0x04,// ^
eencae 0:d563e74f0ae9 283 0x40, 0x40, 0x40, 0x40, 0x40,// _
eencae 0:d563e74f0ae9 284 0x00, 0x01, 0x02, 0x04, 0x00,// `
eencae 0:d563e74f0ae9 285 0x20, 0x54, 0x54, 0x54, 0x78,// a
eencae 0:d563e74f0ae9 286 0x7F, 0x48, 0x44, 0x44, 0x38,// b
eencae 0:d563e74f0ae9 287 0x38, 0x44, 0x44, 0x44, 0x20,// c
eencae 0:d563e74f0ae9 288 0x38, 0x44, 0x44, 0x48, 0x7F,// d
eencae 0:d563e74f0ae9 289 0x38, 0x54, 0x54, 0x54, 0x18,// e
eencae 0:d563e74f0ae9 290 0x08, 0x7E, 0x09, 0x01, 0x02,// f
eencae 0:d563e74f0ae9 291 0x08, 0x14, 0x54, 0x54, 0x3C,// g
eencae 0:d563e74f0ae9 292 0x7F, 0x08, 0x04, 0x04, 0x78,// h
eencae 0:d563e74f0ae9 293 0x00, 0x44, 0x7D, 0x40, 0x00,// i
eencae 0:d563e74f0ae9 294 0x20, 0x40, 0x44, 0x3D, 0x00,// j
eencae 0:d563e74f0ae9 295 0x00, 0x7F, 0x10, 0x28, 0x44,// k
eencae 0:d563e74f0ae9 296 0x00, 0x41, 0x7F, 0x40, 0x00,// l
eencae 0:d563e74f0ae9 297 0x7C, 0x04, 0x18, 0x04, 0x78,// m
eencae 0:d563e74f0ae9 298 0x7C, 0x08, 0x04, 0x04, 0x78,// n
eencae 0:d563e74f0ae9 299 0x38, 0x44, 0x44, 0x44, 0x38,// o
eencae 0:d563e74f0ae9 300 0x7C, 0x14, 0x14, 0x14, 0x08,// p
eencae 0:d563e74f0ae9 301 0x08, 0x14, 0x14, 0x18, 0x7C,// q
eencae 0:d563e74f0ae9 302 0x7C, 0x08, 0x04, 0x04, 0x08,// r
eencae 0:d563e74f0ae9 303 0x48, 0x54, 0x54, 0x54, 0x20,// s
eencae 0:d563e74f0ae9 304 0x04, 0x3F, 0x44, 0x40, 0x20,// t
eencae 0:d563e74f0ae9 305 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
eencae 0:d563e74f0ae9 306 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
eencae 0:d563e74f0ae9 307 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
eencae 0:d563e74f0ae9 308 0x44, 0x28, 0x10, 0x28, 0x44,// x
eencae 0:d563e74f0ae9 309 0x0C, 0x50, 0x50, 0x50, 0x3C,// y
eencae 0:d563e74f0ae9 310 0x44, 0x64, 0x54, 0x4C, 0x44,// z
eencae 0:d563e74f0ae9 311 0x00, 0x08, 0x36, 0x41, 0x00,// {
eencae 0:d563e74f0ae9 312 0x00, 0x00, 0x7F, 0x00, 0x00,// |
eencae 0:d563e74f0ae9 313 0x00, 0x41, 0x36, 0x08, 0x00,// }
eencae 0:d563e74f0ae9 314 0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
eencae 0:d563e74f0ae9 315 0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
eencae 0:d563e74f0ae9 316 };
eencae 0:d563e74f0ae9 317
eencae 0:d563e74f0ae9 318 #endif