Working Menu with selectable fields yet to add comparison with healthy temperature ranges

Dependencies:   TMP102_02

Committer:
ejh23
Date:
Tue Feb 01 15:31:24 2022 +0000
Revision:
1:e11018cf2c14
added menu with time out function - after X seconds screen is off and device sleeps

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ejh23 1:e11018cf2c14 1 #ifndef N5110_H
ejh23 1:e11018cf2c14 2 #define N5110_H
ejh23 1:e11018cf2c14 3
ejh23 1:e11018cf2c14 4 #include "mbed.h"
ejh23 1:e11018cf2c14 5
ejh23 1:e11018cf2c14 6 // number of pixels on display
ejh23 1:e11018cf2c14 7 #define WIDTH 84
ejh23 1:e11018cf2c14 8 #define HEIGHT 48
ejh23 1:e11018cf2c14 9 #define BANKS 6
ejh23 1:e11018cf2c14 10
ejh23 1:e11018cf2c14 11 /// Fill types for 2D shapes
ejh23 1:e11018cf2c14 12 enum FillType {
ejh23 1:e11018cf2c14 13 FILL_TRANSPARENT, ///< Transparent with outline
ejh23 1:e11018cf2c14 14 FILL_BLACK, ///< Filled black
ejh23 1:e11018cf2c14 15 FILL_WHITE, ///< Filled white (no outline)
ejh23 1:e11018cf2c14 16 };
ejh23 1:e11018cf2c14 17
ejh23 1:e11018cf2c14 18
ejh23 1:e11018cf2c14 19 class N5110
ejh23 1:e11018cf2c14 20 {
ejh23 1:e11018cf2c14 21 private:
ejh23 1:e11018cf2c14 22 // objects
ejh23 1:e11018cf2c14 23 SPI *_spi;
ejh23 1:e11018cf2c14 24 PwmOut *_led;
ejh23 1:e11018cf2c14 25 DigitalOut *_pwr;
ejh23 1:e11018cf2c14 26 DigitalOut *_sce;
ejh23 1:e11018cf2c14 27 DigitalOut *_rst;
ejh23 1:e11018cf2c14 28 DigitalOut *_dc;
ejh23 1:e11018cf2c14 29
ejh23 1:e11018cf2c14 30 // variables
ejh23 1:e11018cf2c14 31 unsigned char buffer[84][6]; // screen buffer - the 6 is for the banks - each one is 8 bits;
ejh23 1:e11018cf2c14 32
ejh23 1:e11018cf2c14 33 public:
ejh23 1:e11018cf2c14 34 /** Create a N5110 object connected to the specified pins
ejh23 1:e11018cf2c14 35 *
ejh23 1:e11018cf2c14 36 * @param pwr Pin connected to Vcc on the LCD display (pin 1)
ejh23 1:e11018cf2c14 37 * @param sce Pin connected to chip enable (pin 3)
ejh23 1:e11018cf2c14 38 * @param rst Pin connected to reset (pin 4)
ejh23 1:e11018cf2c14 39 * @param dc Pin connected to data/command select (pin 5)
ejh23 1:e11018cf2c14 40 * @param mosi Pin connected to data input (MOSI) (pin 6)
ejh23 1:e11018cf2c14 41 * @param sclk Pin connected to serial clock (SCLK) (pin 7)
ejh23 1:e11018cf2c14 42 * @param led Pin connected to LED backlight (must be PWM) (pin 8)
ejh23 1:e11018cf2c14 43 *
ejh23 1:e11018cf2c14 44 */
ejh23 1:e11018cf2c14 45 N5110(PinName const pwrPin,
ejh23 1:e11018cf2c14 46 PinName const scePin,
ejh23 1:e11018cf2c14 47 PinName const rstPin,
ejh23 1:e11018cf2c14 48 PinName const dcPin,
ejh23 1:e11018cf2c14 49 PinName const mosiPin,
ejh23 1:e11018cf2c14 50 PinName const sclkPin,
ejh23 1:e11018cf2c14 51 PinName const ledPin);
ejh23 1:e11018cf2c14 52
ejh23 1:e11018cf2c14 53 /** Create a N5110 object connected to the specified pins (Vcc to +3V3)
ejh23 1:e11018cf2c14 54 *
ejh23 1:e11018cf2c14 55 * @param sce Pin connected to chip enable (pin 3)
ejh23 1:e11018cf2c14 56 * @param rst Pin connected to reset (pin 4)
ejh23 1:e11018cf2c14 57 * @param dc Pin connected to data/command select (pin 5)
ejh23 1:e11018cf2c14 58 * @param mosi Pin connected to data input (MOSI) (pin 6)
ejh23 1:e11018cf2c14 59 * @param sclk Pin connected to serial clock (SCLK) (pin 7)
ejh23 1:e11018cf2c14 60 * @param led Pin connected to LED backlight (must be PWM) (pin 8)
ejh23 1:e11018cf2c14 61 *
ejh23 1:e11018cf2c14 62 */
ejh23 1:e11018cf2c14 63 N5110(PinName const scePin,
ejh23 1:e11018cf2c14 64 PinName const rstPin,
ejh23 1:e11018cf2c14 65 PinName const dcPin,
ejh23 1:e11018cf2c14 66 PinName const mosiPin,
ejh23 1:e11018cf2c14 67 PinName const sclkPin,
ejh23 1:e11018cf2c14 68 PinName const ledPin);
ejh23 1:e11018cf2c14 69
ejh23 1:e11018cf2c14 70 /**
ejh23 1:e11018cf2c14 71 * Free allocated memory when object goes out of scope
ejh23 1:e11018cf2c14 72 */
ejh23 1:e11018cf2c14 73 ~N5110();
ejh23 1:e11018cf2c14 74
ejh23 1:e11018cf2c14 75 /** Initialise display
ejh23 1:e11018cf2c14 76 *
ejh23 1:e11018cf2c14 77 * Powers up the display and turns on backlight (50% brightness default).
ejh23 1:e11018cf2c14 78 * Sets the display up in horizontal addressing mode and with normal video mode.
ejh23 1:e11018cf2c14 79 */
ejh23 1:e11018cf2c14 80 void init();
ejh23 1:e11018cf2c14 81
ejh23 1:e11018cf2c14 82 /** Turn off
ejh23 1:e11018cf2c14 83 *
ejh23 1:e11018cf2c14 84 * Powers down the display and turns of the backlight.
ejh23 1:e11018cf2c14 85 * Needs to be reinitialised before being re-used.
ejh23 1:e11018cf2c14 86 */
ejh23 1:e11018cf2c14 87 void turnOff();
ejh23 1:e11018cf2c14 88
ejh23 1:e11018cf2c14 89 /** Clear
ejh23 1:e11018cf2c14 90 *
ejh23 1:e11018cf2c14 91 * Clears the screen buffer.
ejh23 1:e11018cf2c14 92 */
ejh23 1:e11018cf2c14 93 void clear();
ejh23 1:e11018cf2c14 94
ejh23 1:e11018cf2c14 95 /** Set screen constrast
ejh23 1:e11018cf2c14 96 * @param constrast - float in range 0.0 to 1.0 (0.40 to 0.60 is usually a good value)
ejh23 1:e11018cf2c14 97 */
ejh23 1:e11018cf2c14 98 void setContrast(float contrast);
ejh23 1:e11018cf2c14 99
ejh23 1:e11018cf2c14 100 /** Turn on normal video mode (default)
ejh23 1:e11018cf2c14 101 * Black on white
ejh23 1:e11018cf2c14 102 */
ejh23 1:e11018cf2c14 103 void normalMode();
ejh23 1:e11018cf2c14 104
ejh23 1:e11018cf2c14 105 /** Turn on inverse video mode (default)
ejh23 1:e11018cf2c14 106 * White on black
ejh23 1:e11018cf2c14 107 */
ejh23 1:e11018cf2c14 108 void inverseMode();
ejh23 1:e11018cf2c14 109
ejh23 1:e11018cf2c14 110 /** Set Brightness
ejh23 1:e11018cf2c14 111 *
ejh23 1:e11018cf2c14 112 * Sets brightness of LED backlight.
ejh23 1:e11018cf2c14 113 * @param brightness - float in range 0.0 to 1.0
ejh23 1:e11018cf2c14 114 */
ejh23 1:e11018cf2c14 115 void setBrightness(float const brightness);
ejh23 1:e11018cf2c14 116
ejh23 1:e11018cf2c14 117 /** Print String
ejh23 1:e11018cf2c14 118 *
ejh23 1:e11018cf2c14 119 * Prints a string of characters to the screen buffer. String is cut-off after the 83rd pixel.
ejh23 1:e11018cf2c14 120 * @param x - the column number (0 to 83)
ejh23 1:e11018cf2c14 121 * @param y - the row number (0 to 5) - the display is split into 6 banks - each bank can be considered a row
ejh23 1:e11018cf2c14 122 */
ejh23 1:e11018cf2c14 123 void printString(char const *str,
ejh23 1:e11018cf2c14 124 unsigned int const x,
ejh23 1:e11018cf2c14 125 unsigned int const y);
ejh23 1:e11018cf2c14 126
ejh23 1:e11018cf2c14 127 /** Print Character
ejh23 1:e11018cf2c14 128 *
ejh23 1:e11018cf2c14 129 * Sends a character to the screen buffer. Printed at the specified location. Character is cut-off after the 83rd pixel.
ejh23 1:e11018cf2c14 130 * @param c - the character to print. Can print ASCII as so printChar('C').
ejh23 1:e11018cf2c14 131 * @param x - the column number (0 to 83)
ejh23 1:e11018cf2c14 132 * @param y - the row number (0 to 5) - the display is split into 6 banks - each bank can be considered a row
ejh23 1:e11018cf2c14 133 */
ejh23 1:e11018cf2c14 134 void printChar(char const c,
ejh23 1:e11018cf2c14 135 unsigned int const x,
ejh23 1:e11018cf2c14 136 unsigned int const y);
ejh23 1:e11018cf2c14 137
ejh23 1:e11018cf2c14 138 /**
ejh23 1:e11018cf2c14 139 * @brief Set a Pixel
ejh23 1:e11018cf2c14 140 *
ejh23 1:e11018cf2c14 141 * @param x The x co-ordinate of the pixel (0 to 83)
ejh23 1:e11018cf2c14 142 * @param y The y co-ordinate of the pixel (0 to 47)
ejh23 1:e11018cf2c14 143 * @param state The state of the pixel [true=black (default), false=white]
ejh23 1:e11018cf2c14 144 *
ejh23 1:e11018cf2c14 145 * @details This function sets the state of a pixel in the screen buffer.
ejh23 1:e11018cf2c14 146 * The third parameter can be omitted,
ejh23 1:e11018cf2c14 147 */
ejh23 1:e11018cf2c14 148 void setPixel(unsigned int const x,
ejh23 1:e11018cf2c14 149 unsigned int const y,
ejh23 1:e11018cf2c14 150 bool const state = true);
ejh23 1:e11018cf2c14 151
ejh23 1:e11018cf2c14 152 /**
ejh23 1:e11018cf2c14 153 * @brief Clear a Pixel
ejh23 1:e11018cf2c14 154 *
ejh23 1:e11018cf2c14 155 * @param x - the x co-ordinate of the pixel (0 to 83)
ejh23 1:e11018cf2c14 156 * @param y - the y co-ordinate of the pixel (0 to 47)
ejh23 1:e11018cf2c14 157 *
ejh23 1:e11018cf2c14 158 * @details This function clears pixel in the screen buffer
ejh23 1:e11018cf2c14 159 *
ejh23 1:e11018cf2c14 160 * @deprecated Use setPixel(x, y, false) instead
ejh23 1:e11018cf2c14 161 */
ejh23 1:e11018cf2c14 162 void clearPixel(unsigned int const x,
ejh23 1:e11018cf2c14 163 unsigned int const y)
ejh23 1:e11018cf2c14 164 __attribute__((deprecated("Use setPixel(x,y,false) instead")));
ejh23 1:e11018cf2c14 165
ejh23 1:e11018cf2c14 166 /** Get a Pixel
ejh23 1:e11018cf2c14 167 *
ejh23 1:e11018cf2c14 168 * This function gets the status of a pixel in the screen buffer.
ejh23 1:e11018cf2c14 169 * @param x - the x co-ordinate of the pixel (0 to 83)
ejh23 1:e11018cf2c14 170 * @param y - the y co-ordinate of the pixel (0 to 47)
ejh23 1:e11018cf2c14 171 * @returns
ejh23 1:e11018cf2c14 172 * 0 - pixel is clear
ejh23 1:e11018cf2c14 173 * 1 - pixel is set
ejh23 1:e11018cf2c14 174 */
ejh23 1:e11018cf2c14 175 int getPixel(unsigned int const x,
ejh23 1:e11018cf2c14 176 unsigned int const y) const;
ejh23 1:e11018cf2c14 177
ejh23 1:e11018cf2c14 178 /** Refresh display
ejh23 1:e11018cf2c14 179 *
ejh23 1:e11018cf2c14 180 * This functions sends the screen buffer to the display.
ejh23 1:e11018cf2c14 181 */
ejh23 1:e11018cf2c14 182 void refresh();
ejh23 1:e11018cf2c14 183
ejh23 1:e11018cf2c14 184 /** Randomise buffer
ejh23 1:e11018cf2c14 185 *
ejh23 1:e11018cf2c14 186 * This function fills the buffer with random data. Can be used to test the display.
ejh23 1:e11018cf2c14 187 * A call to refresh() must be made to update the display to reflect the change in pixels.
ejh23 1:e11018cf2c14 188 * The seed is not set and so the generated pattern will probably be the same each time.
ejh23 1:e11018cf2c14 189 * TODO: Randomise the seed - maybe using the noise on the AnalogIn pins.
ejh23 1:e11018cf2c14 190 */
ejh23 1:e11018cf2c14 191 void randomiseBuffer();
ejh23 1:e11018cf2c14 192
ejh23 1:e11018cf2c14 193 /** Plot Array
ejh23 1:e11018cf2c14 194 *
ejh23 1:e11018cf2c14 195 * This function plots a one-dimensional array in the buffer.
ejh23 1:e11018cf2c14 196 * @param array[] - y values of the plot. Values should be normalised in the range 0.0 to 1.0. First 84 plotted.
ejh23 1:e11018cf2c14 197 */
ejh23 1:e11018cf2c14 198 void plotArray(float const array[]);
ejh23 1:e11018cf2c14 199
ejh23 1:e11018cf2c14 200 /** Draw Circle
ejh23 1:e11018cf2c14 201 *
ejh23 1:e11018cf2c14 202 * This function draws a circle at the specified origin with specified radius in the screen buffer
ejh23 1:e11018cf2c14 203 * Uses the midpoint circle algorithm.
ejh23 1:e11018cf2c14 204 * @see http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
ejh23 1:e11018cf2c14 205 * @param x0 - x-coordinate of centre
ejh23 1:e11018cf2c14 206 * @param y0 - y-coordinate of centre
ejh23 1:e11018cf2c14 207 * @param radius - radius of circle in pixels
ejh23 1:e11018cf2c14 208 * @param fill - fill-type for the shape
ejh23 1:e11018cf2c14 209 */
ejh23 1:e11018cf2c14 210 void drawCircle(unsigned int const x0,
ejh23 1:e11018cf2c14 211 unsigned int const y0,
ejh23 1:e11018cf2c14 212 unsigned int const radius,
ejh23 1:e11018cf2c14 213 FillType const fill);
ejh23 1:e11018cf2c14 214
ejh23 1:e11018cf2c14 215 /** Draw Line
ejh23 1:e11018cf2c14 216 *
ejh23 1:e11018cf2c14 217 * This function draws a line between the specified points using linear interpolation.
ejh23 1:e11018cf2c14 218 * @param x0 - x-coordinate of first point
ejh23 1:e11018cf2c14 219 * @param y0 - y-coordinate of first point
ejh23 1:e11018cf2c14 220 * @param x1 - x-coordinate of last point
ejh23 1:e11018cf2c14 221 * @param y1 - y-coordinate of last point
ejh23 1:e11018cf2c14 222 * @param type - 0 white,1 black,2 dotted
ejh23 1:e11018cf2c14 223 */
ejh23 1:e11018cf2c14 224 void drawLine(unsigned int const x0,
ejh23 1:e11018cf2c14 225 unsigned int const y0,
ejh23 1:e11018cf2c14 226 unsigned int const x1,
ejh23 1:e11018cf2c14 227 unsigned int const y1,
ejh23 1:e11018cf2c14 228 unsigned int const type);
ejh23 1:e11018cf2c14 229
ejh23 1:e11018cf2c14 230 /** Draw Rectangle
ejh23 1:e11018cf2c14 231 *
ejh23 1:e11018cf2c14 232 * This function draws a rectangle.
ejh23 1:e11018cf2c14 233 * @param x0 - x-coordinate of origin (top-left)
ejh23 1:e11018cf2c14 234 * @param y0 - y-coordinate of origin (top-left)
ejh23 1:e11018cf2c14 235 * @param width - width of rectangle
ejh23 1:e11018cf2c14 236 * @param height - height of rectangle
ejh23 1:e11018cf2c14 237 * @param fill - fill-type for the shape
ejh23 1:e11018cf2c14 238 */
ejh23 1:e11018cf2c14 239 void drawRect(unsigned int const x0,
ejh23 1:e11018cf2c14 240 unsigned int const y0,
ejh23 1:e11018cf2c14 241 unsigned int const width,
ejh23 1:e11018cf2c14 242 unsigned int const height,
ejh23 1:e11018cf2c14 243 FillType const fill);
ejh23 1:e11018cf2c14 244
ejh23 1:e11018cf2c14 245 /** Draw Sprite
ejh23 1:e11018cf2c14 246 *
ejh23 1:e11018cf2c14 247 * This function draws a sprite as defined in a 2D array
ejh23 1:e11018cf2c14 248 * @param x0 - x-coordinate of origin (top-left)
ejh23 1:e11018cf2c14 249 * @param y0 - y-coordinate of origin (top-left)
ejh23 1:e11018cf2c14 250 * @param nrows - number of rows in sprite
ejh23 1:e11018cf2c14 251 * @param ncols - number of columns in sprite
ejh23 1:e11018cf2c14 252 * @param sprite - 2D array representing the sprite
ejh23 1:e11018cf2c14 253 */
ejh23 1:e11018cf2c14 254 void drawSprite(int x0,
ejh23 1:e11018cf2c14 255 int y0,
ejh23 1:e11018cf2c14 256 int nrows,
ejh23 1:e11018cf2c14 257 int ncols,
ejh23 1:e11018cf2c14 258 int *sprite);
ejh23 1:e11018cf2c14 259
ejh23 1:e11018cf2c14 260
ejh23 1:e11018cf2c14 261 private:
ejh23 1:e11018cf2c14 262 // methods
ejh23 1:e11018cf2c14 263 void setXYAddress(unsigned int const x,
ejh23 1:e11018cf2c14 264 unsigned int const y);
ejh23 1:e11018cf2c14 265 void initSPI();
ejh23 1:e11018cf2c14 266 void turnOn();
ejh23 1:e11018cf2c14 267 void reset();
ejh23 1:e11018cf2c14 268 void clearRAM();
ejh23 1:e11018cf2c14 269 void sendCommand(unsigned char command);
ejh23 1:e11018cf2c14 270 void sendData(unsigned char data);
ejh23 1:e11018cf2c14 271 void setTempCoefficient(char tc); // 0 to 3
ejh23 1:e11018cf2c14 272 void setBias(char bias); // 0 to 7
ejh23 1:e11018cf2c14 273 };
ejh23 1:e11018cf2c14 274
ejh23 1:e11018cf2c14 275 const unsigned char font5x7[480] = {
ejh23 1:e11018cf2c14 276 0x00, 0x00, 0x00, 0x00, 0x00,// (space)
ejh23 1:e11018cf2c14 277 0x00, 0x00, 0x5F, 0x00, 0x00,// !
ejh23 1:e11018cf2c14 278 0x00, 0x07, 0x00, 0x07, 0x00,// "
ejh23 1:e11018cf2c14 279 0x14, 0x7F, 0x14, 0x7F, 0x14,// #
ejh23 1:e11018cf2c14 280 0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
ejh23 1:e11018cf2c14 281 0x23, 0x13, 0x08, 0x64, 0x62,// %
ejh23 1:e11018cf2c14 282 0x36, 0x49, 0x55, 0x22, 0x50,// &
ejh23 1:e11018cf2c14 283 0x00, 0x05, 0x03, 0x00, 0x00,// '
ejh23 1:e11018cf2c14 284 0x00, 0x1C, 0x22, 0x41, 0x00,// (
ejh23 1:e11018cf2c14 285 0x00, 0x41, 0x22, 0x1C, 0x00,// )
ejh23 1:e11018cf2c14 286 0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
ejh23 1:e11018cf2c14 287 0x08, 0x08, 0x3E, 0x08, 0x08,// +
ejh23 1:e11018cf2c14 288 0x00, 0x50, 0x30, 0x00, 0x00,// ,
ejh23 1:e11018cf2c14 289 0x08, 0x08, 0x08, 0x08, 0x08,// -
ejh23 1:e11018cf2c14 290 0x00, 0x60, 0x60, 0x00, 0x00,// .
ejh23 1:e11018cf2c14 291 0x20, 0x10, 0x08, 0x04, 0x02,// /
ejh23 1:e11018cf2c14 292 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
ejh23 1:e11018cf2c14 293 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
ejh23 1:e11018cf2c14 294 0x42, 0x61, 0x51, 0x49, 0x46,// 2
ejh23 1:e11018cf2c14 295 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
ejh23 1:e11018cf2c14 296 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
ejh23 1:e11018cf2c14 297 0x27, 0x45, 0x45, 0x45, 0x39,// 5
ejh23 1:e11018cf2c14 298 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
ejh23 1:e11018cf2c14 299 0x01, 0x71, 0x09, 0x05, 0x03,// 7
ejh23 1:e11018cf2c14 300 0x36, 0x49, 0x49, 0x49, 0x36,// 8
ejh23 1:e11018cf2c14 301 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
ejh23 1:e11018cf2c14 302 0x00, 0x36, 0x36, 0x00, 0x00,// :
ejh23 1:e11018cf2c14 303 0x00, 0x56, 0x36, 0x00, 0x00,// ;
ejh23 1:e11018cf2c14 304 0x00, 0x08, 0x14, 0x22, 0x41,// <
ejh23 1:e11018cf2c14 305 0x14, 0x14, 0x14, 0x14, 0x14,// =
ejh23 1:e11018cf2c14 306 0x41, 0x22, 0x14, 0x08, 0x00,// >
ejh23 1:e11018cf2c14 307 0x02, 0x01, 0x51, 0x09, 0x06,// ?
ejh23 1:e11018cf2c14 308 0x32, 0x49, 0x79, 0x41, 0x3E,// @
ejh23 1:e11018cf2c14 309 0x7E, 0x11, 0x11, 0x11, 0x7E,// A
ejh23 1:e11018cf2c14 310 0x7F, 0x49, 0x49, 0x49, 0x36,// B
ejh23 1:e11018cf2c14 311 0x3E, 0x41, 0x41, 0x41, 0x22,// C
ejh23 1:e11018cf2c14 312 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
ejh23 1:e11018cf2c14 313 0x7F, 0x49, 0x49, 0x49, 0x41,// E
ejh23 1:e11018cf2c14 314 0x7F, 0x09, 0x09, 0x01, 0x01,// F
ejh23 1:e11018cf2c14 315 0x3E, 0x41, 0x41, 0x51, 0x32,// G
ejh23 1:e11018cf2c14 316 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
ejh23 1:e11018cf2c14 317 0x00, 0x41, 0x7F, 0x41, 0x00,// I
ejh23 1:e11018cf2c14 318 0x20, 0x40, 0x41, 0x3F, 0x01,// J
ejh23 1:e11018cf2c14 319 0x7F, 0x08, 0x14, 0x22, 0x41,// K
ejh23 1:e11018cf2c14 320 0x7F, 0x40, 0x40, 0x40, 0x40,// L
ejh23 1:e11018cf2c14 321 0x7F, 0x02, 0x04, 0x02, 0x7F,// M
ejh23 1:e11018cf2c14 322 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
ejh23 1:e11018cf2c14 323 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
ejh23 1:e11018cf2c14 324 0x7F, 0x09, 0x09, 0x09, 0x06,// P
ejh23 1:e11018cf2c14 325 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
ejh23 1:e11018cf2c14 326 0x7F, 0x09, 0x19, 0x29, 0x46,// R
ejh23 1:e11018cf2c14 327 0x46, 0x49, 0x49, 0x49, 0x31,// S
ejh23 1:e11018cf2c14 328 0x01, 0x01, 0x7F, 0x01, 0x01,// T
ejh23 1:e11018cf2c14 329 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
ejh23 1:e11018cf2c14 330 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
ejh23 1:e11018cf2c14 331 0x7F, 0x20, 0x18, 0x20, 0x7F,// W
ejh23 1:e11018cf2c14 332 0x63, 0x14, 0x08, 0x14, 0x63,// X
ejh23 1:e11018cf2c14 333 0x03, 0x04, 0x78, 0x04, 0x03,// Y
ejh23 1:e11018cf2c14 334 0x61, 0x51, 0x49, 0x45, 0x43,// Z
ejh23 1:e11018cf2c14 335 0x00, 0x00, 0x7F, 0x41, 0x41,// [
ejh23 1:e11018cf2c14 336 0x02, 0x04, 0x08, 0x10, 0x20,// "\"
ejh23 1:e11018cf2c14 337 0x41, 0x41, 0x7F, 0x00, 0x00,// ]
ejh23 1:e11018cf2c14 338 0x04, 0x02, 0x01, 0x02, 0x04,// ^
ejh23 1:e11018cf2c14 339 0x40, 0x40, 0x40, 0x40, 0x40,// _
ejh23 1:e11018cf2c14 340 0x00, 0x01, 0x02, 0x04, 0x00,// `
ejh23 1:e11018cf2c14 341 0x20, 0x54, 0x54, 0x54, 0x78,// a
ejh23 1:e11018cf2c14 342 0x7F, 0x48, 0x44, 0x44, 0x38,// b
ejh23 1:e11018cf2c14 343 0x38, 0x44, 0x44, 0x44, 0x20,// c
ejh23 1:e11018cf2c14 344 0x38, 0x44, 0x44, 0x48, 0x7F,// d
ejh23 1:e11018cf2c14 345 0x38, 0x54, 0x54, 0x54, 0x18,// e
ejh23 1:e11018cf2c14 346 0x08, 0x7E, 0x09, 0x01, 0x02,// f
ejh23 1:e11018cf2c14 347 0x08, 0x14, 0x54, 0x54, 0x3C,// g
ejh23 1:e11018cf2c14 348 0x7F, 0x08, 0x04, 0x04, 0x78,// h
ejh23 1:e11018cf2c14 349 0x00, 0x44, 0x7D, 0x40, 0x00,// i
ejh23 1:e11018cf2c14 350 0x20, 0x40, 0x44, 0x3D, 0x00,// j
ejh23 1:e11018cf2c14 351 0x00, 0x7F, 0x10, 0x28, 0x44,// k
ejh23 1:e11018cf2c14 352 0x00, 0x41, 0x7F, 0x40, 0x00,// l
ejh23 1:e11018cf2c14 353 0x7C, 0x04, 0x18, 0x04, 0x78,// m
ejh23 1:e11018cf2c14 354 0x7C, 0x08, 0x04, 0x04, 0x78,// n
ejh23 1:e11018cf2c14 355 0x38, 0x44, 0x44, 0x44, 0x38,// o
ejh23 1:e11018cf2c14 356 0x7C, 0x14, 0x14, 0x14, 0x08,// p
ejh23 1:e11018cf2c14 357 0x08, 0x14, 0x14, 0x18, 0x7C,// q
ejh23 1:e11018cf2c14 358 0x7C, 0x08, 0x04, 0x04, 0x08,// r
ejh23 1:e11018cf2c14 359 0x48, 0x54, 0x54, 0x54, 0x20,// s
ejh23 1:e11018cf2c14 360 0x04, 0x3F, 0x44, 0x40, 0x20,// t
ejh23 1:e11018cf2c14 361 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
ejh23 1:e11018cf2c14 362 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
ejh23 1:e11018cf2c14 363 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
ejh23 1:e11018cf2c14 364 0x44, 0x28, 0x10, 0x28, 0x44,// x
ejh23 1:e11018cf2c14 365 0x0C, 0x50, 0x50, 0x50, 0x3C,// y
ejh23 1:e11018cf2c14 366 0x44, 0x64, 0x54, 0x4C, 0x44,// z
ejh23 1:e11018cf2c14 367 0x00, 0x08, 0x36, 0x41, 0x00,// {
ejh23 1:e11018cf2c14 368 0x00, 0x00, 0x7F, 0x00, 0x00,// |
ejh23 1:e11018cf2c14 369 0x00, 0x41, 0x36, 0x08, 0x00,// }
ejh23 1:e11018cf2c14 370 0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
ejh23 1:e11018cf2c14 371 0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
ejh23 1:e11018cf2c14 372 };
ejh23 1:e11018cf2c14 373
ejh23 1:e11018cf2c14 374 #endif