Hexiwear OLED Display Driver

Dependents:   Hexi_OLED_TextImage_Example Hexi_OLED_Text_Example Hexi_OLED_Image_Example security-console-app ... more

Committer:
khuang
Date:
Sat Sep 24 19:45:48 2016 +0000
Revision:
8:ae5fad429790
Parent:
6:0060ffa3f4dc
Commented out checking to see if text will fit in textbox for DrawTextBox. Font width and height specified in font information may be too much.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
khuang 5:a5b4b36a1aed 1 /** OLED Screen Info
khuang 6:0060ffa3f4dc 2 * This file contains OLED screen SSD1351-related defines and macros.
khuang 2:fc06b5b5bf6a 3 *
khuang 2:fc06b5b5bf6a 4 * Redistribution and use in source and binary forms, with or without modification,
khuang 2:fc06b5b5bf6a 5 * are permitted provided that the following conditions are met:
khuang 2:fc06b5b5bf6a 6 *
khuang 2:fc06b5b5bf6a 7 * Redistributions of source code must retain the above copyright notice, this list
khuang 5:a5b4b36a1aed 8 * of conditions and the following disclaimer.
khuang 2:fc06b5b5bf6a 9 *
khuang 2:fc06b5b5bf6a 10 * Redistributions in binary form must reproduce the above copyright notice, this
khuang 5:a5b4b36a1aed 11 * list of conditions and the following disclaimer in the documentation and/or
khuang 5:a5b4b36a1aed 12 * other materials provided with the distribution.
khuang 2:fc06b5b5bf6a 13 *
khuang 2:fc06b5b5bf6a 14 * Neither the name of NXP, nor the names of its
khuang 5:a5b4b36a1aed 15 * contributors may be used to endorse or promote products derived from this
khuang 5:a5b4b36a1aed 16 * software without specific prior written permission.
khuang 2:fc06b5b5bf6a 17 *
khuang 2:fc06b5b5bf6a 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
khuang 2:fc06b5b5bf6a 19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
khuang 2:fc06b5b5bf6a 20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
khuang 2:fc06b5b5bf6a 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
khuang 2:fc06b5b5bf6a 22 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
khuang 2:fc06b5b5bf6a 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
khuang 2:fc06b5b5bf6a 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
khuang 2:fc06b5b5bf6a 25 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
khuang 2:fc06b5b5bf6a 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
khuang 2:fc06b5b5bf6a 27 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
khuang 2:fc06b5b5bf6a 28 *
khuang 2:fc06b5b5bf6a 29 * visit: http://www.mikroe.com and http://www.nxp.com
khuang 2:fc06b5b5bf6a 30 *
khuang 2:fc06b5b5bf6a 31 * get support at: http://www.mikroe.com/forum and https://community.nxp.com
khuang 2:fc06b5b5bf6a 32 *
khuang 0:06f42dd3eab3 33 * Project HEXIWEAR, 2015
khuang 0:06f42dd3eab3 34 */
khuang 2:fc06b5b5bf6a 35
khuang 0:06f42dd3eab3 36 #ifndef HG_OLED_INFO
khuang 0:06f42dd3eab3 37 #define HG_OLED_INFO
khuang 0:06f42dd3eab3 38
khuang 0:06f42dd3eab3 39 // command byte number
khuang 2:fc06b5b5bf6a 40 #define CMD_BYTE (1)
khuang 2:fc06b5b5bf6a 41 #define DATA_BYTE (0)
khuang 0:06f42dd3eab3 42
khuang 0:06f42dd3eab3 43 #define OLED_COLUMN_OFFSET (16)
khuang 0:06f42dd3eab3 44 #define OLED_ROW_OFFSET (0)
khuang 0:06f42dd3eab3 45
khuang 0:06f42dd3eab3 46 #define OLED_SCREEN_WIDTH (96)
khuang 0:06f42dd3eab3 47 #define OLED_SCREEN_HEIGHT (96)
khuang 0:06f42dd3eab3 48
khuang 0:06f42dd3eab3 49 #define OLED_SCREEN_WIDTH_END ( (OLED_SCREEN_WIDTH-1) + OLED_COLUMN_OFFSET )
khuang 0:06f42dd3eab3 50 #define OLED_SCREEN_HEIGHT_END ( (OLED_SCREEN_HEIGHT-1) + OLED_ROW_OFFSET )
khuang 0:06f42dd3eab3 51
khuang 0:06f42dd3eab3 52 #define OLED_BYTES_PER_PIXEL ( 2 )
khuang 0:06f42dd3eab3 53
khuang 0:06f42dd3eab3 54 #define OLED_TRANSITION_STEP ( 1 )
khuang 0:06f42dd3eab3 55 #define OLED_ACTION_DCON ( 0xFE )
khuang 0:06f42dd3eab3 56 #define OLED_ACTION_DCOFF ( 0xFF )
khuang 0:06f42dd3eab3 57
khuang 0:06f42dd3eab3 58 #define OLED_CHAR_WIDTH_AUTO ( 0xFF )
khuang 0:06f42dd3eab3 59 #define OLED_CHAR_WIDTH_MAX ( 0xFE )
khuang 0:06f42dd3eab3 60 #define OLED_CHAR_WIDTH_NUM ( 0xFD )
khuang 0:06f42dd3eab3 61 #define OLED_CHAR_WIDTH_KEEP ( 0xFC )
khuang 0:06f42dd3eab3 62 #define OLED_CHAR_HEIGHT_AUTO ( 0xFB )
khuang 0:06f42dd3eab3 63 #define OLED_CHAR_HEIGHT_KEEP ( 0xFA )
khuang 0:06f42dd3eab3 64
khuang 0:06f42dd3eab3 65 #define OLED_SCREEN_SIZE ( OLED_SCREEN_WIDTH * OLED_SCREEN_HEIGHT )
khuang 0:06f42dd3eab3 66 #define OLED_GRAM_SIZE ( OLED_SCREEN_WIDTH * OLED_SCREEN_HEIGHT * OLED_BYTES_PER_PIXEL )
khuang 0:06f42dd3eab3 67
khuang 0:06f42dd3eab3 68 #define OLED_TEXT_HALIGN_SHIFT ( 0 )
khuang 0:06f42dd3eab3 69 #define OLED_TEXT_HALIGN_MASK ( 0x03 << OLED_TEXT_HALIGN_SHIFT )
khuang 0:06f42dd3eab3 70
khuang 0:06f42dd3eab3 71 #define OLED_TEXT_VALIGN_SHIFT ( 4 )
khuang 0:06f42dd3eab3 72 #define OLED_TEXT_VALIGN_MASK ( 0x03 << OLED_TEXT_VALIGN_SHIFT )
khuang 0:06f42dd3eab3 73
khuang 0:06f42dd3eab3 74 #define BMP_HEADER_BYTE_SIZE (6)
khuang 0:06f42dd3eab3 75
khuang 0:06f42dd3eab3 76
khuang 0:06f42dd3eab3 77
khuang 0:06f42dd3eab3 78 /**
khuang 0:06f42dd3eab3 79 * remap settings
khuang 0:06f42dd3eab3 80 */
khuang 0:06f42dd3eab3 81
khuang 0:06f42dd3eab3 82 #define REMAP_HORIZONTAL_INCREMENT ( 0 )
khuang 0:06f42dd3eab3 83 #define REMAP_VERTICAL_INCREMENT ( 1 << 0 )
khuang 0:06f42dd3eab3 84
khuang 0:06f42dd3eab3 85 #define REMAP_COLUMNS_LEFT_TO_RIGHT ( 0 )
khuang 0:06f42dd3eab3 86 #define REMAP_COLUMNS_RIGHT_TO_LEFT ( 1 << 1 )
khuang 0:06f42dd3eab3 87
khuang 0:06f42dd3eab3 88 #define REMAP_ORDER_ABC ( 0 )
khuang 0:06f42dd3eab3 89 #define REMAP_ORDER_CBA ( 1 << 2 )
khuang 0:06f42dd3eab3 90
khuang 0:06f42dd3eab3 91 #define REMAP_SCAN_UP_TO_DOWN ( 0 )
khuang 0:06f42dd3eab3 92 #define REMAP_SCAN_DOWN_TO_UP ( 1 << 4 )
khuang 0:06f42dd3eab3 93
khuang 0:06f42dd3eab3 94 #define REMAP_COM_SPLIT_ODD_EVEN_DIS ( 0 )
khuang 0:06f42dd3eab3 95 #define REMAP_COM_SPLIT_ODD_EVEN_EN ( 1 << 5 )
khuang 0:06f42dd3eab3 96
khuang 0:06f42dd3eab3 97 #define REMAP_COLOR_RGB565 ( 1 << 6 )
khuang 0:06f42dd3eab3 98
khuang 0:06f42dd3eab3 99 #define OLED_REMAP_SETTINGS ( REMAP_ORDER_ABC | REMAP_COM_SPLIT_ODD_EVEN_EN | REMAP_COLOR_RGB565 | REMAP_COLUMNS_LEFT_TO_RIGHT | REMAP_SCAN_UP_TO_DOWN | REMAP_HORIZONTAL_INCREMENT )
khuang 0:06f42dd3eab3 100
khuang 0:06f42dd3eab3 101 /**
khuang 0:06f42dd3eab3 102 * macros
khuang 0:06f42dd3eab3 103 */
khuang 0:06f42dd3eab3 104
khuang 0:06f42dd3eab3 105 #define OLED_SwapMe(x) x = ( ( x & 0xFF00 ) >> 8 ) | ( ( x & 0x00FF ) << 8 )
khuang 0:06f42dd3eab3 106 #define OLED_AdjustRowOffset(y) y += OLED_ROW_OFFSET
khuang 0:06f42dd3eab3 107 #define OLED_AdjustColumnOffset(x) x += OLED_COLUMN_OFFSET
khuang 0:06f42dd3eab3 108
khuang 0:06f42dd3eab3 109 #define BMP_SkipHeader( imgPtr ) ( (const uint8_t*)(imgPtr) + BMP_HEADER_BYTE_SIZE )
khuang 0:06f42dd3eab3 110
khuang 0:06f42dd3eab3 111
khuang 0:06f42dd3eab3 112 #define CheckLimits( x, y, w, h ) ( ( ( x + w - 1 ) > OLED_SCREEN_WIDTH ) || ( x < 0 ) || ( ( y + h - 1 ) > OLED_SCREEN_HEIGHT ) || ( y < 0 ) )
khuang 0:06f42dd3eab3 113 #define AreCoordsValid( x, y, w, h ) ( 0 == CheckLimits( x, y, w ,h ) )
khuang 0:06f42dd3eab3 114 #define AreCoordsNotValid( x, y, w, h ) ( 0 != CheckLimits( x, y, w, h ) )
khuang 0:06f42dd3eab3 115
khuang 0:06f42dd3eab3 116
khuang 0:06f42dd3eab3 117 /**
khuang 0:06f42dd3eab3 118 * set start/end column/row
khuang 0:06f42dd3eab3 119 * the 2nd and 3rd byte represent the start and the end address, respectively
khuang 0:06f42dd3eab3 120 */
khuang 0:06f42dd3eab3 121 #define OLED_CMD_SET_COLUMN ( 0x15 )
khuang 0:06f42dd3eab3 122 #define OLED_CMD_SET_ROW ( 0x75 )
khuang 0:06f42dd3eab3 123
khuang 0:06f42dd3eab3 124 /**
khuang 0:06f42dd3eab3 125 * scanning direction
khuang 0:06f42dd3eab3 126 */
khuang 0:06f42dd3eab3 127
khuang 0:06f42dd3eab3 128 #define OLED_DIRECTION_HORIZONTAL (0)
khuang 0:06f42dd3eab3 129 #define OLED_DIRECTION_VERTICAL (1)
khuang 0:06f42dd3eab3 130
khuang 0:06f42dd3eab3 131 /**
khuang 0:06f42dd3eab3 132 * SPI-related
khuang 0:06f42dd3eab3 133 */
khuang 0:06f42dd3eab3 134
khuang 0:06f42dd3eab3 135 #define OLED_SPI_CHUNK (511)
khuang 0:06f42dd3eab3 136
khuang 0:06f42dd3eab3 137 /**
khuang 0:06f42dd3eab3 138 * set display
khuang 0:06f42dd3eab3 139 */
khuang 0:06f42dd3eab3 140 #define OLED_CMD_SET_DISPLAY_MODE_ALL_OFF (0xA4)
khuang 0:06f42dd3eab3 141 #define OLED_CMD_SET_DISPLAY_MODE_ALL_ON (0xA5)
khuang 0:06f42dd3eab3 142 #define OLED_CMD_SET_DISPLAY_MODE_NORMAL (0xA6)
khuang 0:06f42dd3eab3 143 #define OLED_CMD_SET_DISPLAY_MODE_INVERSE (0xA7)
khuang 0:06f42dd3eab3 144
khuang 0:06f42dd3eab3 145 /**
khuang 0:06f42dd3eab3 146 * set lock command
khuang 0:06f42dd3eab3 147 * the locked OLED driver MCU interface prohibits all commands
khuang 0:06f42dd3eab3 148 * and memory access, except the 0xFD command
khuang 0:06f42dd3eab3 149 */
khuang 0:06f42dd3eab3 150 #define OLED_CMD_SET_CMD_LOCK ( 0xFD /* << 8 */ )
khuang 0:06f42dd3eab3 151 // unlock OLED driver MCU interface for entering command (default upon reset)
khuang 0:06f42dd3eab3 152 #define OLED_UNLOCK (0x12)
khuang 0:06f42dd3eab3 153 // lock OLED driver MCU interface for entering command
khuang 0:06f42dd3eab3 154 #define OLED_LOCK (0x16)
khuang 0:06f42dd3eab3 155 // commands 0xA2, 0xB1, 0xB3, 0xBB, 0xBE, 0xC1 are inaccessible in both lock and unlock state (default upon reset)
khuang 0:06f42dd3eab3 156 #define OLED_ACC_TO_CMD_NO (0xB0)
khuang 0:06f42dd3eab3 157 // commands 0xA2, 0xB1, 0xB3, 0xBB, 0xBE, 0xC1 are accessible in unlock state
khuang 0:06f42dd3eab3 158 #define OLED_ACC_TO_CMD_YES (0xB1)
khuang 0:06f42dd3eab3 159
khuang 0:06f42dd3eab3 160 /**
khuang 0:06f42dd3eab3 161 * NOP
khuang 0:06f42dd3eab3 162 */
khuang 0:06f42dd3eab3 163 #define OLED_CMD_NOP (0xD1) // also, 0xE3
khuang 0:06f42dd3eab3 164
khuang 0:06f42dd3eab3 165 /**
khuang 0:06f42dd3eab3 166 * set MUX ratio
khuang 0:06f42dd3eab3 167 */
khuang 0:06f42dd3eab3 168 #define OLED_CMD_SET_MUX_RATIO (0xCA)
khuang 0:06f42dd3eab3 169
khuang 0:06f42dd3eab3 170 /**
khuang 0:06f42dd3eab3 171 * set re-map / color depth
khuang 0:06f42dd3eab3 172 */
khuang 0:06f42dd3eab3 173 #define OLED_CMD_SET_REMAP ( 0xA0 )
khuang 0:06f42dd3eab3 174
khuang 0:06f42dd3eab3 175 // set horisontal or vertical increment
khuang 0:06f42dd3eab3 176 #define OLED_ADDR_INC_HOR (0x00)
khuang 0:06f42dd3eab3 177 #define OLED_ADDR_INC_VER (0x01)
khuang 0:06f42dd3eab3 178
khuang 0:06f42dd3eab3 179 // column address mapping
khuang 0:06f42dd3eab3 180 #define OLED_COLUMN_ADDR_REMAP_0_TO_SEG0 (0x00)
khuang 0:06f42dd3eab3 181 #define OLED_COLUMN_ADDR_REMAP_127_TO_SEG0 (0x02)
khuang 0:06f42dd3eab3 182
khuang 0:06f42dd3eab3 183 // color sequence order
khuang 0:06f42dd3eab3 184 #define OLED_COLOR_SEQ_A_B_C (0x00)
khuang 0:06f42dd3eab3 185 #define OLED_COLOR_SEQ_C_B_A (0x04)
khuang 0:06f42dd3eab3 186
khuang 0:06f42dd3eab3 187 // scanning order (MR == MUX ratio)
khuang 0:06f42dd3eab3 188 #define OLED_SCAN_FROM_COM_0_TO_MR (0x00)
khuang 0:06f42dd3eab3 189 #define OLED_SCAN_FROM_COM_MR_TO_0 (0x10)
khuang 0:06f42dd3eab3 190
khuang 0:06f42dd3eab3 191 // COM splitting to odd and even
khuang 0:06f42dd3eab3 192 #define OLED_COM_SPLIT_DISABLE (0x00)
khuang 0:06f42dd3eab3 193 #define OLED_COM_SPLIT_ENABLE (0x20)
khuang 0:06f42dd3eab3 194
khuang 0:06f42dd3eab3 195 // screen color depth
khuang 0:06f42dd3eab3 196 #define OLED_COLOR_DEPTH_256 (0x00)
khuang 0:06f42dd3eab3 197 #define OLED_COLOR_DEPTH_65K (0x40)
khuang 0:06f42dd3eab3 198 #define OLED_COLOR_DEPTH_262K_1 (0x80)
khuang 0:06f42dd3eab3 199 #define OLED_COLOR_DEPTH_262K_2 (0xC0)
khuang 0:06f42dd3eab3 200
khuang 0:06f42dd3eab3 201 /**
khuang 0:06f42dd3eab3 202 * set reset (phase 1) / pre-charge (phase 2) period in [DCLK]
khuang 0:06f42dd3eab3 203 * this command is locked by command 0xFD by default
khuang 0:06f42dd3eab3 204 */
khuang 0:06f42dd3eab3 205 #define OLED_CMD_SET_RESET_AND_PRECHARGE_PERIOD (0xB1)
khuang 0:06f42dd3eab3 206
khuang 0:06f42dd3eab3 207 #define OLED_RESET_PERIOD_5 (0x02)
khuang 0:06f42dd3eab3 208 #define OLED_RESET_PERIOD_7 (0x03)
khuang 0:06f42dd3eab3 209 #define OLED_RESET_PERIOD_9 (0x04)
khuang 0:06f42dd3eab3 210 #define OLED_RESET_PERIOD_11 (0x05)
khuang 0:06f42dd3eab3 211 #define OLED_RESET_PERIOD_13 (0x06)
khuang 0:06f42dd3eab3 212 #define OLED_RESET_PERIOD_15 (0x07)
khuang 0:06f42dd3eab3 213 #define OLED_RESET_PERIOD_17 (0x08)
khuang 0:06f42dd3eab3 214 #define OLED_RESET_PERIOD_19 (0x09)
khuang 0:06f42dd3eab3 215 #define OLED_RESET_PERIOD_21 (0x0A)
khuang 0:06f42dd3eab3 216 #define OLED_RESET_PERIOD_23 (0x0B)
khuang 0:06f42dd3eab3 217 #define OLED_RESET_PERIOD_25 (0x0C)
khuang 0:06f42dd3eab3 218 #define OLED_RESET_PERIOD_27 (0x0D)
khuang 0:06f42dd3eab3 219 #define OLED_RESET_PERIOD_29 (0x0E)
khuang 0:06f42dd3eab3 220 #define OLED_RESET_PERIOD_31 (0x0F)
khuang 0:06f42dd3eab3 221
khuang 0:06f42dd3eab3 222 #define OLED_PRECHARGE_PERIOD_3 (0x03)
khuang 0:06f42dd3eab3 223 #define OLED_PRECHARGE_PERIOD_4 (0x04)
khuang 0:06f42dd3eab3 224 #define OLED_PRECHARGE_PERIOD_5 (0x05)
khuang 0:06f42dd3eab3 225 #define OLED_PRECHARGE_PERIOD_6 (0x06)
khuang 0:06f42dd3eab3 226 #define OLED_PRECHARGE_PERIOD_7 (0x07)
khuang 0:06f42dd3eab3 227 #define OLED_PRECHARGE_PERIOD_8 (0x08)
khuang 0:06f42dd3eab3 228 #define OLED_PRECHARGE_PERIOD_9 (0x09)
khuang 0:06f42dd3eab3 229 #define OLED_PRECHARGE_PERIOD_10 (0x0A)
khuang 0:06f42dd3eab3 230 #define OLED_PRECHARGE_PERIOD_11 (0x0B)
khuang 0:06f42dd3eab3 231 #define OLED_PRECHARGE_PERIOD_12 (0x0C)
khuang 0:06f42dd3eab3 232 #define OLED_PRECHARGE_PERIOD_13 (0x0D)
khuang 0:06f42dd3eab3 233 #define OLED_PRECHARGE_PERIOD_14 (0x0E)
khuang 0:06f42dd3eab3 234 #define OLED_PRECHARGE_PERIOD_15 (0x0F)
khuang 0:06f42dd3eab3 235
khuang 0:06f42dd3eab3 236 /**
khuang 0:06f42dd3eab3 237 * set front clock divider (divset) / oscillator frequency
khuang 0:06f42dd3eab3 238 * this command is locked by command 0xFD by default
khuang 0:06f42dd3eab3 239 */
khuang 0:06f42dd3eab3 240 #define OLED_CMD_SET_OSC_FREQ_AND_CLOCKDIV (0xB3)
khuang 0:06f42dd3eab3 241
khuang 0:06f42dd3eab3 242 // clock divider
khuang 0:06f42dd3eab3 243 #define OLED_CLOCKDIV_1 (0x00)
khuang 0:06f42dd3eab3 244 #define OLED_CLOCKDIV_2 (0x01)
khuang 0:06f42dd3eab3 245 #define OLED_CLOCKDIV_4 (0x02)
khuang 0:06f42dd3eab3 246 #define OLED_CLOCKDIV_8 (0x03)
khuang 0:06f42dd3eab3 247 #define OLED_CLOCKDIV_16 (0x04)
khuang 0:06f42dd3eab3 248 #define OLED_CLOCKDIV_32 (0x05)
khuang 0:06f42dd3eab3 249 #define OLED_CLOCKDIV_64 (0x06)
khuang 0:06f42dd3eab3 250 #define OLED_CLOCKDIV_128 (0x07)
khuang 0:06f42dd3eab3 251 #define OLED_CLOCKDIV_256 (0x08)
khuang 0:06f42dd3eab3 252 #define OLED_CLOCKDIV_512 (0x09)
khuang 0:06f42dd3eab3 253 #define OLED_CLOCKDIV_1024 (0x0A)
khuang 0:06f42dd3eab3 254
khuang 0:06f42dd3eab3 255 // oscillator frequency, frequency increases as level increases
khuang 0:06f42dd3eab3 256 #define OLED_OSC_FREQ (0xB0)
khuang 0:06f42dd3eab3 257
khuang 0:06f42dd3eab3 258 #define OLED_CMD_STARTLINE (0xA1)
khuang 0:06f42dd3eab3 259
khuang 0:06f42dd3eab3 260 #define OLED_CMD_WRITERAM (0x5C)
khuang 0:06f42dd3eab3 261 #define OLED_CMD_READRAM (0x5D)
khuang 0:06f42dd3eab3 262 #define OLED_CMD_DISPLAYOFFSET (0xA2)
khuang 0:06f42dd3eab3 263 #define OLED_CMD_DISPLAYALLOFF (0xA4)
khuang 0:06f42dd3eab3 264 #define OLED_CMD_DISPLAYALLON (0xA5)
khuang 0:06f42dd3eab3 265 #define OLED_CMD_NORMALDISPLAY (0xA6)
khuang 0:06f42dd3eab3 266 #define OLED_CMD_INVERTDISPLAY (0xA7)
khuang 0:06f42dd3eab3 267 #define OLED_CMD_FUNCTIONSELECT (0xAB)
khuang 0:06f42dd3eab3 268 #define OLED_CMD_DISPLAYOFF (0xAE)
khuang 0:06f42dd3eab3 269 #define OLED_CMD_DISPLAYON (0xAF)
khuang 0:06f42dd3eab3 270 #define OLED_CMD_PRECHARGE (0xB1)
khuang 0:06f42dd3eab3 271 #define OLED_CMD_DISPLAYENHANCE (0xB2)
khuang 0:06f42dd3eab3 272 #define OLED_CMD_SETVSL (0xB4)
khuang 0:06f42dd3eab3 273 #define OLED_CMD_SETGPIO (0xB5)
khuang 0:06f42dd3eab3 274 #define OLED_CMD_PRECHARGE2 (0xB6)
khuang 0:06f42dd3eab3 275 #define OLED_CMD_SETGRAY (0xB8)
khuang 0:06f42dd3eab3 276 #define OLED_CMD_USELUT (0xB9)
khuang 0:06f42dd3eab3 277 #define OLED_CMD_PRECHARGELEVEL (0xBB)
khuang 0:06f42dd3eab3 278 #define OLED_CMD_VCOMH (0xBE)
khuang 0:06f42dd3eab3 279 #define OLED_CMD_CONTRASTABC (0xC1)
khuang 0:06f42dd3eab3 280 #define OLED_CMD_CONTRASTMASTER (0xC7)
khuang 0:06f42dd3eab3 281 #define OLED_CMD_MUXRATIO (0xCA)
khuang 0:06f42dd3eab3 282 #define OLED_CMD_COMMANDLOCK (0xFD)
khuang 0:06f42dd3eab3 283 #define OLED_CMD_HORIZSCROLL (0x96)
khuang 0:06f42dd3eab3 284 #define OLED_CMD_STOPSCROLL (0x9E)
khuang 0:06f42dd3eab3 285 #define OLED_CMD_STARTSCROLL (0x9F)
khuang 0:06f42dd3eab3 286
khuang 0:06f42dd3eab3 287 #endif
khuang 1:3b5be0ee5f0c 288