Sparkfun's Nokia Color LCD Arduino Shield library for FRDM boards

Dependents:   ColorLCDShield_Conway

Committer:
kayekss
Date:
Thu Feb 19 23:05:23 2015 +0000
Revision:
2:f4f7b91314a0
Parent:
0:86bb740bcaf7
Replaced KL25Z-specific pin definitions with universal names for Arduino-compatible boards

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kayekss 2:f4f7b91314a0 1 // ==================================================== Nov 08 2013, kayeks ==
kayekss 0:86bb740bcaf7 2 // ColorLCDShield.h
kayekss 2:f4f7b91314a0 3 // ===========================================================================
kayekss 0:86bb740bcaf7 4 // Sparkfun's Color LCD Shield (LCD-09363) library for mbed FRDM-KL25Z boards.
kayekss 0:86bb740bcaf7 5 // - https://www.sparkfun.com/products/9363
kayekss 0:86bb740bcaf7 6 // This library has modified from Sparkfun's Arduino library code
kayekss 0:86bb740bcaf7 7 // - Command/data transmissions are implemented as software SPI communication
kayekss 0:86bb740bcaf7 8 // because the FRDM board's MCUs are not 9-bit SPI capable :(
kayekss 0:86bb740bcaf7 9 // - License is `CC BY-SA 3.0'
kayekss 0:86bb740bcaf7 10 // - Original descriptions are below
kayekss 0:86bb740bcaf7 11
kayekss 0:86bb740bcaf7 12 /*
kayekss 0:86bb740bcaf7 13 ColorLCDShield.h - Arduino Library to control a Nokia 6100 LCD,
kayekss 0:86bb740bcaf7 14 specifically that found on SparkFun's Color LCD Shield.
kayekss 0:86bb740bcaf7 15 This code should work for both Epson and Phillips display drivers
kayekss 0:86bb740bcaf7 16 normally found on the Color LCD Shield.
kayekss 0:86bb740bcaf7 17
kayekss 0:86bb740bcaf7 18 License: CC BY-SA 3.0: Creative Commons Share-alike 3.0. Feel free
kayekss 0:86bb740bcaf7 19 to use and abuse this code however you'd like. If you find it useful
kayekss 0:86bb740bcaf7 20 please attribute, and SHARE-ALIKE!
kayekss 0:86bb740bcaf7 21
kayekss 0:86bb740bcaf7 22 This is based on code by Mark Sproul, and Peter Davenport.
kayekss 0:86bb740bcaf7 23 */
kayekss 0:86bb740bcaf7 24
kayekss 0:86bb740bcaf7 25 #ifndef ColorLCDShield_H
kayekss 0:86bb740bcaf7 26 #define ColorLCDShield_H
kayekss 0:86bb740bcaf7 27
kayekss 0:86bb740bcaf7 28 #define PHILLIPS 0
kayekss 0:86bb740bcaf7 29 #define PHILIPS 0
kayekss 0:86bb740bcaf7 30 #define EPSON 1
kayekss 0:86bb740bcaf7 31
kayekss 0:86bb740bcaf7 32 #include "mbed.h"
kayekss 0:86bb740bcaf7 33 #include <stdint.h>
kayekss 0:86bb740bcaf7 34
kayekss 0:86bb740bcaf7 35 //#include <WProgram.h>
kayekss 0:86bb740bcaf7 36
kayekss 0:86bb740bcaf7 37 // #include <inttypes.h>
kayekss 0:86bb740bcaf7 38 // #include <avr/pgmspace.h>
kayekss 0:86bb740bcaf7 39
kayekss 0:86bb740bcaf7 40 //*******************************************************
kayekss 0:86bb740bcaf7 41 // Macros
kayekss 0:86bb740bcaf7 42 //*******************************************************
kayekss 0:86bb740bcaf7 43 // #define sbi(var, mask) ((var) |= (uint8_t)(1 << mask))
kayekss 0:86bb740bcaf7 44 // #define cbi(var, mask) ((var) &= (uint8_t)~(1 << mask))
kayekss 0:86bb740bcaf7 45
kayekss 0:86bb740bcaf7 46 //********************************************************************
kayekss 0:86bb740bcaf7 47 //
kayekss 0:86bb740bcaf7 48 // LCD Dimension Definitions
kayekss 0:86bb740bcaf7 49 //
kayekss 0:86bb740bcaf7 50 //********************************************************************
kayekss 0:86bb740bcaf7 51 #define ROW_LENGTH 132
kayekss 0:86bb740bcaf7 52 #define COL_HEIGHT 132
kayekss 0:86bb740bcaf7 53 #define ENDPAGE 132
kayekss 0:86bb740bcaf7 54 #define ENDCOL 130
kayekss 0:86bb740bcaf7 55
kayekss 0:86bb740bcaf7 56 //********************************************************************
kayekss 0:86bb740bcaf7 57 //
kayekss 0:86bb740bcaf7 58 // EPSON Controller Definitions
kayekss 0:86bb740bcaf7 59 //
kayekss 0:86bb740bcaf7 60 //********************************************************************
kayekss 0:86bb740bcaf7 61 #define DISON 0xAF // Display on
kayekss 0:86bb740bcaf7 62 #define DISOFF 0xAE // Display off
kayekss 0:86bb740bcaf7 63 #define DISNOR 0xA6 // Normal display
kayekss 0:86bb740bcaf7 64 #define DISINV 0xA7 // Inverse display
kayekss 0:86bb740bcaf7 65 #define SLPIN 0x95 // Sleep in
kayekss 0:86bb740bcaf7 66 #define SLPOUT 0x94 // Sleep out
kayekss 0:86bb740bcaf7 67 #define COMSCN 0xBB // Common scan direction
kayekss 0:86bb740bcaf7 68 #define DISCTL 0xCA // Display control
kayekss 0:86bb740bcaf7 69 #define PASET 0x75 // Page address set
kayekss 0:86bb740bcaf7 70 #define CASET 0x15 // Column address set
kayekss 0:86bb740bcaf7 71 #define DATCTL 0xBC // Data scan direction, etc.
kayekss 0:86bb740bcaf7 72 #define RGBSET8 0xCE // 256-color position set
kayekss 0:86bb740bcaf7 73 #define RAMWR 0x5C // Writing to memory
kayekss 0:86bb740bcaf7 74 #define RAMRD 0x5D // Reading from memory
kayekss 0:86bb740bcaf7 75 #define PTLIN 0xA8 // Partial display in
kayekss 0:86bb740bcaf7 76 #define PTLOUT 0xA9 // Partial display out
kayekss 0:86bb740bcaf7 77 #define RMWIN 0xE0 // Read and modify write
kayekss 0:86bb740bcaf7 78 #define RMWOUT 0xEE // End
kayekss 0:86bb740bcaf7 79 #define ASCSET 0xAA // Area scroll set
kayekss 0:86bb740bcaf7 80 #define SCSTART 0xAB // Scroll start set
kayekss 0:86bb740bcaf7 81 #define OSCON 0xD1 // Internal oscillation on
kayekss 0:86bb740bcaf7 82 #define OSCOFF 0xD2 // Internal osciallation off
kayekss 0:86bb740bcaf7 83 #define PWRCTR 0x20 // Power control
kayekss 0:86bb740bcaf7 84 #define VOLCTR 0x81 // Electronic volume control
kayekss 0:86bb740bcaf7 85 #define VOLUP 0xD6 // Increment electronic control by 1
kayekss 0:86bb740bcaf7 86 #define VOLDOWN 0xD7 // Decrement electronic control by 1
kayekss 0:86bb740bcaf7 87 #define TMPGRD 0x82 // Temperature gradient set
kayekss 0:86bb740bcaf7 88 #define EPCTIN 0xCD // Control EEPROM
kayekss 0:86bb740bcaf7 89 #define EPCOUT 0xCC // Cancel EEPROM control
kayekss 0:86bb740bcaf7 90 #define EPMWR 0xFC // Write into EEPROM
kayekss 0:86bb740bcaf7 91 #define EPMRD 0xFD // Read from EEPROM
kayekss 0:86bb740bcaf7 92 #define EPSRRD1 0x7C // Read register 1
kayekss 0:86bb740bcaf7 93 #define EPSRRD2 0x7D // Read register 2
kayekss 0:86bb740bcaf7 94 #define NOP 0x25 // No op
kayekss 0:86bb740bcaf7 95
kayekss 0:86bb740bcaf7 96 //********************************************************************
kayekss 0:86bb740bcaf7 97 //
kayekss 0:86bb740bcaf7 98 // PHILLIPS Controller Definitions
kayekss 0:86bb740bcaf7 99 //
kayekss 0:86bb740bcaf7 100 //********************************************************************
kayekss 0:86bb740bcaf7 101 //LCD Commands
kayekss 0:86bb740bcaf7 102 #define NOPP 0x00 // No operation
kayekss 0:86bb740bcaf7 103 #define BSTRON 0x03 // Booster voltage on
kayekss 0:86bb740bcaf7 104 #define SLEEPIN 0x10 // Sleep in
kayekss 0:86bb740bcaf7 105 #define SLEEPOUT 0x11 // Sleep out
kayekss 0:86bb740bcaf7 106 #define NORON 0x13 // Normal display mode on
kayekss 0:86bb740bcaf7 107 #define INVOFF 0x20 // Display inversion off
kayekss 0:86bb740bcaf7 108 #define INVON 0x21 // Display inversion on
kayekss 0:86bb740bcaf7 109 #define SETCON 0x25 // Set contrast
kayekss 0:86bb740bcaf7 110 #define DISPOFF 0x28 // Display off
kayekss 0:86bb740bcaf7 111 #define DISPON 0x29 // Display on
kayekss 0:86bb740bcaf7 112 #define CASETP 0x2A // Column address set
kayekss 0:86bb740bcaf7 113 #define PASETP 0x2B // Page address set
kayekss 0:86bb740bcaf7 114 #define RAMWRP 0x2C // Memory write
kayekss 0:86bb740bcaf7 115 #define RGBSET 0x2D // Color set
kayekss 0:86bb740bcaf7 116 #define MADCTL 0x36 // Memory data access control
kayekss 0:86bb740bcaf7 117 #define COLMOD 0x3A // Interface pixel format
kayekss 0:86bb740bcaf7 118 #define DISCTR 0xB9 // Super frame inversion
kayekss 0:86bb740bcaf7 119 #define EC 0xC0 // Internal or external oscillator
kayekss 0:86bb740bcaf7 120
kayekss 0:86bb740bcaf7 121 //*******************************************************
kayekss 0:86bb740bcaf7 122 // 12-Bit Color Definitions
kayekss 0:86bb740bcaf7 123 //*******************************************************
kayekss 0:86bb740bcaf7 124 #define BLACK 0x000
kayekss 0:86bb740bcaf7 125 #define NAVY 0x008
kayekss 0:86bb740bcaf7 126 #define BLUE 0x00F
kayekss 0:86bb740bcaf7 127 #define TEAL 0x088
kayekss 0:86bb740bcaf7 128 #define EMERALD 0x0C5
kayekss 0:86bb740bcaf7 129 #define GREEN 0x0F0
kayekss 0:86bb740bcaf7 130 #define CYAN 0x0FF
kayekss 0:86bb740bcaf7 131 #define SLATE 0x244
kayekss 0:86bb740bcaf7 132 #define INDIGO 0x408
kayekss 0:86bb740bcaf7 133 #define TURQUOISE 0x4ED
kayekss 0:86bb740bcaf7 134 #define OLIVE 0x682
kayekss 0:86bb740bcaf7 135 #define MAROON 0x800
kayekss 0:86bb740bcaf7 136 #define PURPLE 0x808
kayekss 0:86bb740bcaf7 137 #define GRAY 0x888
kayekss 0:86bb740bcaf7 138 #define SKYBLUE 0x8CE
kayekss 0:86bb740bcaf7 139 #define BROWN 0xB22
kayekss 0:86bb740bcaf7 140 #define CRIMSON 0xD13
kayekss 0:86bb740bcaf7 141 #define ORCHID 0xD7D
kayekss 0:86bb740bcaf7 142 #define RED 0xF00
kayekss 0:86bb740bcaf7 143 #define MAGENTA 0xF0F
kayekss 0:86bb740bcaf7 144 #define ORANGE 0xF40
kayekss 0:86bb740bcaf7 145 #define PINK 0xF6A
kayekss 0:86bb740bcaf7 146 #define CORAL 0xF75
kayekss 0:86bb740bcaf7 147 #define SALMON 0xF87
kayekss 0:86bb740bcaf7 148 #define GOLD 0xFD0
kayekss 0:86bb740bcaf7 149 #define YELLOW 0xFF0
kayekss 0:86bb740bcaf7 150 #define WHITE 0xFFF
kayekss 0:86bb740bcaf7 151
kayekss 0:86bb740bcaf7 152 //*******************************************************
kayekss 0:86bb740bcaf7 153 // Circle Definitions
kayekss 0:86bb740bcaf7 154 //*******************************************************
kayekss 0:86bb740bcaf7 155 #define FILL 0
kayekss 0:86bb740bcaf7 156
kayekss 0:86bb740bcaf7 157 //******************************************************
kayekss 0:86bb740bcaf7 158 // Arc Definitions
kayekss 0:86bb740bcaf7 159 //******************************************************
kayekss 0:86bb740bcaf7 160 #define ESE 1
kayekss 0:86bb740bcaf7 161 #define ENE 2
kayekss 0:86bb740bcaf7 162 #define WSW 3
kayekss 0:86bb740bcaf7 163 #define WNW 4
kayekss 0:86bb740bcaf7 164 #define SSE 5
kayekss 0:86bb740bcaf7 165 #define NNE 6
kayekss 0:86bb740bcaf7 166 #define SSW 7
kayekss 0:86bb740bcaf7 167 #define NNW 8
kayekss 0:86bb740bcaf7 168
kayekss 0:86bb740bcaf7 169 const unsigned char FONT8x16[97][16] = {
kayekss 0:86bb740bcaf7 170 {0x08,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // columns, rows, bytes, ...
kayekss 0:86bb740bcaf7 171 {0x08,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // columns, rows, bytes, ...
kayekss 0:86bb740bcaf7 172 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // ' '
kayekss 0:86bb740bcaf7 173 {0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00}, // '!'
kayekss 0:86bb740bcaf7 174 {0x00,0x63,0x63,0x63,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // '"'
kayekss 0:86bb740bcaf7 175 {0x00,0x00,0x00,0x36,0x36,0x7F,0x36,0x36,0x36,0x7F,0x36,0x36,0x00,0x00,0x00,0x00}, // '#'
kayekss 0:86bb740bcaf7 176 {0x0C,0x0C,0x3E,0x63,0x61,0x60,0x3E,0x03,0x03,0x43,0x63,0x3E,0x0C,0x0C,0x00,0x00}, // '$'
kayekss 0:86bb740bcaf7 177 {0x00,0x00,0x00,0x00,0x00,0x61,0x63,0x06,0x0C,0x18,0x33,0x63,0x00,0x00,0x00,0x00}, // '%'
kayekss 0:86bb740bcaf7 178 {0x00,0x00,0x00,0x1C,0x36,0x36,0x1C,0x3B,0x6E,0x66,0x66,0x3B,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 179 {0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 180 {0x00,0x00,0x0C,0x18,0x18,0x30,0x30,0x30,0x30,0x18,0x18,0x0C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 181 {0x00,0x00,0x18,0x0C,0x0C,0x06,0x06,0x06,0x06,0x0C,0x0C,0x18,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 182 {0x00,0x00,0x00,0x00,0x42,0x66,0x3C,0xFF,0x3C,0x66,0x42,0x00,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 183 {0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 184 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00},
kayekss 0:86bb740bcaf7 185 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 186 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 187 {0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 188 {0x00,0x00,0x3E,0x63,0x63,0x63,0x6B,0x6B,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00}, // '0'
kayekss 0:86bb740bcaf7 189 {0x00,0x00,0x0C,0x1C,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3F,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 190 {0x00,0x00,0x3E,0x63,0x03,0x06,0x0C,0x18,0x30,0x61,0x63,0x7F,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 191 {0x00,0x00,0x3E,0x63,0x03,0x03,0x1E,0x03,0x03,0x03,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 192 {0x00,0x00,0x06,0x0E,0x1E,0x36,0x66,0x66,0x7F,0x06,0x06,0x0F,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 193 {0x00,0x00,0x7F,0x60,0x60,0x60,0x7E,0x03,0x03,0x63,0x73,0x3E,0x00,0x00,0x00,0x00}, // '5'
kayekss 0:86bb740bcaf7 194 {0x00,0x00,0x1C,0x30,0x60,0x60,0x7E,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 195 {0x00,0x00,0x7F,0x63,0x03,0x06,0x06,0x0C,0x0C,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 196 {0x00,0x00,0x3E,0x63,0x63,0x63,0x3E,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 197 {0x00,0x00,0x3E,0x63,0x63,0x63,0x63,0x3F,0x03,0x03,0x06,0x3C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 198 {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00}, // ':'
kayekss 0:86bb740bcaf7 199 {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00},
kayekss 0:86bb740bcaf7 200 {0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 201 {0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 202 {0x00,0x00,0x00,0x60,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x60,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 203 {0x00,0x00,0x3E,0x63,0x63,0x06,0x0C,0x0C,0x0C,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 204 {0x00,0x00,0x3E,0x63,0x63,0x6F,0x6B,0x6B,0x6E,0x60,0x60,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 205 {0x00,0x00,0x08,0x1C,0x36,0x63,0x63,0x63,0x7F,0x63,0x63,0x63,0x00,0x00,0x00,0x00}, // 'A'
kayekss 0:86bb740bcaf7 206 {0x00,0x00,0x7E,0x33,0x33,0x33,0x3E,0x33,0x33,0x33,0x33,0x7E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 207 {0x00,0x00,0x1E,0x33,0x61,0x60,0x60,0x60,0x60,0x61,0x33,0x1E,0x00,0x00,0x00,0x00}, // 'C'
kayekss 0:86bb740bcaf7 208 {0x00,0x00,0x7C,0x36,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x7C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 209 {0x00,0x00,0x7F,0x33,0x31,0x34,0x3C,0x34,0x30,0x31,0x33,0x7F,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 210 {0x00,0x00,0x7F,0x33,0x31,0x34,0x3C,0x34,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 211 {0x00,0x00,0x1E,0x33,0x61,0x60,0x60,0x6F,0x63,0x63,0x37,0x1D,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 212 {0x00,0x00,0x63,0x63,0x63,0x63,0x7F,0x63,0x63,0x63,0x63,0x63,0x00,0x00,0x00,0x00}, // 'H'
kayekss 0:86bb740bcaf7 213 {0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 214 {0x00,0x00,0x0F,0x06,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 215 {0x00,0x00,0x73,0x33,0x36,0x36,0x3C,0x36,0x36,0x33,0x33,0x73,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 216 {0x00,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x33,0x7F,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 217 {0x00,0x00,0x63,0x77,0x7F,0x6B,0x63,0x63,0x63,0x63,0x63,0x63,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 218 {0x00,0x00,0x63,0x63,0x73,0x7B,0x7F,0x6F,0x67,0x63,0x63,0x63,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 219 {0x00,0x00,0x1C,0x36,0x63,0x63,0x63,0x63,0x63,0x63,0x36,0x1C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 220 {0x00,0x00,0x7E,0x33,0x33,0x33,0x3E,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 221 {0x00,0x00,0x3E,0x63,0x63,0x63,0x63,0x63,0x63,0x6B,0x6F,0x3E,0x06,0x07,0x00,0x00},
kayekss 0:86bb740bcaf7 222 {0x00,0x00,0x7E,0x33,0x33,0x33,0x3E,0x36,0x36,0x33,0x33,0x73,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 223 {0x00,0x00,0x3E,0x63,0x63,0x30,0x1C,0x06,0x03,0x63,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 224 {0x00,0x00,0xFF,0xDB,0x99,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 225 {0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 226 {0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x36,0x1C,0x08,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 227 {0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x6B,0x6B,0x7F,0x36,0x36,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 228 {0x00,0x00,0xC3,0xC3,0x66,0x3C,0x18,0x18,0x3C,0x66,0xC3,0xC3,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 229 {0x00,0x00,0xC3,0xC3,0xC3,0x66,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 230 {0x00,0x00,0x7F,0x63,0x43,0x06,0x0C,0x18,0x30,0x61,0x63,0x7F,0x00,0x00,0x00,0x00}, // 'Z'
kayekss 0:86bb740bcaf7 231 {0x00,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 232 {0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x07,0x03,0x01,0x00,0x00,0x00,0x00}, // '\'
kayekss 0:86bb740bcaf7 233 {0x00,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 234 {0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 235 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00}, // '^'
kayekss 0:86bb740bcaf7 236 {0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 237 {0x00,0x00,0x00,0x00,0x00,0x3C,0x46,0x06,0x3E,0x66,0x66,0x3B,0x00,0x00,0x00,0x00}, // '_'
kayekss 0:86bb740bcaf7 238 {0x00,0x00,0x70,0x30,0x30,0x3C,0x36,0x33,0x33,0x33,0x33,0x6E,0x00,0x00,0x00,0x00}, // '`'
kayekss 0:86bb740bcaf7 239 {0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x60,0x60,0x60,0x63,0x3E,0x00,0x00,0x00,0x00}, // 'a'
kayekss 0:86bb740bcaf7 240 {0x00,0x00,0x0E,0x06,0x06,0x1E,0x36,0x66,0x66,0x66,0x66,0x3B,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 241 {0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x63,0x7E,0x60,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 242 {0x00,0x00,0x1C,0x36,0x32,0x30,0x7C,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 243 {0x00,0x00,0x00,0x00,0x00,0x3B,0x66,0x66,0x66,0x66,0x3E,0x06,0x66,0x3C,0x00,0x00},
kayekss 0:86bb740bcaf7 244 {0x00,0x00,0x70,0x30,0x30,0x36,0x3B,0x33,0x33,0x33,0x33,0x73,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 245 {0x00,0x00,0x0C,0x0C,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 246 {0x00,0x00,0x06,0x06,0x00,0x0E,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3C,0x00,0x00},
kayekss 0:86bb740bcaf7 247 {0x00,0x00,0x70,0x30,0x30,0x33,0x33,0x36,0x3C,0x36,0x33,0x73,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 248 {0x00,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 249 {0x00,0x00,0x00,0x00,0x00,0x6E,0x7F,0x6B,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 250 {0x00,0x00,0x00,0x00,0x00,0x6E,0x33,0x33,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 251 {0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 252 {0x00,0x00,0x00,0x00,0x00,0x6E,0x33,0x33,0x33,0x33,0x3E,0x30,0x30,0x78,0x00,0x00},
kayekss 0:86bb740bcaf7 253 {0x00,0x00,0x00,0x00,0x00,0x3B,0x66,0x66,0x66,0x66,0x3E,0x06,0x06,0x0F,0x00,0x00},
kayekss 0:86bb740bcaf7 254 {0x00,0x00,0x00,0x00,0x00,0x6E,0x3B,0x33,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 255 {0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x38,0x0E,0x03,0x63,0x3E,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 256 {0x00,0x00,0x08,0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x1B,0x0E,0x00,0x00,0x00,0x00}, // 't'
kayekss 0:86bb740bcaf7 257 {0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3B,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 258 {0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x36,0x36,0x1C,0x1C,0x08,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 259 {0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,0x6B,0x6B,0x7F,0x36,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 260 {0x00,0x00,0x00,0x00,0x00,0x63,0x36,0x1C,0x1C,0x1C,0x36,0x63,0x00,0x00,0x00,0x00},
kayekss 0:86bb740bcaf7 261 {0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x3F,0x03,0x06,0x3C,0x00,0x00},
kayekss 0:86bb740bcaf7 262 {0x00,0x00,0x00,0x00,0x00,0x7F,0x66,0x0C,0x18,0x30,0x63,0x7F,0x00,0x00,0x00,0x00}, // 'z'
kayekss 0:86bb740bcaf7 263 {0x00,0x00,0x0E,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0E,0x00,0x00,0x00,0x00}, // '{'
kayekss 0:86bb740bcaf7 264 {0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00}, // '|'
kayekss 0:86bb740bcaf7 265 {0x00,0x00,0x70,0x18,0x18,0x18,0x0E,0x18,0x18,0x18,0x18,0x70,0x00,0x00,0x00,0x00}, // '}'
kayekss 0:86bb740bcaf7 266 {0x00,0x00,0x3B,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} // '~'
kayekss 0:86bb740bcaf7 267 };
kayekss 0:86bb740bcaf7 268
kayekss 0:86bb740bcaf7 269 static unsigned char logo_spark[1120] = {
kayekss 0:86bb740bcaf7 270 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 271 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 272 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 273 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 274 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 275 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 276 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 277 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 278 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x3f,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 279 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x3f,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 280 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x7f,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 281 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 282 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 283 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 284 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 285 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 286 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 287 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 288 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 289 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 290 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 291 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 292 0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x20,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 293 0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 294 0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 295 0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 296 0x0f,0xe0,0x9f,0x01,0xfc,0x09,0x9e,0x1e,0x7f,0x70,0x73,0x9f,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 297 0x3f,0xf1,0xff,0x87,0xfe,0x3f,0xde,0x3d,0xff,0x78,0xf3,0xff,0x80,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 298 0x3c,0xf9,0xff,0xc7,0xdf,0x3f,0xde,0x79,0xff,0x78,0xf3,0xff,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 299 0x78,0x79,0xc3,0xcf,0x0f,0x3f,0x1c,0xf0,0x3c,0x78,0xf3,0xe3,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 300 0x7c,0x01,0xc1,0xe0,0x0f,0x3e,0x1f,0xe0,0x3c,0x78,0xf3,0xc3,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 301 0x3f,0xc1,0x81,0xe0,0x3f,0x3c,0x1f,0xe0,0x3c,0x78,0xf3,0xc1,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 302 0x1f,0xf1,0x81,0xe3,0xff,0x3c,0x1f,0xe0,0x3c,0x78,0xf3,0xc1,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 303 0x07,0xf9,0x81,0xe7,0xef,0x3c,0x1f,0xf0,0x3c,0x78,0xf3,0xc1,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 304 0x00,0xf9,0x81,0xef,0x07,0x3c,0x1e,0xf8,0x3c,0x78,0xf3,0xc1,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 305 0x78,0x79,0xc1,0xef,0x0f,0x3c,0x1e,0x78,0x3c,0x78,0xf3,0xc1,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 306 0x78,0x79,0xe3,0xcf,0x0f,0x3c,0x1e,0x3c,0x3c,0x7c,0xf3,0xc1,0xc0,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 307 0x3f,0xf9,0xff,0xcf,0xff,0x3c,0x1e,0x3e,0x3c,0x7f,0xf3,0xc1,0xcf,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 308 0x1f,0xf1,0xff,0x87,0xff,0x3c,0x1e,0x1e,0x3c,0x3f,0xf3,0xc1,0xc7,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 309 0x07,0xc1,0x9e,0x03,0xe0,0x00,0x00,0x02,0x00,0x0e,0x20,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 310 0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 311 0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 312 0x00,0x03,0x80,0x00,0x00,0x00,0xc0,0x00,0x00,0x18,0x00,0x00,0x08,0x08,0x00,0x00,
kayekss 0:86bb740bcaf7 313 0x00,0x01,0x87,0xc3,0x03,0xe0,0xe1,0xf0,0xf8,0x3e,0x33,0x08,0x3e,0x1e,0x00,0x00,
kayekss 0:86bb740bcaf7 314 0x00,0x01,0x86,0x03,0x03,0x01,0xb0,0xe0,0xdc,0x66,0x3b,0x08,0x66,0x32,0x00,0x00,
kayekss 0:86bb740bcaf7 315 0x00,0x00,0x87,0xc3,0x03,0xe1,0x80,0x40,0xd8,0x63,0x3b,0x08,0x60,0x3c,0x00,0x00,
kayekss 0:86bb740bcaf7 316 0x00,0x00,0x87,0x83,0x03,0xc1,0x80,0x40,0xf8,0x63,0x3f,0x08,0x60,0x0e,0x00,0x00,
kayekss 0:86bb740bcaf7 317 0x00,0x00,0x06,0x03,0x03,0x01,0xb0,0x40,0xd8,0x66,0x37,0x08,0x66,0x32,0x00,0x00,
kayekss 0:86bb740bcaf7 318 0x00,0x00,0x07,0xc3,0xe3,0xe0,0xe0,0x40,0xc8,0x3e,0x33,0x08,0x3e,0x3e,0x00,0x00,
kayekss 0:86bb740bcaf7 319 0x00,0x00,0x07,0xc3,0xe3,0xe0,0xe0,0x40,0x88,0x3c,0x33,0x08,0x3c,0x1e,0x00,0x00,
kayekss 0:86bb740bcaf7 320 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 321 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 322 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 323 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 324 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 325 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
kayekss 0:86bb740bcaf7 326 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
kayekss 0:86bb740bcaf7 327
kayekss 0:86bb740bcaf7 328 class LCDShield
kayekss 0:86bb740bcaf7 329 {
kayekss 0:86bb740bcaf7 330 private:
kayekss 0:86bb740bcaf7 331 void LCDCommand(unsigned char data);
kayekss 0:86bb740bcaf7 332 void LCDData(unsigned char data);
kayekss 0:86bb740bcaf7 333 uint8_t driver;
kayekss 0:86bb740bcaf7 334 uint16_t swapColors(uint16_t in);
kayekss 0:86bb740bcaf7 335 public:
kayekss 0:86bb740bcaf7 336 LCDShield();
kayekss 0:86bb740bcaf7 337
kayekss 0:86bb740bcaf7 338 void init(int type, bool colorSwap = 0);
kayekss 0:86bb740bcaf7 339 void clear(int color);
kayekss 0:86bb740bcaf7 340 void contrast(char setting);
kayekss 0:86bb740bcaf7 341
kayekss 0:86bb740bcaf7 342 void setPixel(int color, unsigned char x, unsigned char y);
kayekss 0:86bb740bcaf7 343 void setCircle (int x0, int y0, int radius, int color, int lineThickness = 1);
kayekss 0:86bb740bcaf7 344 void setArc(int x0, int y0, int radius, int segments[], int numSegments, int lineThickness, int color);
kayekss 0:86bb740bcaf7 345
kayekss 0:86bb740bcaf7 346 void setChar(char c, int x, int y, int fColor, int bColor);
kayekss 0:86bb740bcaf7 347 void setStr(char *pString, int x, int y, int fColor, int bColor);
kayekss 0:86bb740bcaf7 348
kayekss 0:86bb740bcaf7 349
kayekss 0:86bb740bcaf7 350 void setLine(int x0, int y0, int x1, int y1, int color);
kayekss 0:86bb740bcaf7 351 void setRect(int x0, int y0, int x1, int y1, unsigned char fill, int color);
kayekss 0:86bb740bcaf7 352
kayekss 0:86bb740bcaf7 353 void printLogo(void);
kayekss 0:86bb740bcaf7 354
kayekss 0:86bb740bcaf7 355 void on(void);
kayekss 0:86bb740bcaf7 356 void off(void);
kayekss 0:86bb740bcaf7 357 };
kayekss 0:86bb740bcaf7 358
kayekss 0:86bb740bcaf7 359 #endif // ColorLCDShield_H