hadif azli / Mbed 2 deprecated TEST123

Dependencies:   mbed Blynk

Committer:
lixianyu
Date:
Mon Jun 13 02:21:11 2016 +0000
Revision:
1:0e75de2a5d21
Parent:
0:d8f4c441e032
u8glib???????????????????????????Adafruit_GFX????OLED????????bitmap??????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lixianyu 1:0e75de2a5d21 1 /*
lixianyu 1:0e75de2a5d21 2
lixianyu 1:0e75de2a5d21 3 u8g_ll_api.c
lixianyu 1:0e75de2a5d21 4
lixianyu 1:0e75de2a5d21 5 low level api
lixianyu 1:0e75de2a5d21 6
lixianyu 1:0e75de2a5d21 7 Universal 8bit Graphics Library
lixianyu 1:0e75de2a5d21 8
lixianyu 1:0e75de2a5d21 9 Copyright (c) 2011, olikraus@gmail.com
lixianyu 1:0e75de2a5d21 10 All rights reserved.
lixianyu 1:0e75de2a5d21 11
lixianyu 1:0e75de2a5d21 12 Redistribution and use in source and binary forms, with or without modification,
lixianyu 1:0e75de2a5d21 13 are permitted provided that the following conditions are met:
lixianyu 1:0e75de2a5d21 14
lixianyu 1:0e75de2a5d21 15 * Redistributions of source code must retain the above copyright notice, this list
lixianyu 1:0e75de2a5d21 16 of conditions and the following disclaimer.
lixianyu 1:0e75de2a5d21 17
lixianyu 1:0e75de2a5d21 18 * Redistributions in binary form must reproduce the above copyright notice, this
lixianyu 1:0e75de2a5d21 19 list of conditions and the following disclaimer in the documentation and/or other
lixianyu 1:0e75de2a5d21 20 materials provided with the distribution.
lixianyu 1:0e75de2a5d21 21
lixianyu 1:0e75de2a5d21 22 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
lixianyu 1:0e75de2a5d21 23 CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
lixianyu 1:0e75de2a5d21 24 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
lixianyu 1:0e75de2a5d21 25 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
lixianyu 1:0e75de2a5d21 26 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
lixianyu 1:0e75de2a5d21 27 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
lixianyu 1:0e75de2a5d21 28 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
lixianyu 1:0e75de2a5d21 29 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
lixianyu 1:0e75de2a5d21 30 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
lixianyu 1:0e75de2a5d21 31 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
lixianyu 1:0e75de2a5d21 32 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
lixianyu 1:0e75de2a5d21 33 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
lixianyu 1:0e75de2a5d21 34 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
lixianyu 1:0e75de2a5d21 35
lixianyu 1:0e75de2a5d21 36
lixianyu 1:0e75de2a5d21 37 */
lixianyu 1:0e75de2a5d21 38
lixianyu 1:0e75de2a5d21 39 #include <stddef.h>
lixianyu 1:0e75de2a5d21 40 #include "u8g.h"
lixianyu 1:0e75de2a5d21 41
lixianyu 1:0e75de2a5d21 42 uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg)
lixianyu 1:0e75de2a5d21 43 {
lixianyu 1:0e75de2a5d21 44 return dev->dev_fn(u8g, dev, msg, arg);
lixianyu 1:0e75de2a5d21 45 }
lixianyu 1:0e75de2a5d21 46
lixianyu 1:0e75de2a5d21 47 /*====================================================================*/
lixianyu 1:0e75de2a5d21 48
lixianyu 1:0e75de2a5d21 49 uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev)
lixianyu 1:0e75de2a5d21 50 {
lixianyu 1:0e75de2a5d21 51 uint8_t r;
lixianyu 1:0e75de2a5d21 52 u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV);
lixianyu 1:0e75de2a5d21 53 r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_INIT, NULL);
lixianyu 1:0e75de2a5d21 54 u8g->state_cb(U8G_STATE_MSG_BACKUP_U8G);
lixianyu 1:0e75de2a5d21 55 u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV);
lixianyu 1:0e75de2a5d21 56 return r;
lixianyu 1:0e75de2a5d21 57 }
lixianyu 1:0e75de2a5d21 58
lixianyu 1:0e75de2a5d21 59 void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev)
lixianyu 1:0e75de2a5d21 60 {
lixianyu 1:0e75de2a5d21 61 u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV);
lixianyu 1:0e75de2a5d21 62 u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G);
lixianyu 1:0e75de2a5d21 63 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_FIRST, NULL);
lixianyu 1:0e75de2a5d21 64 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page));
lixianyu 1:0e75de2a5d21 65 u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV);
lixianyu 1:0e75de2a5d21 66 }
lixianyu 1:0e75de2a5d21 67
lixianyu 1:0e75de2a5d21 68 uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev)
lixianyu 1:0e75de2a5d21 69 {
lixianyu 1:0e75de2a5d21 70 uint8_t r;
lixianyu 1:0e75de2a5d21 71 u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV);
lixianyu 1:0e75de2a5d21 72 u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G);
lixianyu 1:0e75de2a5d21 73 r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_NEXT, NULL);
lixianyu 1:0e75de2a5d21 74 if ( r != 0 ) {
lixianyu 1:0e75de2a5d21 75 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page));
lixianyu 1:0e75de2a5d21 76 }
lixianyu 1:0e75de2a5d21 77 u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV);
lixianyu 1:0e75de2a5d21 78 return r;
lixianyu 1:0e75de2a5d21 79 }
lixianyu 1:0e75de2a5d21 80
lixianyu 1:0e75de2a5d21 81 uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast)
lixianyu 1:0e75de2a5d21 82 {
lixianyu 1:0e75de2a5d21 83 return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_CONTRAST, &contrast);
lixianyu 1:0e75de2a5d21 84 }
lixianyu 1:0e75de2a5d21 85
lixianyu 1:0e75de2a5d21 86 void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y)
lixianyu 1:0e75de2a5d21 87 {
lixianyu 1:0e75de2a5d21 88 u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel);
lixianyu 1:0e75de2a5d21 89 arg->x = x;
lixianyu 1:0e75de2a5d21 90 arg->y = y;
lixianyu 1:0e75de2a5d21 91 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_PIXEL, arg);
lixianyu 1:0e75de2a5d21 92 }
lixianyu 1:0e75de2a5d21 93
lixianyu 1:0e75de2a5d21 94 void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel)
lixianyu 1:0e75de2a5d21 95 {
lixianyu 1:0e75de2a5d21 96 //printf("u8g_Draw8PixelLL\r\n");
lixianyu 1:0e75de2a5d21 97 u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel);
lixianyu 1:0e75de2a5d21 98 arg->x = x;
lixianyu 1:0e75de2a5d21 99 arg->y = y;
lixianyu 1:0e75de2a5d21 100 arg->dir = dir;
lixianyu 1:0e75de2a5d21 101 arg->pixel = pixel;
lixianyu 1:0e75de2a5d21 102 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_8PIXEL, arg);
lixianyu 1:0e75de2a5d21 103 }
lixianyu 1:0e75de2a5d21 104
lixianyu 1:0e75de2a5d21 105 void u8g_Draw4TPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel)
lixianyu 1:0e75de2a5d21 106 {
lixianyu 1:0e75de2a5d21 107 u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel);
lixianyu 1:0e75de2a5d21 108 arg->x = x;
lixianyu 1:0e75de2a5d21 109 arg->y = y;
lixianyu 1:0e75de2a5d21 110 arg->dir = dir;
lixianyu 1:0e75de2a5d21 111 arg->pixel = pixel;
lixianyu 1:0e75de2a5d21 112 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_4TPIXEL, arg);
lixianyu 1:0e75de2a5d21 113 }
lixianyu 1:0e75de2a5d21 114
lixianyu 1:0e75de2a5d21 115
lixianyu 1:0e75de2a5d21 116 #ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION
lixianyu 1:0e75de2a5d21 117 uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h)
lixianyu 1:0e75de2a5d21 118 {
lixianyu 1:0e75de2a5d21 119 return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_IS_BBX_INTERSECTION, &arg);
lixianyu 1:0e75de2a5d21 120 }
lixianyu 1:0e75de2a5d21 121 #endif
lixianyu 1:0e75de2a5d21 122
lixianyu 1:0e75de2a5d21 123
lixianyu 1:0e75de2a5d21 124
lixianyu 1:0e75de2a5d21 125 u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev)
lixianyu 1:0e75de2a5d21 126 {
lixianyu 1:0e75de2a5d21 127 u8g_uint_t r;
lixianyu 1:0e75de2a5d21 128 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_WIDTH, &r);
lixianyu 1:0e75de2a5d21 129 return r;
lixianyu 1:0e75de2a5d21 130 }
lixianyu 1:0e75de2a5d21 131
lixianyu 1:0e75de2a5d21 132 u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev)
lixianyu 1:0e75de2a5d21 133 {
lixianyu 1:0e75de2a5d21 134 u8g_uint_t r;
lixianyu 1:0e75de2a5d21 135 u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_HEIGHT, &r);
lixianyu 1:0e75de2a5d21 136 return r;
lixianyu 1:0e75de2a5d21 137 }
lixianyu 1:0e75de2a5d21 138
lixianyu 1:0e75de2a5d21 139 u8g_uint_t u8g_GetModeLL(u8g_t *u8g, u8g_dev_t *dev)
lixianyu 1:0e75de2a5d21 140 {
lixianyu 1:0e75de2a5d21 141 return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_MODE, NULL);
lixianyu 1:0e75de2a5d21 142 }
lixianyu 1:0e75de2a5d21 143
lixianyu 1:0e75de2a5d21 144
lixianyu 1:0e75de2a5d21 145
lixianyu 1:0e75de2a5d21 146 /*====================================================================*/
lixianyu 1:0e75de2a5d21 147
lixianyu 1:0e75de2a5d21 148 void u8g_UpdateDimension(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 149 {
lixianyu 1:0e75de2a5d21 150 u8g->width = u8g_GetWidthLL(u8g, u8g->dev);
lixianyu 1:0e75de2a5d21 151 u8g->height = u8g_GetHeightLL(u8g, u8g->dev);
lixianyu 1:0e75de2a5d21 152 u8g->mode = u8g_GetModeLL(u8g, u8g->dev);
lixianyu 1:0e75de2a5d21 153 /* 9 Dec 2012: u8g_scale.c requires update of current page */
lixianyu 1:0e75de2a5d21 154 u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page));
lixianyu 1:0e75de2a5d21 155 }
lixianyu 1:0e75de2a5d21 156
lixianyu 1:0e75de2a5d21 157 static void u8g_init_data(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 158 {
lixianyu 1:0e75de2a5d21 159 u8g->font = NULL;
lixianyu 1:0e75de2a5d21 160 u8g->cursor_font = NULL;
lixianyu 1:0e75de2a5d21 161 u8g->cursor_bg_color = 0;
lixianyu 1:0e75de2a5d21 162 u8g->cursor_fg_color = 1;
lixianyu 1:0e75de2a5d21 163 u8g->cursor_encoding = 34;
lixianyu 1:0e75de2a5d21 164 u8g->cursor_fn = (u8g_draw_cursor_fn)0;
lixianyu 1:0e75de2a5d21 165
lixianyu 1:0e75de2a5d21 166 #if defined(U8G_WITH_PINLIST)
lixianyu 1:0e75de2a5d21 167 {
lixianyu 1:0e75de2a5d21 168 uint8_t i;
lixianyu 1:0e75de2a5d21 169 for( i = 0; i < U8G_PIN_LIST_LEN; i++ )
lixianyu 1:0e75de2a5d21 170 u8g->pin_list[i] = U8G_PIN_NONE;
lixianyu 1:0e75de2a5d21 171 }
lixianyu 1:0e75de2a5d21 172 #endif
lixianyu 1:0e75de2a5d21 173
lixianyu 1:0e75de2a5d21 174 u8g_SetColorIndex(u8g, 1);
lixianyu 1:0e75de2a5d21 175
lixianyu 1:0e75de2a5d21 176 u8g_SetFontPosBaseline(u8g);
lixianyu 1:0e75de2a5d21 177
lixianyu 1:0e75de2a5d21 178 u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT;
lixianyu 1:0e75de2a5d21 179 u8g->font_ref_ascent = 0;
lixianyu 1:0e75de2a5d21 180 u8g->font_ref_descent = 0;
lixianyu 1:0e75de2a5d21 181 u8g->font_line_spacing_factor = 64; /* 64 = 1.0, 77 = 1.2 line spacing factor */
lixianyu 1:0e75de2a5d21 182 u8g->line_spacing = 0;
lixianyu 1:0e75de2a5d21 183
lixianyu 1:0e75de2a5d21 184 u8g->state_cb = u8g_state_dummy_cb;
lixianyu 1:0e75de2a5d21 185
lixianyu 1:0e75de2a5d21 186 }
lixianyu 1:0e75de2a5d21 187
lixianyu 1:0e75de2a5d21 188 uint8_t u8g_Begin(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 189 {
lixianyu 1:0e75de2a5d21 190 /* call and init low level driver and com device */
lixianyu 1:0e75de2a5d21 191 if ( u8g_InitLL(u8g, u8g->dev) == 0 ) {
lixianyu 1:0e75de2a5d21 192 return 0;
lixianyu 1:0e75de2a5d21 193 }
lixianyu 1:0e75de2a5d21 194 /* fetch width and height from the low level */
lixianyu 1:0e75de2a5d21 195 u8g_UpdateDimension(u8g);
lixianyu 1:0e75de2a5d21 196 return 1;
lixianyu 1:0e75de2a5d21 197 }
lixianyu 1:0e75de2a5d21 198
lixianyu 1:0e75de2a5d21 199 uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev)
lixianyu 1:0e75de2a5d21 200 {
lixianyu 1:0e75de2a5d21 201 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 202 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 203
lixianyu 1:0e75de2a5d21 204 /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */
lixianyu 1:0e75de2a5d21 205 /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */
lixianyu 1:0e75de2a5d21 206 /* if Arduino call u8g_UpdateDimension else u8g_Begin */
lixianyu 1:0e75de2a5d21 207 /* issue 146 */
lixianyu 1:0e75de2a5d21 208 return u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 209 }
lixianyu 1:0e75de2a5d21 210
lixianyu 1:0e75de2a5d21 211 extern void open_led(void);
lixianyu 1:0e75de2a5d21 212 extern void close_led(void);
lixianyu 1:0e75de2a5d21 213 /* special init for pure ARM systems */
lixianyu 1:0e75de2a5d21 214 uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn)
lixianyu 1:0e75de2a5d21 215 {
lixianyu 1:0e75de2a5d21 216 //gpio_init_out(&g_LED, P0_13);
lixianyu 1:0e75de2a5d21 217 //log("Enter u8g_InitComFn()");
lixianyu 1:0e75de2a5d21 218 //open_led();
lixianyu 1:0e75de2a5d21 219 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 220
lixianyu 1:0e75de2a5d21 221 #if defined(U8G_WITH_PINLIST)
lixianyu 1:0e75de2a5d21 222 {
lixianyu 1:0e75de2a5d21 223 uint8_t i;
lixianyu 1:0e75de2a5d21 224 for( i = 0; i < U8G_PIN_LIST_LEN; i++ )
lixianyu 1:0e75de2a5d21 225 u8g->pin_list[i] = U8G_PIN_DUMMY;
lixianyu 1:0e75de2a5d21 226 }
lixianyu 1:0e75de2a5d21 227 #endif
lixianyu 1:0e75de2a5d21 228
lixianyu 1:0e75de2a5d21 229 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 230
lixianyu 1:0e75de2a5d21 231 /* replace the device procedure with a custom communication procedure */
lixianyu 1:0e75de2a5d21 232 u8g->dev->com_fn = com_fn;
lixianyu 1:0e75de2a5d21 233
lixianyu 1:0e75de2a5d21 234 /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */
lixianyu 1:0e75de2a5d21 235 /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */
lixianyu 1:0e75de2a5d21 236 /* if Arduino call u8g_UpdateDimension else u8g_Begin */
lixianyu 1:0e75de2a5d21 237 /* issue 146 */
lixianyu 1:0e75de2a5d21 238 uint8_t ret;
lixianyu 1:0e75de2a5d21 239 ret = u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 240 //log("Leave u8g_InitComFn()");
lixianyu 1:0e75de2a5d21 241 return ret;
lixianyu 1:0e75de2a5d21 242 }
lixianyu 1:0e75de2a5d21 243
lixianyu 1:0e75de2a5d21 244
lixianyu 1:0e75de2a5d21 245 #if defined(U8G_WITH_PINLIST)
lixianyu 1:0e75de2a5d21 246 uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset)
lixianyu 1:0e75de2a5d21 247 {
lixianyu 1:0e75de2a5d21 248
lixianyu 1:0e75de2a5d21 249 /* fill data structure with some suitable values */
lixianyu 1:0e75de2a5d21 250 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 251 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 252
lixianyu 1:0e75de2a5d21 253 /* assign user pins */
lixianyu 1:0e75de2a5d21 254 u8g->pin_list[U8G_PI_SCK] = sck;
lixianyu 1:0e75de2a5d21 255 u8g->pin_list[U8G_PI_MOSI] = mosi;
lixianyu 1:0e75de2a5d21 256 u8g->pin_list[U8G_PI_CS] = cs;
lixianyu 1:0e75de2a5d21 257 u8g->pin_list[U8G_PI_A0] = a0;
lixianyu 1:0e75de2a5d21 258 u8g->pin_list[U8G_PI_RESET] = reset;
lixianyu 1:0e75de2a5d21 259
lixianyu 1:0e75de2a5d21 260 /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */
lixianyu 1:0e75de2a5d21 261 /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */
lixianyu 1:0e75de2a5d21 262 /* if Arduino call u8g_UpdateDimension else u8g_Begin */
lixianyu 1:0e75de2a5d21 263 /* issue 146 */
lixianyu 1:0e75de2a5d21 264 return u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 265 }
lixianyu 1:0e75de2a5d21 266
lixianyu 1:0e75de2a5d21 267 uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset)
lixianyu 1:0e75de2a5d21 268 {
lixianyu 1:0e75de2a5d21 269 /* fill data structure with some suitable values */
lixianyu 1:0e75de2a5d21 270 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 271 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 272
lixianyu 1:0e75de2a5d21 273
lixianyu 1:0e75de2a5d21 274 /* assign user pins */
lixianyu 1:0e75de2a5d21 275 u8g->pin_list[U8G_PI_CS] = cs;
lixianyu 1:0e75de2a5d21 276 u8g->pin_list[U8G_PI_A0] = a0;
lixianyu 1:0e75de2a5d21 277 u8g->pin_list[U8G_PI_RESET] = reset;
lixianyu 1:0e75de2a5d21 278
lixianyu 1:0e75de2a5d21 279 return u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 280 }
lixianyu 1:0e75de2a5d21 281
lixianyu 1:0e75de2a5d21 282 uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options)
lixianyu 1:0e75de2a5d21 283 {
lixianyu 1:0e75de2a5d21 284 /* fill data structure with some suitable values */
lixianyu 1:0e75de2a5d21 285 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 286 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 287
lixianyu 1:0e75de2a5d21 288 u8g->pin_list[U8G_PI_I2C_OPTION] = options;
lixianyu 0:d8f4c441e032 289
lixianyu 1:0e75de2a5d21 290 return u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 291 }
lixianyu 1:0e75de2a5d21 292
lixianyu 1:0e75de2a5d21 293
lixianyu 1:0e75de2a5d21 294 uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset)
lixianyu 1:0e75de2a5d21 295 {
lixianyu 1:0e75de2a5d21 296
lixianyu 1:0e75de2a5d21 297 /* fill data structure with some suitable values */
lixianyu 1:0e75de2a5d21 298 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 299 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 300
lixianyu 1:0e75de2a5d21 301 /* assign user pins */
lixianyu 1:0e75de2a5d21 302
lixianyu 1:0e75de2a5d21 303 u8g->pin_list[U8G_PI_EN] = en;
lixianyu 1:0e75de2a5d21 304 u8g->pin_list[U8G_PI_CS] = cs;
lixianyu 1:0e75de2a5d21 305 u8g->pin_list[U8G_PI_DI] = di;
lixianyu 1:0e75de2a5d21 306 u8g->pin_list[U8G_PI_RW] = rw;
lixianyu 1:0e75de2a5d21 307 u8g->pin_list[U8G_PI_RESET] = reset;
lixianyu 1:0e75de2a5d21 308
lixianyu 1:0e75de2a5d21 309 return u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 310 }
lixianyu 1:0e75de2a5d21 311
lixianyu 1:0e75de2a5d21 312 uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
lixianyu 1:0e75de2a5d21 313 uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset)
lixianyu 1:0e75de2a5d21 314 {
lixianyu 1:0e75de2a5d21 315
lixianyu 1:0e75de2a5d21 316 /* fill data structure with some suitable values */
lixianyu 1:0e75de2a5d21 317 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 318 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 319
lixianyu 1:0e75de2a5d21 320 /* assign user pins */
lixianyu 1:0e75de2a5d21 321
lixianyu 1:0e75de2a5d21 322 u8g->pin_list[U8G_PI_D0] = d0;
lixianyu 1:0e75de2a5d21 323 u8g->pin_list[U8G_PI_D1] = d1;
lixianyu 1:0e75de2a5d21 324 u8g->pin_list[U8G_PI_D2] = d2;
lixianyu 1:0e75de2a5d21 325 u8g->pin_list[U8G_PI_D3] = d3;
lixianyu 1:0e75de2a5d21 326 u8g->pin_list[U8G_PI_D4] = d4;
lixianyu 1:0e75de2a5d21 327 u8g->pin_list[U8G_PI_D5] = d5;
lixianyu 1:0e75de2a5d21 328 u8g->pin_list[U8G_PI_D6] = d6;
lixianyu 1:0e75de2a5d21 329 u8g->pin_list[U8G_PI_D7] = d7;
lixianyu 1:0e75de2a5d21 330
lixianyu 1:0e75de2a5d21 331 u8g->pin_list[U8G_PI_EN] = en;
lixianyu 1:0e75de2a5d21 332 u8g->pin_list[U8G_PI_CS1] = cs1;
lixianyu 1:0e75de2a5d21 333 u8g->pin_list[U8G_PI_CS2] = cs2;
lixianyu 1:0e75de2a5d21 334 u8g->pin_list[U8G_PI_DI] = di;
lixianyu 1:0e75de2a5d21 335 u8g->pin_list[U8G_PI_RW] = rw;
lixianyu 1:0e75de2a5d21 336 u8g->pin_list[U8G_PI_RESET] = reset;
lixianyu 1:0e75de2a5d21 337
lixianyu 1:0e75de2a5d21 338 return u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 339 }
lixianyu 1:0e75de2a5d21 340
lixianyu 1:0e75de2a5d21 341 /*
lixianyu 1:0e75de2a5d21 342
lixianyu 1:0e75de2a5d21 343 PIN_D0 8
lixianyu 1:0e75de2a5d21 344 PIN_D1 9
lixianyu 1:0e75de2a5d21 345 PIN_D2 10
lixianyu 1:0e75de2a5d21 346 PIN_D3 11
lixianyu 1:0e75de2a5d21 347 PIN_D4 4
lixianyu 1:0e75de2a5d21 348 PIN_D5 5
lixianyu 1:0e75de2a5d21 349 PIN_D6 6
lixianyu 1:0e75de2a5d21 350 PIN_D7 7
lixianyu 1:0e75de2a5d21 351
lixianyu 1:0e75de2a5d21 352 PIN_CS 14
lixianyu 1:0e75de2a5d21 353 PIN_A0 15
lixianyu 1:0e75de2a5d21 354 PIN_RESET 16
lixianyu 1:0e75de2a5d21 355 PIN_WR 17
lixianyu 1:0e75de2a5d21 356 PIN_RD 18
lixianyu 1:0e75de2a5d21 357
lixianyu 1:0e75de2a5d21 358 u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset)
lixianyu 1:0e75de2a5d21 359 u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16)
lixianyu 1:0e75de2a5d21 360
lixianyu 1:0e75de2a5d21 361 */
lixianyu 1:0e75de2a5d21 362
lixianyu 1:0e75de2a5d21 363 uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
lixianyu 1:0e75de2a5d21 364 uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset)
lixianyu 1:0e75de2a5d21 365 {
lixianyu 1:0e75de2a5d21 366
lixianyu 1:0e75de2a5d21 367 /* fill data structure with some suitable values */
lixianyu 1:0e75de2a5d21 368 u8g_init_data(u8g);
lixianyu 1:0e75de2a5d21 369 u8g->dev = dev;
lixianyu 1:0e75de2a5d21 370
lixianyu 1:0e75de2a5d21 371 /* assign user pins */
lixianyu 1:0e75de2a5d21 372
lixianyu 1:0e75de2a5d21 373 u8g->pin_list[U8G_PI_D0] = d0;
lixianyu 1:0e75de2a5d21 374 u8g->pin_list[U8G_PI_D1] = d1;
lixianyu 1:0e75de2a5d21 375 u8g->pin_list[U8G_PI_D2] = d2;
lixianyu 1:0e75de2a5d21 376 u8g->pin_list[U8G_PI_D3] = d3;
lixianyu 1:0e75de2a5d21 377 u8g->pin_list[U8G_PI_D4] = d4;
lixianyu 1:0e75de2a5d21 378 u8g->pin_list[U8G_PI_D5] = d5;
lixianyu 1:0e75de2a5d21 379 u8g->pin_list[U8G_PI_D6] = d6;
lixianyu 1:0e75de2a5d21 380 u8g->pin_list[U8G_PI_D7] = d7;
lixianyu 1:0e75de2a5d21 381
lixianyu 1:0e75de2a5d21 382 u8g->pin_list[U8G_PI_CS] = cs;
lixianyu 1:0e75de2a5d21 383 u8g->pin_list[U8G_PI_A0] = a0;
lixianyu 1:0e75de2a5d21 384 u8g->pin_list[U8G_PI_WR] = wr;
lixianyu 1:0e75de2a5d21 385 u8g->pin_list[U8G_PI_RD] = rd;
lixianyu 1:0e75de2a5d21 386 u8g->pin_list[U8G_PI_RESET] = reset;
lixianyu 1:0e75de2a5d21 387
lixianyu 1:0e75de2a5d21 388 return u8g_Begin(u8g);
lixianyu 1:0e75de2a5d21 389 }
lixianyu 1:0e75de2a5d21 390 #endif /* defined(U8G_WITH_PINLIST) */
lixianyu 1:0e75de2a5d21 391
lixianyu 1:0e75de2a5d21 392 void u8g_FirstPage(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 393 {
lixianyu 1:0e75de2a5d21 394 u8g_FirstPageLL(u8g, u8g->dev);
lixianyu 1:0e75de2a5d21 395 }
lixianyu 1:0e75de2a5d21 396
lixianyu 1:0e75de2a5d21 397 uint8_t u8g_NextPage(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 398 {
lixianyu 1:0e75de2a5d21 399 if ( u8g->cursor_fn != (u8g_draw_cursor_fn)0 ) {
lixianyu 1:0e75de2a5d21 400 u8g->cursor_fn(u8g);
lixianyu 1:0e75de2a5d21 401 }
lixianyu 1:0e75de2a5d21 402 return u8g_NextPageLL(u8g, u8g->dev);
lixianyu 1:0e75de2a5d21 403 }
lixianyu 1:0e75de2a5d21 404
lixianyu 1:0e75de2a5d21 405 uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast)
lixianyu 1:0e75de2a5d21 406 {
lixianyu 1:0e75de2a5d21 407 return u8g_SetContrastLL(u8g, u8g->dev, contrast);
lixianyu 1:0e75de2a5d21 408 }
lixianyu 1:0e75de2a5d21 409
lixianyu 1:0e75de2a5d21 410 void u8g_SleepOn(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 411 {
lixianyu 1:0e75de2a5d21 412 u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_ON, NULL);
lixianyu 1:0e75de2a5d21 413 }
lixianyu 1:0e75de2a5d21 414
lixianyu 1:0e75de2a5d21 415 void u8g_SleepOff(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 416 {
lixianyu 1:0e75de2a5d21 417 u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_OFF, NULL);
lixianyu 1:0e75de2a5d21 418 }
lixianyu 1:0e75de2a5d21 419
lixianyu 1:0e75de2a5d21 420
lixianyu 1:0e75de2a5d21 421 void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y)
lixianyu 1:0e75de2a5d21 422 {
lixianyu 1:0e75de2a5d21 423 u8g_DrawPixelLL(u8g, u8g->dev, x, y);
lixianyu 1:0e75de2a5d21 424 }
lixianyu 1:0e75de2a5d21 425
lixianyu 1:0e75de2a5d21 426 void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel)
lixianyu 1:0e75de2a5d21 427 {
lixianyu 1:0e75de2a5d21 428 u8g_Draw8PixelLL(u8g, u8g->dev, x, y, dir, pixel);
lixianyu 1:0e75de2a5d21 429 }
lixianyu 1:0e75de2a5d21 430
lixianyu 1:0e75de2a5d21 431 void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel)
lixianyu 1:0e75de2a5d21 432 {
lixianyu 1:0e75de2a5d21 433 u8g_Draw4TPixelLL(u8g, u8g->dev, x, y, dir, pixel);
lixianyu 1:0e75de2a5d21 434 }
lixianyu 1:0e75de2a5d21 435
lixianyu 1:0e75de2a5d21 436 void u8g_Draw8ColorPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t colpixel)
lixianyu 1:0e75de2a5d21 437 {
lixianyu 1:0e75de2a5d21 438 u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel);
lixianyu 1:0e75de2a5d21 439 arg->x = x;
lixianyu 1:0e75de2a5d21 440 arg->y = y;
lixianyu 1:0e75de2a5d21 441 arg->dir = 0;
lixianyu 1:0e75de2a5d21 442 arg->pixel = 0x80;
lixianyu 1:0e75de2a5d21 443 arg->color = colpixel;
lixianyu 1:0e75de2a5d21 444 u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SET_8PIXEL, arg);
lixianyu 1:0e75de2a5d21 445 }
lixianyu 1:0e75de2a5d21 446
lixianyu 1:0e75de2a5d21 447 /* u8g_IsBBXIntersection() has been moved to u8g_clip.c */
lixianyu 1:0e75de2a5d21 448 #ifdef OBSOLETE_CODE
lixianyu 1:0e75de2a5d21 449 uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h)
lixianyu 1:0e75de2a5d21 450 {
lixianyu 1:0e75de2a5d21 451 /* new code */
lixianyu 1:0e75de2a5d21 452 u8g_dev_arg_bbx_t arg;
lixianyu 1:0e75de2a5d21 453 arg.x = x;
lixianyu 1:0e75de2a5d21 454 arg.y = y;
lixianyu 1:0e75de2a5d21 455 arg.w = w;
lixianyu 1:0e75de2a5d21 456 arg.h = h;
lixianyu 1:0e75de2a5d21 457 return u8g_is_box_bbx_intersection(&(u8g->current_page), &arg);
lixianyu 1:0e75de2a5d21 458
lixianyu 1:0e75de2a5d21 459 /* old code */
lixianyu 1:0e75de2a5d21 460 //return u8g_IsBBXIntersectionLL(u8g, u8g->dev, x, y, w, h);
lixianyu 1:0e75de2a5d21 461 }
lixianyu 1:0e75de2a5d21 462 #endif
lixianyu 1:0e75de2a5d21 463
lixianyu 1:0e75de2a5d21 464 /*
lixianyu 1:0e75de2a5d21 465 idx: index for the palette entry (0..255)
lixianyu 1:0e75de2a5d21 466 r: value for red (0..255)
lixianyu 1:0e75de2a5d21 467 g: value for green (0..255)
lixianyu 1:0e75de2a5d21 468 b: value for blue (0..255)
lixianyu 1:0e75de2a5d21 469 */
lixianyu 1:0e75de2a5d21 470 void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b)
lixianyu 1:0e75de2a5d21 471 {
lixianyu 1:0e75de2a5d21 472 u8g_dev_arg_irgb_t irgb;
lixianyu 1:0e75de2a5d21 473 irgb.idx = idx;
lixianyu 1:0e75de2a5d21 474 irgb.r = r;
lixianyu 1:0e75de2a5d21 475 irgb.g = g;
lixianyu 1:0e75de2a5d21 476 irgb.b = b;
lixianyu 1:0e75de2a5d21 477 u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SET_COLOR_ENTRY, &irgb);
lixianyu 1:0e75de2a5d21 478 }
lixianyu 1:0e75de2a5d21 479
lixianyu 1:0e75de2a5d21 480 void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx)
lixianyu 1:0e75de2a5d21 481 {
lixianyu 1:0e75de2a5d21 482 u8g->arg_pixel.color = idx;
lixianyu 1:0e75de2a5d21 483 /*u8g->color_index = idx; */ /* must be removed */
lixianyu 1:0e75de2a5d21 484 }
lixianyu 1:0e75de2a5d21 485
lixianyu 1:0e75de2a5d21 486 void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb)
lixianyu 1:0e75de2a5d21 487 {
lixianyu 1:0e75de2a5d21 488 u8g->arg_pixel.color = rgb&255;
lixianyu 1:0e75de2a5d21 489 u8g->arg_pixel.hi_color = rgb>>8;
lixianyu 1:0e75de2a5d21 490 /*u8g->color_index = idx; */ /* must be removed */
lixianyu 1:0e75de2a5d21 491 }
lixianyu 1:0e75de2a5d21 492
lixianyu 1:0e75de2a5d21 493 void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b)
lixianyu 1:0e75de2a5d21 494 {
lixianyu 1:0e75de2a5d21 495
lixianyu 1:0e75de2a5d21 496 r &= ~7;
lixianyu 1:0e75de2a5d21 497 g >>= 2;
lixianyu 1:0e75de2a5d21 498 b >>= 3;
lixianyu 1:0e75de2a5d21 499 u8g->arg_pixel.color = b;
lixianyu 1:0e75de2a5d21 500 u8g->arg_pixel.color |= (g & 7) << 5;
lixianyu 1:0e75de2a5d21 501 u8g->arg_pixel.hi_color = r;
lixianyu 1:0e75de2a5d21 502 u8g->arg_pixel.hi_color |= (g>>3) & 7;
lixianyu 1:0e75de2a5d21 503
lixianyu 1:0e75de2a5d21 504 //u8g_SetHiColor(u8g, U8G_GET_HICOLOR_BY_RGB(r,g,b));
lixianyu 1:0e75de2a5d21 505 }
lixianyu 1:0e75de2a5d21 506
lixianyu 1:0e75de2a5d21 507 void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b)
lixianyu 1:0e75de2a5d21 508 {
lixianyu 1:0e75de2a5d21 509 if ( u8g->mode == U8G_MODE_R3G3B2 ) {
lixianyu 1:0e75de2a5d21 510 r &= 0x0e0;
lixianyu 1:0e75de2a5d21 511 g &= 0x0e0;
lixianyu 1:0e75de2a5d21 512 g >>= 3;
lixianyu 1:0e75de2a5d21 513 b >>= 6;
lixianyu 1:0e75de2a5d21 514 u8g->arg_pixel.color = r | g | b;
lixianyu 1:0e75de2a5d21 515 } else if ( u8g->mode == U8G_MODE_HICOLOR ) {
lixianyu 1:0e75de2a5d21 516 u8g_SetHiColorByRGB(u8g, r,g,b);
lixianyu 1:0e75de2a5d21 517 } else {
lixianyu 1:0e75de2a5d21 518 u8g->arg_pixel.color = r;
lixianyu 1:0e75de2a5d21 519 u8g->arg_pixel.hi_color = g;
lixianyu 1:0e75de2a5d21 520 u8g->arg_pixel.blue = b;
lixianyu 1:0e75de2a5d21 521 }
lixianyu 1:0e75de2a5d21 522 }
lixianyu 1:0e75de2a5d21 523
lixianyu 1:0e75de2a5d21 524
lixianyu 1:0e75de2a5d21 525 uint8_t u8g_GetColorIndex(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 526 {
lixianyu 1:0e75de2a5d21 527 return u8g->arg_pixel.color;
lixianyu 1:0e75de2a5d21 528 }
lixianyu 1:0e75de2a5d21 529
lixianyu 1:0e75de2a5d21 530 uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 531 {
lixianyu 1:0e75de2a5d21 532 uint8_t mode;
lixianyu 1:0e75de2a5d21 533 mode = u8g_GetMode(u8g);
lixianyu 1:0e75de2a5d21 534 if ( mode == U8G_MODE_R3G3B2 )
lixianyu 1:0e75de2a5d21 535 return 255; /* white */
lixianyu 1:0e75de2a5d21 536 else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT )
lixianyu 1:0e75de2a5d21 537 return 3; /* max intensity */
lixianyu 1:0e75de2a5d21 538 /* if ( u8g.getMode() == U8G_MODE_BW ) */
lixianyu 1:0e75de2a5d21 539 return 1; /* pixel on */
lixianyu 1:0e75de2a5d21 540 }
lixianyu 1:0e75de2a5d21 541
lixianyu 1:0e75de2a5d21 542 void u8g_SetDefaultForegroundColor(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 543 {
lixianyu 1:0e75de2a5d21 544 if ( u8g->mode == U8G_MODE_HICOLOR ) {
lixianyu 1:0e75de2a5d21 545 u8g->arg_pixel.color = 0x0ff;
lixianyu 1:0e75de2a5d21 546 u8g->arg_pixel.hi_color = 0x0ff;
lixianyu 1:0e75de2a5d21 547 } else {
lixianyu 1:0e75de2a5d21 548 u8g_SetColorIndex(u8g, u8g_GetDefaultForegroundColor(u8g));
lixianyu 1:0e75de2a5d21 549 }
lixianyu 1:0e75de2a5d21 550 }
lixianyu 1:0e75de2a5d21 551
lixianyu 1:0e75de2a5d21 552 uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 553 {
lixianyu 1:0e75de2a5d21 554 return 0;
lixianyu 1:0e75de2a5d21 555 }
lixianyu 1:0e75de2a5d21 556
lixianyu 1:0e75de2a5d21 557 void u8g_SetDefaultBackgroundColor(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 558 {
lixianyu 1:0e75de2a5d21 559 u8g_SetColorIndex(u8g, u8g_GetDefaultBackgroundColor(u8g)); /* pixel on / black */
lixianyu 1:0e75de2a5d21 560 }
lixianyu 1:0e75de2a5d21 561
lixianyu 1:0e75de2a5d21 562 uint8_t u8g_GetDefaultMidColor(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 563 {
lixianyu 1:0e75de2a5d21 564 uint8_t mode;
lixianyu 1:0e75de2a5d21 565 mode = u8g_GetMode(u8g);
lixianyu 1:0e75de2a5d21 566 if ( mode == U8G_MODE_R3G3B2 )
lixianyu 1:0e75de2a5d21 567 return 0x06d; /* gray: 01101101 */
lixianyu 1:0e75de2a5d21 568 else if ( mode == U8G_MODE_GRAY2BIT )
lixianyu 1:0e75de2a5d21 569 return 1; /* low mid intensity */
lixianyu 1:0e75de2a5d21 570 /* if ( u8g.getMode() == U8G_MODE_BW ) */
lixianyu 1:0e75de2a5d21 571 return 1; /* pixel on */
lixianyu 1:0e75de2a5d21 572 }
lixianyu 1:0e75de2a5d21 573
lixianyu 1:0e75de2a5d21 574 void u8g_SetDefaultMidColor(u8g_t *u8g)
lixianyu 1:0e75de2a5d21 575 {
lixianyu 1:0e75de2a5d21 576 u8g_SetColorIndex(u8g, u8g_GetDefaultMidColor(u8g));
lixianyu 1:0e75de2a5d21 577 }
lixianyu 1:0e75de2a5d21 578
lixianyu 1:0e75de2a5d21 579
lixianyu 1:0e75de2a5d21 580
lixianyu 1:0e75de2a5d21 581
lixianyu 1:0e75de2a5d21 582