Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
u8glibARM/u8g.h@0:d8f4c441e032, 2016-06-10 (annotated)
- Committer:
- lixianyu
- Date:
- Fri Jun 10 15:20:20 2016 +0000
- Revision:
- 0:d8f4c441e032
- Child:
- 1:0e75de2a5d21
u8glib???????????i2c???
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| lixianyu | 0:d8f4c441e032 | 1 | /* |
| lixianyu | 0:d8f4c441e032 | 2 | |
| lixianyu | 0:d8f4c441e032 | 3 | u8g.h |
| lixianyu | 0:d8f4c441e032 | 4 | |
| lixianyu | 0:d8f4c441e032 | 5 | Universal 8bit Graphics Library |
| lixianyu | 0:d8f4c441e032 | 6 | |
| lixianyu | 0:d8f4c441e032 | 7 | Copyright (c) 2011, olikraus@gmail.com |
| lixianyu | 0:d8f4c441e032 | 8 | All rights reserved. |
| lixianyu | 0:d8f4c441e032 | 9 | |
| lixianyu | 0:d8f4c441e032 | 10 | Redistribution and use in source and binary forms, with or without modification, |
| lixianyu | 0:d8f4c441e032 | 11 | are permitted provided that the following conditions are met: |
| lixianyu | 0:d8f4c441e032 | 12 | |
| lixianyu | 0:d8f4c441e032 | 13 | * Redistributions of source code must retain the above copyright notice, this list |
| lixianyu | 0:d8f4c441e032 | 14 | of conditions and the following disclaimer. |
| lixianyu | 0:d8f4c441e032 | 15 | |
| lixianyu | 0:d8f4c441e032 | 16 | * Redistributions in binary form must reproduce the above copyright notice, this |
| lixianyu | 0:d8f4c441e032 | 17 | list of conditions and the following disclaimer in the documentation and/or other |
| lixianyu | 0:d8f4c441e032 | 18 | materials provided with the distribution. |
| lixianyu | 0:d8f4c441e032 | 19 | |
| lixianyu | 0:d8f4c441e032 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND |
| lixianyu | 0:d8f4c441e032 | 21 | CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, |
| lixianyu | 0:d8f4c441e032 | 22 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| lixianyu | 0:d8f4c441e032 | 23 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| lixianyu | 0:d8f4c441e032 | 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
| lixianyu | 0:d8f4c441e032 | 25 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| lixianyu | 0:d8f4c441e032 | 26 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| lixianyu | 0:d8f4c441e032 | 27 | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| lixianyu | 0:d8f4c441e032 | 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| lixianyu | 0:d8f4c441e032 | 29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| lixianyu | 0:d8f4c441e032 | 30 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| lixianyu | 0:d8f4c441e032 | 31 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| lixianyu | 0:d8f4c441e032 | 32 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| lixianyu | 0:d8f4c441e032 | 33 | |
| lixianyu | 0:d8f4c441e032 | 34 | */ |
| lixianyu | 0:d8f4c441e032 | 35 | |
| lixianyu | 0:d8f4c441e032 | 36 | #ifndef _U8G_H |
| lixianyu | 0:d8f4c441e032 | 37 | #define _U8G_H |
| lixianyu | 0:d8f4c441e032 | 38 | |
| lixianyu | 0:d8f4c441e032 | 39 | /* uncomment the following line to support displays larger than 240x240 */ |
| lixianyu | 0:d8f4c441e032 | 40 | //#define U8G_16BIT 1 |
| lixianyu | 0:d8f4c441e032 | 41 | |
| lixianyu | 0:d8f4c441e032 | 42 | /* comment the following line to generate more compact but interrupt unsafe code */ |
| lixianyu | 0:d8f4c441e032 | 43 | #define U8G_INTERRUPT_SAFE 1 |
| lixianyu | 0:d8f4c441e032 | 44 | |
| lixianyu | 0:d8f4c441e032 | 45 | |
| lixianyu | 0:d8f4c441e032 | 46 | #include <stddef.h> |
| lixianyu | 0:d8f4c441e032 | 47 | |
| lixianyu | 0:d8f4c441e032 | 48 | #ifdef __18CXX |
| lixianyu | 0:d8f4c441e032 | 49 | typedef unsigned char uint8_t; |
| lixianyu | 0:d8f4c441e032 | 50 | typedef signed char int8_t; |
| lixianyu | 0:d8f4c441e032 | 51 | typedef unsigned short uint16_t; |
| lixianyu | 0:d8f4c441e032 | 52 | typedef signed short int16_t; |
| lixianyu | 0:d8f4c441e032 | 53 | #else |
| lixianyu | 0:d8f4c441e032 | 54 | #include <stdint.h> |
| lixianyu | 0:d8f4c441e032 | 55 | #endif |
| lixianyu | 0:d8f4c441e032 | 56 | |
| lixianyu | 0:d8f4c441e032 | 57 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 58 | #include <avr/pgmspace.h> |
| lixianyu | 0:d8f4c441e032 | 59 | #endif |
| lixianyu | 0:d8f4c441e032 | 60 | |
| lixianyu | 0:d8f4c441e032 | 61 | /* |
| lixianyu | 0:d8f4c441e032 | 62 | use the com interface directly on any systems which are not AVR or ARDUINO |
| lixianyu | 0:d8f4c441e032 | 63 | */ |
| lixianyu | 0:d8f4c441e032 | 64 | #if defined(__AVR__) || defined(ARDUINO) || defined(__MSP430__) |
| lixianyu | 0:d8f4c441e032 | 65 | #define U8G_WITH_PINLIST |
| lixianyu | 0:d8f4c441e032 | 66 | #endif |
| lixianyu | 0:d8f4c441e032 | 67 | |
| lixianyu | 0:d8f4c441e032 | 68 | |
| lixianyu | 0:d8f4c441e032 | 69 | #ifdef __cplusplus |
| lixianyu | 0:d8f4c441e032 | 70 | extern "C" { |
| lixianyu | 0:d8f4c441e032 | 71 | #endif |
| lixianyu | 0:d8f4c441e032 | 72 | |
| lixianyu | 0:d8f4c441e032 | 73 | |
| lixianyu | 0:d8f4c441e032 | 74 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 75 | #ifdef __GNUC__ |
| lixianyu | 0:d8f4c441e032 | 76 | # define U8G_NOINLINE __attribute__((noinline)) |
| lixianyu | 0:d8f4c441e032 | 77 | # define U8G_PURE __attribute__ ((pure)) |
| lixianyu | 0:d8f4c441e032 | 78 | # define U8G_NOCOMMON __attribute__ ((nocommon)) |
| lixianyu | 0:d8f4c441e032 | 79 | # define U8G_SECTION(name) __attribute__ ((section (name))) |
| lixianyu | 0:d8f4c441e032 | 80 | # if defined(__MSPGCC__) |
| lixianyu | 0:d8f4c441e032 | 81 | /* mspgcc does not have .progmem sections. Use -fdata-sections. */ |
| lixianyu | 0:d8f4c441e032 | 82 | # define U8G_FONT_SECTION(name) |
| lixianyu | 0:d8f4c441e032 | 83 | # endif |
| lixianyu | 0:d8f4c441e032 | 84 | # if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 85 | # define U8G_FONT_SECTION(name) U8G_SECTION(".progmem." name) |
| lixianyu | 0:d8f4c441e032 | 86 | # endif |
| lixianyu | 0:d8f4c441e032 | 87 | #else |
| lixianyu | 0:d8f4c441e032 | 88 | # define U8G_NOINLINE |
| lixianyu | 0:d8f4c441e032 | 89 | # define U8G_PURE |
| lixianyu | 0:d8f4c441e032 | 90 | # define U8G_NOCOMMON |
| lixianyu | 0:d8f4c441e032 | 91 | # define U8G_SECTION(name) |
| lixianyu | 0:d8f4c441e032 | 92 | # define U8G_FONT_SECTION(name) |
| lixianyu | 0:d8f4c441e032 | 93 | #endif |
| lixianyu | 0:d8f4c441e032 | 94 | |
| lixianyu | 0:d8f4c441e032 | 95 | #ifdef __MSP430__ |
| lixianyu | 0:d8f4c441e032 | 96 | /* |
| lixianyu | 0:d8f4c441e032 | 97 | Specifying a section will cause the MSP-GCC to put even const data to RAM |
| lixianyu | 0:d8f4c441e032 | 98 | at least for the fonts. But as the fonts are consts we don't need to specify |
| lixianyu | 0:d8f4c441e032 | 99 | it manually - the MSP-GCC seems to be smart enough to put it into the |
| lixianyu | 0:d8f4c441e032 | 100 | flash memory. |
| lixianyu | 0:d8f4c441e032 | 101 | */ |
| lixianyu | 0:d8f4c441e032 | 102 | # undef U8G_SECTION |
| lixianyu | 0:d8f4c441e032 | 103 | # define U8G_SECTION(name) |
| lixianyu | 0:d8f4c441e032 | 104 | #endif |
| lixianyu | 0:d8f4c441e032 | 105 | |
| lixianyu | 0:d8f4c441e032 | 106 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 107 | |
| lixianyu | 0:d8f4c441e032 | 108 | #ifndef U8G_FONT_SECTION |
| lixianyu | 0:d8f4c441e032 | 109 | # define U8G_FONT_SECTION(name) |
| lixianyu | 0:d8f4c441e032 | 110 | #endif |
| lixianyu | 0:d8f4c441e032 | 111 | |
| lixianyu | 0:d8f4c441e032 | 112 | |
| lixianyu | 0:d8f4c441e032 | 113 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 114 | /* flash memory access */ |
| lixianyu | 0:d8f4c441e032 | 115 | |
| lixianyu | 0:d8f4c441e032 | 116 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 117 | /* U8G_PROGMEM is used by the XBM example */ |
| lixianyu | 0:d8f4c441e032 | 118 | #define U8G_PROGMEM U8G_SECTION(".progmem.data") |
| lixianyu | 0:d8f4c441e032 | 119 | typedef uint8_t PROGMEM u8g_pgm_uint8_t; |
| lixianyu | 0:d8f4c441e032 | 120 | typedef uint8_t u8g_fntpgm_uint8_t; |
| lixianyu | 0:d8f4c441e032 | 121 | #define u8g_pgm_read(adr) pgm_read_byte_near(adr) |
| lixianyu | 0:d8f4c441e032 | 122 | #define U8G_PSTR(s) ((u8g_pgm_uint8_t *)PSTR(s)) |
| lixianyu | 0:d8f4c441e032 | 123 | |
| lixianyu | 0:d8f4c441e032 | 124 | #else |
| lixianyu | 0:d8f4c441e032 | 125 | |
| lixianyu | 0:d8f4c441e032 | 126 | #define U8G_PROGMEM |
| lixianyu | 0:d8f4c441e032 | 127 | #define PROGMEM |
| lixianyu | 0:d8f4c441e032 | 128 | typedef uint8_t u8g_pgm_uint8_t; |
| lixianyu | 0:d8f4c441e032 | 129 | typedef uint8_t u8g_fntpgm_uint8_t; |
| lixianyu | 0:d8f4c441e032 | 130 | #define u8g_pgm_read(adr) (*(const u8g_pgm_uint8_t *)(adr)) |
| lixianyu | 0:d8f4c441e032 | 131 | #define U8G_PSTR(s) ((u8g_pgm_uint8_t *)(s)) |
| lixianyu | 0:d8f4c441e032 | 132 | |
| lixianyu | 0:d8f4c441e032 | 133 | #endif |
| lixianyu | 0:d8f4c441e032 | 134 | |
| lixianyu | 0:d8f4c441e032 | 135 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 136 | /* interrupt safe code */ |
| lixianyu | 0:d8f4c441e032 | 137 | #if defined(U8G_INTERRUPT_SAFE) |
| lixianyu | 0:d8f4c441e032 | 138 | # if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 139 | extern uint8_t global_SREG_backup; /* u8g_state.c */ |
| lixianyu | 0:d8f4c441e032 | 140 | # define U8G_ATOMIC_START() do { global_SREG_backup = SREG; cli(); } while(0) |
| lixianyu | 0:d8f4c441e032 | 141 | # define U8G_ATOMIC_END() SREG = global_SREG_backup |
| lixianyu | 0:d8f4c441e032 | 142 | # define U8G_ATOMIC_OR(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) |= (val)); SREG = tmpSREG; } while(0) |
| lixianyu | 0:d8f4c441e032 | 143 | # define U8G_ATOMIC_AND(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) &= (val)); SREG = tmpSREG; } while(0) |
| lixianyu | 0:d8f4c441e032 | 144 | # else |
| lixianyu | 0:d8f4c441e032 | 145 | # define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) |
| lixianyu | 0:d8f4c441e032 | 146 | # define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) |
| lixianyu | 0:d8f4c441e032 | 147 | # define U8G_ATOMIC_START() |
| lixianyu | 0:d8f4c441e032 | 148 | # define U8G_ATOMIC_END() |
| lixianyu | 0:d8f4c441e032 | 149 | # endif /* __AVR__ */ |
| lixianyu | 0:d8f4c441e032 | 150 | #else |
| lixianyu | 0:d8f4c441e032 | 151 | # define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) |
| lixianyu | 0:d8f4c441e032 | 152 | # define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) |
| lixianyu | 0:d8f4c441e032 | 153 | # define U8G_ATOMIC_START() |
| lixianyu | 0:d8f4c441e032 | 154 | # define U8G_ATOMIC_END() |
| lixianyu | 0:d8f4c441e032 | 155 | #endif /* U8G_INTERRUPT_SAFE */ |
| lixianyu | 0:d8f4c441e032 | 156 | |
| lixianyu | 0:d8f4c441e032 | 157 | |
| lixianyu | 0:d8f4c441e032 | 158 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 159 | /* forward */ |
| lixianyu | 0:d8f4c441e032 | 160 | typedef struct _u8g_t u8g_t; |
| lixianyu | 0:d8f4c441e032 | 161 | typedef struct _u8g_dev_t u8g_dev_t; |
| lixianyu | 0:d8f4c441e032 | 162 | |
| lixianyu | 0:d8f4c441e032 | 163 | typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; |
| lixianyu | 0:d8f4c441e032 | 164 | typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; |
| lixianyu | 0:d8f4c441e032 | 165 | typedef struct _u8g_box_t u8g_box_t; |
| lixianyu | 0:d8f4c441e032 | 166 | typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; |
| lixianyu | 0:d8f4c441e032 | 167 | |
| lixianyu | 0:d8f4c441e032 | 168 | |
| lixianyu | 0:d8f4c441e032 | 169 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 170 | /* generic */ |
| lixianyu | 0:d8f4c441e032 | 171 | #if defined(U8G_16BIT) |
| lixianyu | 0:d8f4c441e032 | 172 | typedef uint16_t u8g_uint_t; |
| lixianyu | 0:d8f4c441e032 | 173 | typedef int16_t u8g_int_t; |
| lixianyu | 0:d8f4c441e032 | 174 | #else |
| lixianyu | 0:d8f4c441e032 | 175 | typedef uint8_t u8g_uint_t; |
| lixianyu | 0:d8f4c441e032 | 176 | typedef int8_t u8g_int_t; |
| lixianyu | 0:d8f4c441e032 | 177 | #endif |
| lixianyu | 0:d8f4c441e032 | 178 | |
| lixianyu | 0:d8f4c441e032 | 179 | #ifdef OBSOLETE |
| lixianyu | 0:d8f4c441e032 | 180 | struct _u8g_box_t { |
| lixianyu | 0:d8f4c441e032 | 181 | u8g_uint_t x0, y0, x1, y1; |
| lixianyu | 0:d8f4c441e032 | 182 | }; |
| lixianyu | 0:d8f4c441e032 | 183 | typedef struct _u8g_box_t u8g_box_t; |
| lixianyu | 0:d8f4c441e032 | 184 | #endif /* OBSOLETE */ |
| lixianyu | 0:d8f4c441e032 | 185 | |
| lixianyu | 0:d8f4c441e032 | 186 | |
| lixianyu | 0:d8f4c441e032 | 187 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 188 | /* device structure */ |
| lixianyu | 0:d8f4c441e032 | 189 | |
| lixianyu | 0:d8f4c441e032 | 190 | #ifdef __XC8 |
| lixianyu | 0:d8f4c441e032 | 191 | /* device prototype */ |
| lixianyu | 0:d8f4c441e032 | 192 | typedef uint8_t (*u8g_dev_fnptr)(void *u8g, void *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 193 | |
| lixianyu | 0:d8f4c441e032 | 194 | /* com prototype */ |
| lixianyu | 0:d8f4c441e032 | 195 | typedef uint8_t (*u8g_com_fnptr)(void *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); |
| lixianyu | 0:d8f4c441e032 | 196 | #else |
| lixianyu | 0:d8f4c441e032 | 197 | /* device prototype */ |
| lixianyu | 0:d8f4c441e032 | 198 | typedef uint8_t (*u8g_dev_fnptr)(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 199 | |
| lixianyu | 0:d8f4c441e032 | 200 | /* com prototype */ |
| lixianyu | 0:d8f4c441e032 | 201 | typedef uint8_t (*u8g_com_fnptr)(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); |
| lixianyu | 0:d8f4c441e032 | 202 | #endif |
| lixianyu | 0:d8f4c441e032 | 203 | |
| lixianyu | 0:d8f4c441e032 | 204 | |
| lixianyu | 0:d8f4c441e032 | 205 | |
| lixianyu | 0:d8f4c441e032 | 206 | struct _u8g_dev_t { |
| lixianyu | 0:d8f4c441e032 | 207 | u8g_dev_fnptr dev_fn; /* device procedure */ |
| lixianyu | 0:d8f4c441e032 | 208 | void *dev_mem; /* device memory */ |
| lixianyu | 0:d8f4c441e032 | 209 | u8g_com_fnptr com_fn; /* communication procedure */ |
| lixianyu | 0:d8f4c441e032 | 210 | }; |
| lixianyu | 0:d8f4c441e032 | 211 | |
| lixianyu | 0:d8f4c441e032 | 212 | |
| lixianyu | 0:d8f4c441e032 | 213 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 214 | /* device list */ |
| lixianyu | 0:d8f4c441e032 | 215 | |
| lixianyu | 0:d8f4c441e032 | 216 | /* Size: 128x64 SDL, u8g_dev_sdl.c */ |
| lixianyu | 0:d8f4c441e032 | 217 | extern u8g_dev_t u8g_dev_sdl_1bit; |
| lixianyu | 0:d8f4c441e032 | 218 | extern u8g_dev_t u8g_dev_sdl_1bit_h; |
| lixianyu | 0:d8f4c441e032 | 219 | extern u8g_dev_t u8g_dev_sdl_2bit; |
| lixianyu | 0:d8f4c441e032 | 220 | extern u8g_dev_t u8g_dev_sdl_2bit_double_mem; |
| lixianyu | 0:d8f4c441e032 | 221 | extern u8g_dev_t u8g_dev_sdl_8bit; |
| lixianyu | 0:d8f4c441e032 | 222 | extern u8g_dev_t u8g_dev_sdl_hicolor; |
| lixianyu | 0:d8f4c441e032 | 223 | extern u8g_dev_t u8g_dev_sdl_fullcolor; |
| lixianyu | 0:d8f4c441e032 | 224 | int u8g_sdl_get_key(void); |
| lixianyu | 0:d8f4c441e032 | 225 | |
| lixianyu | 0:d8f4c441e032 | 226 | /* Size: 70x30 monochrom, stdout */ |
| lixianyu | 0:d8f4c441e032 | 227 | extern u8g_dev_t u8g_dev_stdout; |
| lixianyu | 0:d8f4c441e032 | 228 | |
| lixianyu | 0:d8f4c441e032 | 229 | /* Size: monochrom, writes "u8g.pbm" */ |
| lixianyu | 0:d8f4c441e032 | 230 | extern u8g_dev_t u8g_dev_pbm; |
| lixianyu | 0:d8f4c441e032 | 231 | extern u8g_dev_t u8g_dev_pbm_8h1; |
| lixianyu | 0:d8f4c441e032 | 232 | extern u8g_dev_t u8g_dev_pbm_8h2; /* grayscale simulation */ |
| lixianyu | 0:d8f4c441e032 | 233 | |
| lixianyu | 0:d8f4c441e032 | 234 | /* Size: 128x64 monochrom, no output, used for performance measure */ |
| lixianyu | 0:d8f4c441e032 | 235 | extern u8g_dev_t u8g_dev_gprof; |
| lixianyu | 0:d8f4c441e032 | 236 | |
| lixianyu | 0:d8f4c441e032 | 237 | /* Display: EA DOGS102, Size: 102x64 monochrom */ |
| lixianyu | 0:d8f4c441e032 | 238 | extern u8g_dev_t u8g_dev_uc1701_dogs102_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 239 | extern u8g_dev_t u8g_dev_uc1701_dogs102_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 240 | |
| lixianyu | 0:d8f4c441e032 | 241 | extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 242 | extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 243 | |
| lixianyu | 0:d8f4c441e032 | 244 | /* Display: Mini12864 (dealextreme), Size: 128x64 monochrom */ |
| lixianyu | 0:d8f4c441e032 | 245 | extern u8g_dev_t u8g_dev_uc1701_mini12864_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 246 | extern u8g_dev_t u8g_dev_uc1701_mini12864_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 247 | |
| lixianyu | 0:d8f4c441e032 | 248 | extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 249 | extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 250 | |
| lixianyu | 0:d8f4c441e032 | 251 | /* Display: EA DOGM132, Size: 128x32 monochrom */ |
| lixianyu | 0:d8f4c441e032 | 252 | extern u8g_dev_t u8g_dev_st7565_dogm132_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 253 | extern u8g_dev_t u8g_dev_st7565_dogm132_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 254 | |
| lixianyu | 0:d8f4c441e032 | 255 | /* Display: EA DOGM128, Size: 128x64 monochrom */ |
| lixianyu | 0:d8f4c441e032 | 256 | extern u8g_dev_t u8g_dev_st7565_dogm128_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 257 | extern u8g_dev_t u8g_dev_st7565_dogm128_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 258 | extern u8g_dev_t u8g_dev_st7565_dogm128_parallel; |
| lixianyu | 0:d8f4c441e032 | 259 | |
| lixianyu | 0:d8f4c441e032 | 260 | extern u8g_dev_t u8g_dev_st7565_dogm128_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 261 | extern u8g_dev_t u8g_dev_st7565_dogm128_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 262 | extern u8g_dev_t u8g_dev_st7565_dogm128_2x_parallel; |
| lixianyu | 0:d8f4c441e032 | 263 | |
| lixianyu | 0:d8f4c441e032 | 264 | /* EA DOGM 240-6 */ |
| lixianyu | 0:d8f4c441e032 | 265 | extern u8g_dev_t u8g_dev_uc1611_dogm240_i2c; |
| lixianyu | 0:d8f4c441e032 | 266 | extern u8g_dev_t u8g_dev_uc1611_dogm240_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 267 | extern u8g_dev_t u8g_dev_uc1611_dogm240_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 268 | extern u8g_dev_t u8g_dev_uc1611_dogm240_8bit; |
| lixianyu | 0:d8f4c441e032 | 269 | |
| lixianyu | 0:d8f4c441e032 | 270 | /* EA DOGXL 240 */ |
| lixianyu | 0:d8f4c441e032 | 271 | extern u8g_dev_t u8g_dev_uc1611_dogxl240_i2c; |
| lixianyu | 0:d8f4c441e032 | 272 | extern u8g_dev_t u8g_dev_uc1611_dogxl240_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 273 | extern u8g_dev_t u8g_dev_uc1611_dogxl240_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 274 | extern u8g_dev_t u8g_dev_uc1611_dogxl240_8bit; |
| lixianyu | 0:d8f4c441e032 | 275 | |
| lixianyu | 0:d8f4c441e032 | 276 | /* Display: Topway LM6059 128x64 (Adafruit) */ |
| lixianyu | 0:d8f4c441e032 | 277 | extern u8g_dev_t u8g_dev_st7565_lm6059_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 278 | extern u8g_dev_t u8g_dev_st7565_lm6059_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 279 | extern u8g_dev_t u8g_dev_st7565_lm6059_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 280 | extern u8g_dev_t u8g_dev_st7565_lm6059_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 281 | /* Display: Topway LM6063 128x64 */ |
| lixianyu | 0:d8f4c441e032 | 282 | extern u8g_dev_t u8g_dev_st7565_lm6063_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 283 | extern u8g_dev_t u8g_dev_st7565_lm6063_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 284 | extern u8g_dev_t u8g_dev_st7565_lm6063_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 285 | extern u8g_dev_t u8g_dev_st7565_lm6063_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 286 | /* Display: Newhaven NHD-C12864 */ |
| lixianyu | 0:d8f4c441e032 | 287 | extern u8g_dev_t u8g_dev_st7565_nhd_c12864_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 288 | extern u8g_dev_t u8g_dev_st7565_nhd_c12864_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 289 | extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 290 | extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 291 | |
| lixianyu | 0:d8f4c441e032 | 292 | /* Display: Newhaven NHD-C12832 */ |
| lixianyu | 0:d8f4c441e032 | 293 | extern u8g_dev_t u8g_dev_st7565_nhd_c12832_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 294 | extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 295 | extern u8g_dev_t u8g_dev_st7565_nhd_c12832_parallel; |
| lixianyu | 0:d8f4c441e032 | 296 | extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_usart_spi; |
| lixianyu | 0:d8f4c441e032 | 297 | |
| lixianyu | 0:d8f4c441e032 | 298 | /* Display: Displaytech 64128N */ |
| lixianyu | 0:d8f4c441e032 | 299 | extern u8g_dev_t u8g_dev_st7565_64128n_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 300 | extern u8g_dev_t u8g_dev_st7565_64128n_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 301 | extern u8g_dev_t u8g_dev_st7565_64128n_parallel; |
| lixianyu | 0:d8f4c441e032 | 302 | |
| lixianyu | 0:d8f4c441e032 | 303 | extern u8g_dev_t u8g_dev_st7565_64128n_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 304 | extern u8g_dev_t u8g_dev_st7565_64128n_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 305 | extern u8g_dev_t u8g_dev_st7565_64128n_2x_parallel; |
| lixianyu | 0:d8f4c441e032 | 306 | |
| lixianyu | 0:d8f4c441e032 | 307 | /* Display: LCD-AG-C128032R-DIW W/KK E6 PBF */ |
| lixianyu | 0:d8f4c441e032 | 308 | extern u8g_dev_t u8g_dev_uc1601_c128032_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 309 | extern u8g_dev_t u8g_dev_uc1601_c128032_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 310 | |
| lixianyu | 0:d8f4c441e032 | 311 | extern u8g_dev_t u8g_dev_uc1601_c128032_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 312 | extern u8g_dev_t u8g_dev_uc1601_c128032_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 313 | |
| lixianyu | 0:d8f4c441e032 | 314 | /* East Rising/buy-display.com ERC24064-1 */ |
| lixianyu | 0:d8f4c441e032 | 315 | extern u8g_dev_t u8g_dev_uc1608_240x64_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 316 | extern u8g_dev_t u8g_dev_uc1608_240x64_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 317 | |
| lixianyu | 0:d8f4c441e032 | 318 | extern u8g_dev_t u8g_dev_uc1608_240x64_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 319 | extern u8g_dev_t u8g_dev_uc1608_240x64_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 320 | |
| lixianyu | 0:d8f4c441e032 | 321 | /* UC1608 240x128 */ |
| lixianyu | 0:d8f4c441e032 | 322 | extern u8g_dev_t u8g_dev_uc1608_240x128_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 323 | extern u8g_dev_t u8g_dev_uc1608_240x128_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 324 | |
| lixianyu | 0:d8f4c441e032 | 325 | extern u8g_dev_t u8g_dev_uc1608_240x128_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 326 | extern u8g_dev_t u8g_dev_uc1608_240x128_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 327 | |
| lixianyu | 0:d8f4c441e032 | 328 | /* dfrobot 128x64 Graphic LCD (SKU:FIT0021) */ |
| lixianyu | 0:d8f4c441e032 | 329 | extern u8g_dev_t u8g_dev_st7920_128x64_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 330 | extern u8g_dev_t u8g_dev_st7920_128x64_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 331 | extern u8g_dev_t u8g_dev_st7920_128x64_8bit; |
| lixianyu | 0:d8f4c441e032 | 332 | extern u8g_dev_t u8g_dev_st7920_128x64_custom; |
| lixianyu | 0:d8f4c441e032 | 333 | |
| lixianyu | 0:d8f4c441e032 | 334 | extern u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 335 | extern u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 336 | extern u8g_dev_t u8g_dev_st7920_128x64_4x_8bit; |
| lixianyu | 0:d8f4c441e032 | 337 | extern u8g_dev_t u8g_dev_st7920_128x64_4x_custom; |
| lixianyu | 0:d8f4c441e032 | 338 | |
| lixianyu | 0:d8f4c441e032 | 339 | /* NHD-19232WG */ |
| lixianyu | 0:d8f4c441e032 | 340 | extern u8g_dev_t u8g_dev_st7920_192x32_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 341 | extern u8g_dev_t u8g_dev_st7920_192x32_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 342 | extern u8g_dev_t u8g_dev_st7920_192x32_8bit; |
| lixianyu | 0:d8f4c441e032 | 343 | |
| lixianyu | 0:d8f4c441e032 | 344 | extern u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 345 | extern u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 346 | extern u8g_dev_t u8g_dev_st7920_192x32_4x_8bit; |
| lixianyu | 0:d8f4c441e032 | 347 | |
| lixianyu | 0:d8f4c441e032 | 348 | /* CrystalFontz CFAG20232 */ |
| lixianyu | 0:d8f4c441e032 | 349 | extern u8g_dev_t u8g_dev_st7920_202x32_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 350 | extern u8g_dev_t u8g_dev_st7920_202x32_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 351 | extern u8g_dev_t u8g_dev_st7920_202x32_8bit; |
| lixianyu | 0:d8f4c441e032 | 352 | |
| lixianyu | 0:d8f4c441e032 | 353 | extern u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 354 | extern u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 355 | extern u8g_dev_t u8g_dev_st7920_202x32_4x_8bit; |
| lixianyu | 0:d8f4c441e032 | 356 | |
| lixianyu | 0:d8f4c441e032 | 357 | /* LC7981 160x80 display */ |
| lixianyu | 0:d8f4c441e032 | 358 | extern u8g_dev_t u8g_dev_lc7981_160x80_8bit; |
| lixianyu | 0:d8f4c441e032 | 359 | /* LC7981 240x64 display */ |
| lixianyu | 0:d8f4c441e032 | 360 | extern u8g_dev_t u8g_dev_lc7981_240x64_8bit; |
| lixianyu | 0:d8f4c441e032 | 361 | /* LC7981 240x128 display */ |
| lixianyu | 0:d8f4c441e032 | 362 | extern u8g_dev_t u8g_dev_lc7981_240x128_8bit; |
| lixianyu | 0:d8f4c441e032 | 363 | /* LC7981 320x64 display */ |
| lixianyu | 0:d8f4c441e032 | 364 | extern u8g_dev_t u8g_dev_lc7981_320x64_8bit; |
| lixianyu | 0:d8f4c441e032 | 365 | |
| lixianyu | 0:d8f4c441e032 | 366 | /* T6963, all t6963 devices have double page (2x) */ |
| lixianyu | 0:d8f4c441e032 | 367 | extern u8g_dev_t u8g_dev_t6963_240x128_8bit; |
| lixianyu | 0:d8f4c441e032 | 368 | extern u8g_dev_t u8g_dev_t6963_128x128_8bit; |
| lixianyu | 0:d8f4c441e032 | 369 | extern u8g_dev_t u8g_dev_t6963_240x64_8bit; |
| lixianyu | 0:d8f4c441e032 | 370 | extern u8g_dev_t u8g_dev_t6963_128x64_8bit; |
| lixianyu | 0:d8f4c441e032 | 371 | |
| lixianyu | 0:d8f4c441e032 | 372 | /* Display: EA DOGXL160, Size: 160x104 monochrom & gray level */ |
| lixianyu | 0:d8f4c441e032 | 373 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 374 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 375 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 376 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 377 | |
| lixianyu | 0:d8f4c441e032 | 378 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 379 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 380 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 381 | extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 382 | |
| lixianyu | 0:d8f4c441e032 | 383 | /* Display: Generic KS0108b, Size: 128x64 monochrom */ |
| lixianyu | 0:d8f4c441e032 | 384 | extern u8g_dev_t u8g_dev_ks0108_128x64; /* official Arduino Library interface */ |
| lixianyu | 0:d8f4c441e032 | 385 | extern u8g_dev_t u8g_dev_ks0108_128x64_fast; /* faster, but uses private tables from the Arduino Library */ |
| lixianyu | 0:d8f4c441e032 | 386 | |
| lixianyu | 0:d8f4c441e032 | 387 | /* Nokia 84x48 Display with PCD8544 */ |
| lixianyu | 0:d8f4c441e032 | 388 | extern u8g_dev_t u8g_dev_pcd8544_84x48_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 389 | extern u8g_dev_t u8g_dev_pcd8544_84x48_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 390 | extern u8g_dev_t u8g_dev_tls8204_84x48_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 391 | |
| lixianyu | 0:d8f4c441e032 | 392 | /* Nokia 96x65 Display with PCF8812 */ |
| lixianyu | 0:d8f4c441e032 | 393 | extern u8g_dev_t u8g_dev_pcf8812_96x65_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 394 | extern u8g_dev_t u8g_dev_pcf8812_96x65_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 395 | |
| lixianyu | 0:d8f4c441e032 | 396 | /* NHD-2.7-12864UCY3 OLED Display with SSD1325 Controller */ |
| lixianyu | 0:d8f4c441e032 | 397 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 398 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 399 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_parallel; |
| lixianyu | 0:d8f4c441e032 | 400 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 401 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 402 | |
| lixianyu | 0:d8f4c441e032 | 403 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 404 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 405 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel; |
| lixianyu | 0:d8f4c441e032 | 406 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 407 | extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 408 | |
| lixianyu | 0:d8f4c441e032 | 409 | /* LY120 OLED with SSD1327 Controller (tested with Seeedstudio module) */ |
| lixianyu | 0:d8f4c441e032 | 410 | extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 411 | extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 412 | extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_i2c; |
| lixianyu | 0:d8f4c441e032 | 413 | |
| lixianyu | 0:d8f4c441e032 | 414 | extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 415 | extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 416 | extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c; |
| lixianyu | 0:d8f4c441e032 | 417 | |
| lixianyu | 0:d8f4c441e032 | 418 | /* NHD-3.12-25664 OLED Display with SSD1322 Controller */ |
| lixianyu | 0:d8f4c441e032 | 419 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 420 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 421 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_parallel; |
| lixianyu | 0:d8f4c441e032 | 422 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 423 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 424 | |
| lixianyu | 0:d8f4c441e032 | 425 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 426 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 427 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_parallel; |
| lixianyu | 0:d8f4c441e032 | 428 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 429 | extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 430 | |
| lixianyu | 0:d8f4c441e032 | 431 | /* OLED 128x64 Display with SSD1306 Controller */ |
| lixianyu | 0:d8f4c441e032 | 432 | extern u8g_dev_t u8g_dev_ssd1306_128x64_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 433 | extern u8g_dev_t u8g_dev_ssd1306_128x64_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 434 | extern u8g_dev_t u8g_dev_ssd1306_128x64_i2c; |
| lixianyu | 0:d8f4c441e032 | 435 | |
| lixianyu | 0:d8f4c441e032 | 436 | extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 437 | extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 438 | extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_i2c; |
| lixianyu | 0:d8f4c441e032 | 439 | |
| lixianyu | 0:d8f4c441e032 | 440 | extern u8g_dev_t u8g_dev_ssd1306_microduino_128x64_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 441 | extern u8g_dev_t u8g_dev_ssd1306_microduino_128x64_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 442 | extern u8g_dev_t u8g_dev_ssd1306_microduino_128x64_i2c; |
| lixianyu | 0:d8f4c441e032 | 443 | |
| lixianyu | 0:d8f4c441e032 | 444 | extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 445 | extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 446 | extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c; |
| lixianyu | 0:d8f4c441e032 | 447 | |
| lixianyu | 0:d8f4c441e032 | 448 | /* OLED 128x64 Display with SH1106 Controller */ |
| lixianyu | 0:d8f4c441e032 | 449 | extern u8g_dev_t u8g_dev_sh1106_128x64_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 450 | extern u8g_dev_t u8g_dev_sh1106_128x64_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 451 | extern u8g_dev_t u8g_dev_sh1106_128x64_i2c; |
| lixianyu | 0:d8f4c441e032 | 452 | |
| lixianyu | 0:d8f4c441e032 | 453 | extern u8g_dev_t u8g_dev_sh1106_128x64_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 454 | extern u8g_dev_t u8g_dev_sh1106_128x64_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 455 | extern u8g_dev_t u8g_dev_sh1106_128x64_2x_i2c; |
| lixianyu | 0:d8f4c441e032 | 456 | |
| lixianyu | 0:d8f4c441e032 | 457 | /* OLED 128x64 Display with SSD1309 Controller */ |
| lixianyu | 0:d8f4c441e032 | 458 | extern u8g_dev_t u8g_dev_ssd1309_128x64_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 459 | extern u8g_dev_t u8g_dev_ssd1309_128x64_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 460 | extern u8g_dev_t u8g_dev_ssd1309_128x64_i2c; |
| lixianyu | 0:d8f4c441e032 | 461 | |
| lixianyu | 0:d8f4c441e032 | 462 | /* OLED 128x32 Display with SSD1306 Controller */ |
| lixianyu | 0:d8f4c441e032 | 463 | extern u8g_dev_t u8g_dev_ssd1306_128x32_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 464 | extern u8g_dev_t u8g_dev_ssd1306_128x32_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 465 | extern u8g_dev_t u8g_dev_ssd1306_128x32_i2c; |
| lixianyu | 0:d8f4c441e032 | 466 | |
| lixianyu | 0:d8f4c441e032 | 467 | extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 468 | extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 469 | extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_i2c; |
| lixianyu | 0:d8f4c441e032 | 470 | |
| lixianyu | 0:d8f4c441e032 | 471 | /* OLED 64x48 Display with SSD1306 Controller */ |
| lixianyu | 0:d8f4c441e032 | 472 | extern u8g_dev_t u8g_dev_ssd1306_64x48_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 473 | extern u8g_dev_t u8g_dev_ssd1306_64x48_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 474 | extern u8g_dev_t u8g_dev_ssd1306_64x48_i2c; |
| lixianyu | 0:d8f4c441e032 | 475 | |
| lixianyu | 0:d8f4c441e032 | 476 | extern u8g_dev_t u8g_dev_ssd1306_64x48_2x_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 477 | extern u8g_dev_t u8g_dev_ssd1306_64x48_2x_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 478 | extern u8g_dev_t u8g_dev_ssd1306_64x48_2x_i2c; |
| lixianyu | 0:d8f4c441e032 | 479 | |
| lixianyu | 0:d8f4c441e032 | 480 | /* OLED 60x32 Display with LD7032 Controller */ |
| lixianyu | 0:d8f4c441e032 | 481 | extern u8g_dev_t u8g_dev_ld7032_60x32_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 482 | extern u8g_dev_t u8g_dev_ld7032_60x32_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 483 | extern u8g_dev_t u8g_dev_ld7032_60x32_parallel; |
| lixianyu | 0:d8f4c441e032 | 484 | |
| lixianyu | 0:d8f4c441e032 | 485 | /* experimental 65K TFT with st7687 controller */ |
| lixianyu | 0:d8f4c441e032 | 486 | extern u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 487 | extern u8g_dev_t u8g_dev_st7687_c144mvgd_8bit; |
| lixianyu | 0:d8f4c441e032 | 488 | |
| lixianyu | 0:d8f4c441e032 | 489 | /* SBN1661/SED1520 display with 122x32 */ |
| lixianyu | 0:d8f4c441e032 | 490 | extern u8g_dev_t u8g_dev_sbn1661_122x32; |
| lixianyu | 0:d8f4c441e032 | 491 | |
| lixianyu | 0:d8f4c441e032 | 492 | /* flip disc matrix */ |
| lixianyu | 0:d8f4c441e032 | 493 | extern u8g_dev_t u8g_dev_flipdisc_2x7; |
| lixianyu | 0:d8f4c441e032 | 494 | void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)); |
| lixianyu | 0:d8f4c441e032 | 495 | |
| lixianyu | 0:d8f4c441e032 | 496 | /* ILI9325D based TFT */ |
| lixianyu | 0:d8f4c441e032 | 497 | extern u8g_dev_t u8g_dev_ili9325d_320x240_8bit; |
| lixianyu | 0:d8f4c441e032 | 498 | |
| lixianyu | 0:d8f4c441e032 | 499 | |
| lixianyu | 0:d8f4c441e032 | 500 | /* SSD1351 OLED (breakout board from http://www.kickstarter.com/projects/ilsoftltd/colour-oled-breakout-board) */ |
| lixianyu | 0:d8f4c441e032 | 501 | extern u8g_dev_t u8g_dev_ssd1351_128x128_332_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 502 | extern u8g_dev_t u8g_dev_ssd1351_128x128_332_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 503 | extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 504 | extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 505 | extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 506 | extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 507 | extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 508 | extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 509 | extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 510 | extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 511 | |
| lixianyu | 0:d8f4c441e032 | 512 | /* SSD1351 OLED (Freetronics, GPIOs set to high level) */ |
| lixianyu | 0:d8f4c441e032 | 513 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 514 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 515 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 516 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 517 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 518 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 519 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi; |
| lixianyu | 0:d8f4c441e032 | 520 | extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 521 | |
| lixianyu | 0:d8f4c441e032 | 522 | |
| lixianyu | 0:d8f4c441e032 | 523 | /* SSD1353 OLED Palmtronics */ |
| lixianyu | 0:d8f4c441e032 | 524 | extern u8g_dev_t u8g_dev_ssd1353_160x128_332_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 525 | extern u8g_dev_t u8g_dev_ssd1353_160x128_hicolor_hw_spi; |
| lixianyu | 0:d8f4c441e032 | 526 | |
| lixianyu | 0:d8f4c441e032 | 527 | /* HT1632 */ |
| lixianyu | 0:d8f4c441e032 | 528 | extern u8g_dev_t u8g_dev_ht1632_24x16; |
| lixianyu | 0:d8f4c441e032 | 529 | |
| lixianyu | 0:d8f4c441e032 | 530 | /* A2 Micro Printer */ |
| lixianyu | 0:d8f4c441e032 | 531 | extern u8g_dev_t u8g_dev_a2_micro_printer_384x240; |
| lixianyu | 0:d8f4c441e032 | 532 | extern u8g_dev_t u8g_dev_a2_micro_printer_192x120_ds; |
| lixianyu | 0:d8f4c441e032 | 533 | extern u8g_dev_t u8g_dev_a2_micro_printer_192x360_ds; |
| lixianyu | 0:d8f4c441e032 | 534 | extern u8g_dev_t u8g_dev_a2_micro_printer_192x720_ds; |
| lixianyu | 0:d8f4c441e032 | 535 | |
| lixianyu | 0:d8f4c441e032 | 536 | /* u8g_virtual_screen.c */ |
| lixianyu | 0:d8f4c441e032 | 537 | extern u8g_dev_t u8g_dev_vs; |
| lixianyu | 0:d8f4c441e032 | 538 | |
| lixianyu | 0:d8f4c441e032 | 539 | |
| lixianyu | 0:d8f4c441e032 | 540 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 541 | /* device messages */ |
| lixianyu | 0:d8f4c441e032 | 542 | |
| lixianyu | 0:d8f4c441e032 | 543 | struct _u8g_dev_arg_pixel_t { |
| lixianyu | 0:d8f4c441e032 | 544 | u8g_uint_t x, y; /* will be modified */ |
| lixianyu | 0:d8f4c441e032 | 545 | uint8_t pixel; /* will be modified, pixel sequence or transparency value */ |
| lixianyu | 0:d8f4c441e032 | 546 | uint8_t dir; |
| lixianyu | 0:d8f4c441e032 | 547 | uint8_t color; /* color or index value, red value for true color mode */ |
| lixianyu | 0:d8f4c441e032 | 548 | uint8_t hi_color; /* high byte for 64K color mode, low byte is in "color", green value for true color mode */ |
| lixianyu | 0:d8f4c441e032 | 549 | uint8_t blue; /* blue value in true color mode */ |
| lixianyu | 0:d8f4c441e032 | 550 | }; |
| lixianyu | 0:d8f4c441e032 | 551 | /* typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; */ /* forward decl */ |
| lixianyu | 0:d8f4c441e032 | 552 | |
| lixianyu | 0:d8f4c441e032 | 553 | /* range for r,g,b: 0..255 */ |
| lixianyu | 0:d8f4c441e032 | 554 | #define U8G_GET_HICOLOR_BY_RGB(r,g,b) (((uint16_t)((r)&0x0f8))<<8)|(((uint16_t)((g)&0x0fc))<<3)|(((uint16_t)((b)>>3))) |
| lixianyu | 0:d8f4c441e032 | 555 | |
| lixianyu | 0:d8f4c441e032 | 556 | struct _u8g_dev_arg_bbx_t { |
| lixianyu | 0:d8f4c441e032 | 557 | u8g_uint_t x, y, w, h; |
| lixianyu | 0:d8f4c441e032 | 558 | }; |
| lixianyu | 0:d8f4c441e032 | 559 | /* typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; */ /* forward decl */ |
| lixianyu | 0:d8f4c441e032 | 560 | |
| lixianyu | 0:d8f4c441e032 | 561 | struct _u8g_box_t { |
| lixianyu | 0:d8f4c441e032 | 562 | u8g_uint_t x0, y0, x1, y1; |
| lixianyu | 0:d8f4c441e032 | 563 | }; |
| lixianyu | 0:d8f4c441e032 | 564 | /* typedef struct _u8g_box_t u8g_box_t; */ /* forward decl */ |
| lixianyu | 0:d8f4c441e032 | 565 | |
| lixianyu | 0:d8f4c441e032 | 566 | struct _u8g_dev_arg_irgb_t { |
| lixianyu | 0:d8f4c441e032 | 567 | u8g_uint_t idx, r, g, b; /* index with rgb value */ |
| lixianyu | 0:d8f4c441e032 | 568 | }; |
| lixianyu | 0:d8f4c441e032 | 569 | /* typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; */ /* forward decl */ |
| lixianyu | 0:d8f4c441e032 | 570 | |
| lixianyu | 0:d8f4c441e032 | 571 | |
| lixianyu | 0:d8f4c441e032 | 572 | |
| lixianyu | 0:d8f4c441e032 | 573 | #define U8G_DEV_MSG_INIT 10 |
| lixianyu | 0:d8f4c441e032 | 574 | #define U8G_DEV_MSG_STOP 11 |
| lixianyu | 0:d8f4c441e032 | 575 | |
| lixianyu | 0:d8f4c441e032 | 576 | /* arg: pointer to uint8_t, contranst value between 0 and 255 */ |
| lixianyu | 0:d8f4c441e032 | 577 | #define U8G_DEV_MSG_CONTRAST 15 |
| lixianyu | 0:d8f4c441e032 | 578 | |
| lixianyu | 0:d8f4c441e032 | 579 | #define U8G_DEV_MSG_SLEEP_ON 16 |
| lixianyu | 0:d8f4c441e032 | 580 | #define U8G_DEV_MSG_SLEEP_OFF 17 |
| lixianyu | 0:d8f4c441e032 | 581 | |
| lixianyu | 0:d8f4c441e032 | 582 | #define U8G_DEV_MSG_PAGE_FIRST 20 |
| lixianyu | 0:d8f4c441e032 | 583 | #define U8G_DEV_MSG_PAGE_NEXT 21 |
| lixianyu | 0:d8f4c441e032 | 584 | |
| lixianyu | 0:d8f4c441e032 | 585 | /* arg: u8g_dev_arg_bbx_t * */ |
| lixianyu | 0:d8f4c441e032 | 586 | /* new algorithm with U8G_DEV_MSG_GET_PAGE_BOX makes this msg obsolete */ |
| lixianyu | 0:d8f4c441e032 | 587 | /* #define U8G_DEV_MSG_IS_BBX_INTERSECTION 22 */ |
| lixianyu | 0:d8f4c441e032 | 588 | |
| lixianyu | 0:d8f4c441e032 | 589 | /* arg: u8g_box_t *, fill structure with current page properties */ |
| lixianyu | 0:d8f4c441e032 | 590 | #define U8G_DEV_MSG_GET_PAGE_BOX 23 |
| lixianyu | 0:d8f4c441e032 | 591 | |
| lixianyu | 0:d8f4c441e032 | 592 | /* |
| lixianyu | 0:d8f4c441e032 | 593 | #define U8G_DEV_MSG_PRIMITIVE_START 30 |
| lixianyu | 0:d8f4c441e032 | 594 | #define U8G_DEV_MSG_PRIMITIVE_END 31 |
| lixianyu | 0:d8f4c441e032 | 595 | */ |
| lixianyu | 0:d8f4c441e032 | 596 | |
| lixianyu | 0:d8f4c441e032 | 597 | /* arg: u8g_dev_arg_pixel_t * */ |
| lixianyu | 0:d8f4c441e032 | 598 | #define U8G_DEV_MSG_SET_TPIXEL 44 |
| lixianyu | 0:d8f4c441e032 | 599 | #define U8G_DEV_MSG_SET_4TPIXEL 45 |
| lixianyu | 0:d8f4c441e032 | 600 | |
| lixianyu | 0:d8f4c441e032 | 601 | #define U8G_DEV_MSG_SET_PIXEL 50 |
| lixianyu | 0:d8f4c441e032 | 602 | #define U8G_DEV_MSG_SET_8PIXEL 59 |
| lixianyu | 0:d8f4c441e032 | 603 | |
| lixianyu | 0:d8f4c441e032 | 604 | #define U8G_DEV_MSG_SET_COLOR_ENTRY 60 |
| lixianyu | 0:d8f4c441e032 | 605 | |
| lixianyu | 0:d8f4c441e032 | 606 | #define U8G_DEV_MSG_SET_XY_CB 61 |
| lixianyu | 0:d8f4c441e032 | 607 | |
| lixianyu | 0:d8f4c441e032 | 608 | #define U8G_DEV_MSG_GET_WIDTH 70 |
| lixianyu | 0:d8f4c441e032 | 609 | #define U8G_DEV_MSG_GET_HEIGHT 71 |
| lixianyu | 0:d8f4c441e032 | 610 | #define U8G_DEV_MSG_GET_MODE 72 |
| lixianyu | 0:d8f4c441e032 | 611 | |
| lixianyu | 0:d8f4c441e032 | 612 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 613 | /* device modes */ |
| lixianyu | 0:d8f4c441e032 | 614 | #define U8G_MODE(is_index_mode, is_color, bits_per_pixel) (((is_index_mode)<<6) | ((is_color)<<5)|(bits_per_pixel)) |
| lixianyu | 0:d8f4c441e032 | 615 | |
| lixianyu | 0:d8f4c441e032 | 616 | #define U8G_MODE_UNKNOWN 0 |
| lixianyu | 0:d8f4c441e032 | 617 | #define U8G_MODE_BW U8G_MODE(0, 0, 1) |
| lixianyu | 0:d8f4c441e032 | 618 | #define U8G_MODE_GRAY2BIT U8G_MODE(0, 0, 2) |
| lixianyu | 0:d8f4c441e032 | 619 | #define U8G_MODE_R3G3B2 U8G_MODE(0, 1, 8) |
| lixianyu | 0:d8f4c441e032 | 620 | #define U8G_MODE_INDEX U8G_MODE(1, 1, 8) |
| lixianyu | 0:d8f4c441e032 | 621 | /* hicolor is R5G6B5 */ |
| lixianyu | 0:d8f4c441e032 | 622 | #define U8G_MODE_HICOLOR U8G_MODE(0, 1, 16) |
| lixianyu | 0:d8f4c441e032 | 623 | /* truecolor */ |
| lixianyu | 0:d8f4c441e032 | 624 | #define U8G_MODE_TRUECOLOR U8G_MODE(0, 1, 24) |
| lixianyu | 0:d8f4c441e032 | 625 | |
| lixianyu | 0:d8f4c441e032 | 626 | |
| lixianyu | 0:d8f4c441e032 | 627 | #define U8G_MODE_GET_BITS_PER_PIXEL(mode) ((mode)&31) |
| lixianyu | 0:d8f4c441e032 | 628 | #define U8G_MODE_IS_COLOR(mode) (((mode)&32)==0?0:1) |
| lixianyu | 0:d8f4c441e032 | 629 | #define U8G_MODE_IS_INDEX_MODE(mode) (((mode)&64)==0?0:1) |
| lixianyu | 0:d8f4c441e032 | 630 | |
| lixianyu | 0:d8f4c441e032 | 631 | |
| lixianyu | 0:d8f4c441e032 | 632 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 633 | /* com options */ |
| lixianyu | 0:d8f4c441e032 | 634 | |
| lixianyu | 0:d8f4c441e032 | 635 | /* uncomment the following line for Atmega HW SPI double speed, issue 89 */ |
| lixianyu | 0:d8f4c441e032 | 636 | /* #define U8G_HW_SPI_2X 1 */ |
| lixianyu | 0:d8f4c441e032 | 637 | |
| lixianyu | 0:d8f4c441e032 | 638 | /* com messages */ |
| lixianyu | 0:d8f4c441e032 | 639 | |
| lixianyu | 0:d8f4c441e032 | 640 | #define U8G_COM_MSG_STOP 0 |
| lixianyu | 0:d8f4c441e032 | 641 | #define U8G_COM_MSG_INIT 1 |
| lixianyu | 0:d8f4c441e032 | 642 | |
| lixianyu | 0:d8f4c441e032 | 643 | #define U8G_COM_MSG_ADDRESS 2 |
| lixianyu | 0:d8f4c441e032 | 644 | |
| lixianyu | 0:d8f4c441e032 | 645 | /* CHIP_SELECT argument: number of the chip which needs to be activated, so this is more like high active */ |
| lixianyu | 0:d8f4c441e032 | 646 | #define U8G_COM_MSG_CHIP_SELECT 3 |
| lixianyu | 0:d8f4c441e032 | 647 | |
| lixianyu | 0:d8f4c441e032 | 648 | #define U8G_COM_MSG_RESET 4 |
| lixianyu | 0:d8f4c441e032 | 649 | |
| lixianyu | 0:d8f4c441e032 | 650 | #define U8G_COM_MSG_WRITE_BYTE 5 |
| lixianyu | 0:d8f4c441e032 | 651 | #define U8G_COM_MSG_WRITE_SEQ 6 |
| lixianyu | 0:d8f4c441e032 | 652 | #define U8G_COM_MSG_WRITE_SEQ_P 7 |
| lixianyu | 0:d8f4c441e032 | 653 | |
| lixianyu | 0:d8f4c441e032 | 654 | |
| lixianyu | 0:d8f4c441e032 | 655 | /* com driver */ |
| lixianyu | 0:d8f4c441e032 | 656 | |
| lixianyu | 0:d8f4c441e032 | 657 | uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_null.c */ |
| lixianyu | 0:d8f4c441e032 | 658 | |
| lixianyu | 0:d8f4c441e032 | 659 | uint8_t u8g_com_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* requires U8G_WITH_PINLIST */ |
| lixianyu | 0:d8f4c441e032 | 660 | |
| lixianyu | 0:d8f4c441e032 | 661 | |
| lixianyu | 0:d8f4c441e032 | 662 | uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_std_sw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 663 | uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_usart_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 664 | uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_sw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 665 | uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_hw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 666 | uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_arduino_ATTiny85_std_hw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 667 | uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 668 | uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_custom.c */ |
| lixianyu | 0:d8f4c441e032 | 669 | uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_hw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 670 | uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_parallel.c */ |
| lixianyu | 0:d8f4c441e032 | 671 | uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_fast_parallel.c */ |
| lixianyu | 0:d8f4c441e032 | 672 | uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_port_d_wr.c */ |
| lixianyu | 0:d8f4c441e032 | 673 | uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_no_en_parallel.c */ |
| lixianyu | 0:d8f4c441e032 | 674 | uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_ssd_i2c.c */ |
| lixianyu | 0:d8f4c441e032 | 675 | uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); |
| lixianyu | 0:d8f4c441e032 | 676 | uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_t6963.c */ |
| lixianyu | 0:d8f4c441e032 | 677 | |
| lixianyu | 0:d8f4c441e032 | 678 | |
| lixianyu | 0:d8f4c441e032 | 679 | uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 680 | uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_sw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 681 | uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_st7920_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 682 | uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); |
| lixianyu | 0:d8f4c441e032 | 683 | uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_parallel.c */ |
| lixianyu | 0:d8f4c441e032 | 684 | |
| lixianyu | 0:d8f4c441e032 | 685 | uint8_t u8g_com_msp430_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_msp430_hw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 686 | |
| lixianyu | 0:d8f4c441e032 | 687 | uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_rasperrypi_hw_spi.c */ |
| lixianyu | 0:d8f4c441e032 | 688 | uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_raspberrypi_ssd_i2c.c */ |
| lixianyu | 0:d8f4c441e032 | 689 | |
| lixianyu | 0:d8f4c441e032 | 690 | |
| lixianyu | 0:d8f4c441e032 | 691 | /* |
| lixianyu | 0:d8f4c441e032 | 692 | Translation of system specific com drives to generic com names |
| lixianyu | 0:d8f4c441e032 | 693 | At the moment, the following generic com drives are available |
| lixianyu | 0:d8f4c441e032 | 694 | U8G_COM_HW_SPI |
| lixianyu | 0:d8f4c441e032 | 695 | U8G_COM_SW_SPI |
| lixianyu | 0:d8f4c441e032 | 696 | U8G_COM_PARALLEL |
| lixianyu | 0:d8f4c441e032 | 697 | U8G_COM_T6963 |
| lixianyu | 0:d8f4c441e032 | 698 | U8G_COM_FAST_PARALLEL |
| lixianyu | 0:d8f4c441e032 | 699 | U8G_COM_SSD_I2C |
| lixianyu | 0:d8f4c441e032 | 700 | U8G_COM_UC_I2C |
| lixianyu | 0:d8f4c441e032 | 701 | |
| lixianyu | 0:d8f4c441e032 | 702 | defined(__18CXX) || defined(__PIC32MX) |
| lixianyu | 0:d8f4c441e032 | 703 | |
| lixianyu | 0:d8f4c441e032 | 704 | */ |
| lixianyu | 0:d8f4c441e032 | 705 | |
| lixianyu | 0:d8f4c441e032 | 706 | /* ==== HW SPI, msp430 ====*/ |
| lixianyu | 0:d8f4c441e032 | 707 | #if defined(__MSP430__) |
| lixianyu | 0:d8f4c441e032 | 708 | #define U8G_COM_HW_SPI u8g_com_msp430_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 709 | #define U8G_COM_ST7920_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 710 | #endif |
| lixianyu | 0:d8f4c441e032 | 711 | |
| lixianyu | 0:d8f4c441e032 | 712 | /* ==== HW SPI, Raspberry PI ====*/ |
| lixianyu | 0:d8f4c441e032 | 713 | #if defined(U8G_RASPBERRY_PI) |
| lixianyu | 0:d8f4c441e032 | 714 | #define U8G_COM_HW_SPI u8g_com_raspberrypi_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 715 | #define U8G_COM_SW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 716 | |
| lixianyu | 0:d8f4c441e032 | 717 | /* I'm sure there must be some mad reason for needing this */ |
| lixianyu | 0:d8f4c441e032 | 718 | #define U8G_COM_ST7920_SW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 719 | #define U8G_COM_ST7920_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 720 | #endif |
| lixianyu | 0:d8f4c441e032 | 721 | |
| lixianyu | 0:d8f4c441e032 | 722 | /* ==== HW SPI, Arduino ====*/ |
| lixianyu | 0:d8f4c441e032 | 723 | #if defined(ARDUINO) |
| lixianyu | 0:d8f4c441e032 | 724 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 725 | |
| lixianyu | 0:d8f4c441e032 | 726 | #if defined(__AVR_ATtiny85__) |
| lixianyu | 0:d8f4c441e032 | 727 | #define U8G_COM_HW_SPI u8g_com_arduino_ATtiny85_std_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 728 | #define U8G_COM_ST7920_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 729 | #else |
| lixianyu | 0:d8f4c441e032 | 730 | |
| lixianyu | 0:d8f4c441e032 | 731 | #define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 732 | #if defined(__AVR_ATmega32U4__) |
| lixianyu | 0:d8f4c441e032 | 733 | #define U8G_COM_HW_USART_SPI u8g_com_arduino_hw_usart_spi_fn |
| lixianyu | 0:d8f4c441e032 | 734 | #endif /* __AVR_ATmega32U4__ */ |
| lixianyu | 0:d8f4c441e032 | 735 | #define U8G_COM_ST7920_HW_SPI u8g_com_arduino_st7920_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 736 | #endif /* __AVR_ATtiny85__ */ |
| lixianyu | 0:d8f4c441e032 | 737 | |
| lixianyu | 0:d8f4c441e032 | 738 | #elif defined(__18CXX) || defined(__PIC32MX) |
| lixianyu | 0:d8f4c441e032 | 739 | #define U8G_COM_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 740 | #define U8G_COM_ST7920_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 741 | #elif defined(__SAM3X8E__) /* Arduino Due */ |
| lixianyu | 0:d8f4c441e032 | 742 | #define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 743 | #define U8G_COM_ST7920_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 744 | #endif |
| lixianyu | 0:d8f4c441e032 | 745 | #endif |
| lixianyu | 0:d8f4c441e032 | 746 | /* ==== HW SPI, not Arduino ====*/ |
| lixianyu | 0:d8f4c441e032 | 747 | #ifndef U8G_COM_HW_SPI |
| lixianyu | 0:d8f4c441e032 | 748 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 749 | #define U8G_COM_HW_SPI u8g_com_atmega_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 750 | #define U8G_COM_ST7920_HW_SPI u8g_com_atmega_st7920_hw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 751 | #endif |
| lixianyu | 0:d8f4c441e032 | 752 | #endif |
| lixianyu | 0:d8f4c441e032 | 753 | #ifndef U8G_COM_HW_SPI |
| lixianyu | 0:d8f4c441e032 | 754 | #define U8G_COM_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 755 | #define U8G_COM_ST7920_HW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 756 | #endif |
| lixianyu | 0:d8f4c441e032 | 757 | #ifndef U8G_COM_HW_USART_SPI |
| lixianyu | 0:d8f4c441e032 | 758 | #define U8G_COM_HW_USART_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 759 | #endif |
| lixianyu | 0:d8f4c441e032 | 760 | |
| lixianyu | 0:d8f4c441e032 | 761 | |
| lixianyu | 0:d8f4c441e032 | 762 | /* ==== SW SPI, Arduino ====*/ |
| lixianyu | 0:d8f4c441e032 | 763 | #if defined(ARDUINO) |
| lixianyu | 0:d8f4c441e032 | 764 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 765 | #define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 766 | #define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn |
| lixianyu | 0:d8f4c441e032 | 767 | #elif defined(__18CXX) || defined(__PIC32MX) |
| lixianyu | 0:d8f4c441e032 | 768 | #define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 769 | #define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn |
| lixianyu | 0:d8f4c441e032 | 770 | #elif defined(__SAM3X8E__) /* Arduino Due */ |
| lixianyu | 0:d8f4c441e032 | 771 | //#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 772 | #define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 773 | #define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn |
| lixianyu | 0:d8f4c441e032 | 774 | #elif defined(__arm__) /* Teensy */ |
| lixianyu | 0:d8f4c441e032 | 775 | #define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 776 | #define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn |
| lixianyu | 0:d8f4c441e032 | 777 | #endif |
| lixianyu | 0:d8f4c441e032 | 778 | #endif |
| lixianyu | 0:d8f4c441e032 | 779 | |
| lixianyu | 0:d8f4c441e032 | 780 | #ifndef U8G_COM_SW_SPI |
| lixianyu | 0:d8f4c441e032 | 781 | /* ==== SW SPI, not Arduino ====*/ |
| lixianyu | 0:d8f4c441e032 | 782 | |
| lixianyu | 0:d8f4c441e032 | 783 | /* ==== SW SPI, msp430 ====*/ |
| lixianyu | 0:d8f4c441e032 | 784 | #if defined(__MSP430__) |
| lixianyu | 0:d8f4c441e032 | 785 | #define U8G_COM_SW_SPI u8g_com_std_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 786 | #define U8G_COM_ST7920_SW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 787 | #endif |
| lixianyu | 0:d8f4c441e032 | 788 | |
| lixianyu | 0:d8f4c441e032 | 789 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 790 | #define U8G_COM_SW_SPI u8g_com_atmega_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 791 | #define U8G_COM_ST7920_SW_SPI u8g_com_atmega_st7920_sw_spi_fn |
| lixianyu | 0:d8f4c441e032 | 792 | #endif |
| lixianyu | 0:d8f4c441e032 | 793 | #endif |
| lixianyu | 0:d8f4c441e032 | 794 | #ifndef U8G_COM_SW_SPI |
| lixianyu | 0:d8f4c441e032 | 795 | #define U8G_COM_SW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 796 | #define U8G_COM_ST7920_SW_SPI u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 797 | #endif |
| lixianyu | 0:d8f4c441e032 | 798 | |
| lixianyu | 0:d8f4c441e032 | 799 | /* ==== Parallel interface, Arduino ====*/ |
| lixianyu | 0:d8f4c441e032 | 800 | #if defined(ARDUINO) |
| lixianyu | 0:d8f4c441e032 | 801 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 802 | #define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn |
| lixianyu | 0:d8f4c441e032 | 803 | #define U8G_COM_FAST_PARALLEL u8g_com_arduino_fast_parallel_fn |
| lixianyu | 0:d8f4c441e032 | 804 | #define U8G_COM_T6963 u8g_com_arduino_t6963_fn |
| lixianyu | 0:d8f4c441e032 | 805 | #else /* Arduino Due, Chipkit PIC32 */ |
| lixianyu | 0:d8f4c441e032 | 806 | #define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn |
| lixianyu | 0:d8f4c441e032 | 807 | #define U8G_COM_FAST_PARALLEL u8g_com_arduino_parallel_fn |
| lixianyu | 0:d8f4c441e032 | 808 | #define U8G_COM_T6963 u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 809 | #endif |
| lixianyu | 0:d8f4c441e032 | 810 | #endif |
| lixianyu | 0:d8f4c441e032 | 811 | #ifndef U8G_COM_PARALLEL |
| lixianyu | 0:d8f4c441e032 | 812 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 813 | #define U8G_COM_PARALLEL u8g_com_atmega_parallel_fn |
| lixianyu | 0:d8f4c441e032 | 814 | #define U8G_COM_FAST_PARALLEL u8g_com_atmega_parallel_fn |
| lixianyu | 0:d8f4c441e032 | 815 | #define U8G_COM_T6963 u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 816 | #endif |
| lixianyu | 0:d8f4c441e032 | 817 | #endif |
| lixianyu | 0:d8f4c441e032 | 818 | #ifndef U8G_COM_PARALLEL |
| lixianyu | 0:d8f4c441e032 | 819 | #define U8G_COM_PARALLEL u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 820 | #define U8G_COM_FAST_PARALLEL u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 821 | #define U8G_COM_T6963 u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 822 | #endif |
| lixianyu | 0:d8f4c441e032 | 823 | |
| lixianyu | 0:d8f4c441e032 | 824 | #if defined(ARDUINO) |
| lixianyu | 0:d8f4c441e032 | 825 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 826 | #define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn |
| lixianyu | 0:d8f4c441e032 | 827 | #define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn |
| lixianyu | 0:d8f4c441e032 | 828 | #endif |
| lixianyu | 0:d8f4c441e032 | 829 | #endif |
| lixianyu | 0:d8f4c441e032 | 830 | |
| lixianyu | 0:d8f4c441e032 | 831 | #ifndef U8G_COM_SSD_I2C |
| lixianyu | 0:d8f4c441e032 | 832 | #if defined(__AVR__) || defined(__SAM3X8E__) |
| lixianyu | 0:d8f4c441e032 | 833 | /* AVR variant and also DUE can use the arduino version at the moment */ |
| lixianyu | 0:d8f4c441e032 | 834 | #define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn |
| lixianyu | 0:d8f4c441e032 | 835 | #endif |
| lixianyu | 0:d8f4c441e032 | 836 | #endif |
| lixianyu | 0:d8f4c441e032 | 837 | |
| lixianyu | 0:d8f4c441e032 | 838 | #ifndef U8G_COM_SSD_I2C |
| lixianyu | 0:d8f4c441e032 | 839 | #if defined(U8G_RASPBERRY_PI) |
| lixianyu | 0:d8f4c441e032 | 840 | #define U8G_COM_SSD_I2C u8g_com_raspberrypi_ssd_i2c_fn |
| lixianyu | 0:d8f4c441e032 | 841 | #endif |
| lixianyu | 0:d8f4c441e032 | 842 | #endif |
| lixianyu | 0:d8f4c441e032 | 843 | |
| lixianyu | 0:d8f4c441e032 | 844 | #ifndef U8G_COM_SSD_I2C |
| lixianyu | 0:d8f4c441e032 | 845 | #define U8G_COM_SSD_I2C u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 846 | #endif |
| lixianyu | 0:d8f4c441e032 | 847 | |
| lixianyu | 0:d8f4c441e032 | 848 | #ifndef U8G_COM_UC_I2C |
| lixianyu | 0:d8f4c441e032 | 849 | #if defined(__AVR__) |
| lixianyu | 0:d8f4c441e032 | 850 | /* AVR variant can use the arduino version at the moment */ |
| lixianyu | 0:d8f4c441e032 | 851 | #define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn |
| lixianyu | 0:d8f4c441e032 | 852 | #endif |
| lixianyu | 0:d8f4c441e032 | 853 | #endif |
| lixianyu | 0:d8f4c441e032 | 854 | #ifndef U8G_COM_UC_I2C |
| lixianyu | 0:d8f4c441e032 | 855 | #define U8G_COM_UC_I2C u8g_com_null_fn |
| lixianyu | 0:d8f4c441e032 | 856 | #endif |
| lixianyu | 0:d8f4c441e032 | 857 | |
| lixianyu | 0:d8f4c441e032 | 858 | |
| lixianyu | 0:d8f4c441e032 | 859 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 860 | /* com api */ |
| lixianyu | 0:d8f4c441e032 | 861 | |
| lixianyu | 0:d8f4c441e032 | 862 | #define U8G_SPI_CLK_CYCLE_50NS 1 |
| lixianyu | 0:d8f4c441e032 | 863 | #define U8G_SPI_CLK_CYCLE_300NS 2 |
| lixianyu | 0:d8f4c441e032 | 864 | #define U8G_SPI_CLK_CYCLE_400NS 3 |
| lixianyu | 0:d8f4c441e032 | 865 | #define U8G_SPI_CLK_CYCLE_NONE 255 |
| lixianyu | 0:d8f4c441e032 | 866 | |
| lixianyu | 0:d8f4c441e032 | 867 | uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev, uint8_t clk_cycle_time); |
| lixianyu | 0:d8f4c441e032 | 868 | void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 869 | void u8g_EnableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ |
| lixianyu | 0:d8f4c441e032 | 870 | void u8g_DisableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ |
| lixianyu | 0:d8f4c441e032 | 871 | void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs); |
| lixianyu | 0:d8f4c441e032 | 872 | void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 873 | void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 874 | void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address); |
| lixianyu | 0:d8f4c441e032 | 875 | uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val); |
| lixianyu | 0:d8f4c441e032 | 876 | uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq); |
| lixianyu | 0:d8f4c441e032 | 877 | uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq); |
| lixianyu | 0:d8f4c441e032 | 878 | |
| lixianyu | 0:d8f4c441e032 | 879 | |
| lixianyu | 0:d8f4c441e032 | 880 | |
| lixianyu | 0:d8f4c441e032 | 881 | #define U8G_ESC_DLY(x) 255, ((x) & 0x7f) |
| lixianyu | 0:d8f4c441e032 | 882 | #define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) |
| lixianyu | 0:d8f4c441e032 | 883 | #define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) |
| lixianyu | 0:d8f4c441e032 | 884 | #define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) |
| lixianyu | 0:d8f4c441e032 | 885 | #define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) |
| lixianyu | 0:d8f4c441e032 | 886 | #define U8G_ESC_END 255, 254 |
| lixianyu | 0:d8f4c441e032 | 887 | #define U8G_ESC_255 255, 255 |
| lixianyu | 0:d8f4c441e032 | 888 | //uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, u8g_pgm_uint8_t *esc_seq); |
| lixianyu | 0:d8f4c441e032 | 889 | uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq); |
| lixianyu | 0:d8f4c441e032 | 890 | |
| lixianyu | 0:d8f4c441e032 | 891 | |
| lixianyu | 0:d8f4c441e032 | 892 | /* u8g_com_api_16gr.c */ |
| lixianyu | 0:d8f4c441e032 | 893 | uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); |
| lixianyu | 0:d8f4c441e032 | 894 | uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); |
| lixianyu | 0:d8f4c441e032 | 895 | uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); |
| lixianyu | 0:d8f4c441e032 | 896 | uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); |
| lixianyu | 0:d8f4c441e032 | 897 | |
| lixianyu | 0:d8f4c441e032 | 898 | |
| lixianyu | 0:d8f4c441e032 | 899 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 900 | /* u8g_arduino_common.c */ |
| lixianyu | 0:d8f4c441e032 | 901 | void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value); |
| lixianyu | 0:d8f4c441e032 | 902 | void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 903 | |
| lixianyu | 0:d8f4c441e032 | 904 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 905 | /* u8g_com_io.c */ |
| lixianyu | 0:d8f4c441e032 | 906 | |
| lixianyu | 0:d8f4c441e032 | 907 | /* create internal number from port and pin */ |
| lixianyu | 0:d8f4c441e032 | 908 | uint8_t u8g_Pin(uint8_t port, uint8_t bitpos); |
| lixianyu | 0:d8f4c441e032 | 909 | #define PN(port,bitpos) u8g_Pin(port,bitpos) |
| lixianyu | 0:d8f4c441e032 | 910 | |
| lixianyu | 0:d8f4c441e032 | 911 | /* low level procedures */ |
| lixianyu | 0:d8f4c441e032 | 912 | void u8g_SetPinOutput(uint8_t internal_pin_number); |
| lixianyu | 0:d8f4c441e032 | 913 | void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level); |
| lixianyu | 0:d8f4c441e032 | 914 | void u8g_SetPinInput(uint8_t internal_pin_number); |
| lixianyu | 0:d8f4c441e032 | 915 | uint8_t u8g_GetPinLevel(uint8_t internal_pin_number); |
| lixianyu | 0:d8f4c441e032 | 916 | |
| lixianyu | 0:d8f4c441e032 | 917 | /* u8g level procedures, expect U8G_PI_xxx macro */ |
| lixianyu | 0:d8f4c441e032 | 918 | void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi); |
| lixianyu | 0:d8f4c441e032 | 919 | void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level); |
| lixianyu | 0:d8f4c441e032 | 920 | |
| lixianyu | 0:d8f4c441e032 | 921 | |
| lixianyu | 0:d8f4c441e032 | 922 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 923 | /* page */ |
| lixianyu | 0:d8f4c441e032 | 924 | struct _u8g_page_t { |
| lixianyu | 0:d8f4c441e032 | 925 | u8g_uint_t page_height; |
| lixianyu | 0:d8f4c441e032 | 926 | u8g_uint_t total_height; |
| lixianyu | 0:d8f4c441e032 | 927 | u8g_uint_t page_y0; |
| lixianyu | 0:d8f4c441e032 | 928 | u8g_uint_t page_y1; |
| lixianyu | 0:d8f4c441e032 | 929 | uint8_t page; |
| lixianyu | 0:d8f4c441e032 | 930 | }; |
| lixianyu | 0:d8f4c441e032 | 931 | typedef struct _u8g_page_t u8g_page_t; |
| lixianyu | 0:d8f4c441e032 | 932 | |
| lixianyu | 0:d8f4c441e032 | 933 | void u8g_page_First(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ |
| lixianyu | 0:d8f4c441e032 | 934 | void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) U8G_NOINLINE; /* u8g_page.c */ |
| lixianyu | 0:d8f4c441e032 | 935 | uint8_t u8g_page_Next(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ |
| lixianyu | 0:d8f4c441e032 | 936 | |
| lixianyu | 0:d8f4c441e032 | 937 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 938 | /* page buffer (pb) */ |
| lixianyu | 0:d8f4c441e032 | 939 | |
| lixianyu | 0:d8f4c441e032 | 940 | struct _u8g_pb_t { |
| lixianyu | 0:d8f4c441e032 | 941 | u8g_page_t p; |
| lixianyu | 0:d8f4c441e032 | 942 | u8g_uint_t width; /* pixel width */ |
| lixianyu | 0:d8f4c441e032 | 943 | void *buf; |
| lixianyu | 0:d8f4c441e032 | 944 | }; |
| lixianyu | 0:d8f4c441e032 | 945 | typedef struct _u8g_pb_t u8g_pb_t; |
| lixianyu | 0:d8f4c441e032 | 946 | |
| lixianyu | 0:d8f4c441e032 | 947 | |
| lixianyu | 0:d8f4c441e032 | 948 | /* u8g_pb.c */ |
| lixianyu | 0:d8f4c441e032 | 949 | void u8g_pb_Clear(u8g_pb_t *b); |
| lixianyu | 0:d8f4c441e032 | 950 | uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1); |
| lixianyu | 0:d8f4c441e032 | 951 | uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); |
| lixianyu | 0:d8f4c441e032 | 952 | uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx); |
| lixianyu | 0:d8f4c441e032 | 953 | void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box); |
| lixianyu | 0:d8f4c441e032 | 954 | uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel); |
| lixianyu | 0:d8f4c441e032 | 955 | uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 956 | |
| lixianyu | 0:d8f4c441e032 | 957 | /* |
| lixianyu | 0:d8f4c441e032 | 958 | note on __attribute__ ((nocommon)) |
| lixianyu | 0:d8f4c441e032 | 959 | AVR scripts often use --gc-sections on the linker to remove unused section. |
| lixianyu | 0:d8f4c441e032 | 960 | This works fine for initialed data and text sections. In principle .bss is also |
| lixianyu | 0:d8f4c441e032 | 961 | handled, but the name##_pb definition is not removed. Reason is, that |
| lixianyu | 0:d8f4c441e032 | 962 | array definitions are placed in the COMMON section, by default |
| lixianyu | 0:d8f4c441e032 | 963 | The attribute "nocommon" removes this automatic assignment to the |
| lixianyu | 0:d8f4c441e032 | 964 | COMMON section and directly puts it into .bss. As a result, if more |
| lixianyu | 0:d8f4c441e032 | 965 | than one buffer is defined in one file, then it will be removed with --gc-sections |
| lixianyu | 0:d8f4c441e032 | 966 | |
| lixianyu | 0:d8f4c441e032 | 967 | .. not sure if Arduino IDE uses -fno-common... if yes, then the attribute is |
| lixianyu | 0:d8f4c441e032 | 968 | redundant. |
| lixianyu | 0:d8f4c441e032 | 969 | */ |
| lixianyu | 0:d8f4c441e032 | 970 | #define U8G_PB_DEV(name, width, height, page_height, dev_fn, com_fn) \ |
| lixianyu | 0:d8f4c441e032 | 971 | uint8_t name##_buf[width] U8G_NOCOMMON ; \ |
| lixianyu | 0:d8f4c441e032 | 972 | u8g_pb_t name##_pb = { {page_height, height, 0, 0, 0}, width, name##_buf}; \ |
| lixianyu | 0:d8f4c441e032 | 973 | u8g_dev_t name = { dev_fn, &name##_pb, com_fn } |
| lixianyu | 0:d8f4c441e032 | 974 | |
| lixianyu | 0:d8f4c441e032 | 975 | |
| lixianyu | 0:d8f4c441e032 | 976 | void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 977 | void u8g_pb8v1_Clear(u8g_pb_t *b) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 978 | |
| lixianyu | 0:d8f4c441e032 | 979 | uint8_t u8g_pb8v1_IsYIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); |
| lixianyu | 0:d8f4c441e032 | 980 | uint8_t u8g_pb8v1_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); |
| lixianyu | 0:d8f4c441e032 | 981 | uint8_t u8g_pb8v1_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 982 | |
| lixianyu | 0:d8f4c441e032 | 983 | uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 984 | |
| lixianyu | 0:d8f4c441e032 | 985 | /* u8g_pb16v1.c */ |
| lixianyu | 0:d8f4c441e032 | 986 | uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 987 | |
| lixianyu | 0:d8f4c441e032 | 988 | /* u8g_pb14v1.c */ |
| lixianyu | 0:d8f4c441e032 | 989 | uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 990 | |
| lixianyu | 0:d8f4c441e032 | 991 | /* u8g_pb8v2.c */ |
| lixianyu | 0:d8f4c441e032 | 992 | uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 993 | |
| lixianyu | 0:d8f4c441e032 | 994 | /* u8g_pb16v2.c (double memory of pb8v2) */ |
| lixianyu | 0:d8f4c441e032 | 995 | uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 996 | |
| lixianyu | 0:d8f4c441e032 | 997 | |
| lixianyu | 0:d8f4c441e032 | 998 | /* u8g_pb8h1.c */ |
| lixianyu | 0:d8f4c441e032 | 999 | uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1000 | |
| lixianyu | 0:d8f4c441e032 | 1001 | /* u8g_pb16h1.c */ |
| lixianyu | 0:d8f4c441e032 | 1002 | uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1003 | |
| lixianyu | 0:d8f4c441e032 | 1004 | /* u8g_pb32h1.c */ |
| lixianyu | 0:d8f4c441e032 | 1005 | uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1006 | |
| lixianyu | 0:d8f4c441e032 | 1007 | |
| lixianyu | 0:d8f4c441e032 | 1008 | /* u8g_pb8h2.c 8 pixel rows, byte has horzontal orientation */ |
| lixianyu | 0:d8f4c441e032 | 1009 | uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1010 | |
| lixianyu | 0:d8f4c441e032 | 1011 | /* u8g_pb16h2.c */ |
| lixianyu | 0:d8f4c441e032 | 1012 | uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1013 | |
| lixianyu | 0:d8f4c441e032 | 1014 | |
| lixianyu | 0:d8f4c441e032 | 1015 | |
| lixianyu | 0:d8f4c441e032 | 1016 | /* u8g_pb8h1f.c */ |
| lixianyu | 0:d8f4c441e032 | 1017 | uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1018 | |
| lixianyu | 0:d8f4c441e032 | 1019 | /* u8g_pb8h8.c */ |
| lixianyu | 0:d8f4c441e032 | 1020 | uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1021 | |
| lixianyu | 0:d8f4c441e032 | 1022 | /* u8g_pbxh16.c */ |
| lixianyu | 0:d8f4c441e032 | 1023 | uint8_t u8g_dev_pbxh16_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1024 | |
| lixianyu | 0:d8f4c441e032 | 1025 | /* u8g_pbxh24.c */ |
| lixianyu | 0:d8f4c441e032 | 1026 | uint8_t u8g_dev_pbxh24_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1027 | |
| lixianyu | 0:d8f4c441e032 | 1028 | |
| lixianyu | 0:d8f4c441e032 | 1029 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1030 | /* u8g_ll_api.c */ |
| lixianyu | 0:d8f4c441e032 | 1031 | |
| lixianyu | 0:d8f4c441e032 | 1032 | /* cursor draw callback */ |
| lixianyu | 0:d8f4c441e032 | 1033 | typedef void (*u8g_draw_cursor_fn)(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1034 | |
| lixianyu | 0:d8f4c441e032 | 1035 | /* vertical reference point calculation callback */ |
| lixianyu | 0:d8f4c441e032 | 1036 | typedef u8g_uint_t (*u8g_font_calc_vref_fnptr)(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1037 | |
| lixianyu | 0:d8f4c441e032 | 1038 | /* state backup and restore procedure */ |
| lixianyu | 0:d8f4c441e032 | 1039 | typedef void (*u8g_state_cb)(uint8_t msg); |
| lixianyu | 0:d8f4c441e032 | 1040 | |
| lixianyu | 0:d8f4c441e032 | 1041 | |
| lixianyu | 0:d8f4c441e032 | 1042 | /* PI = Pin Index */ |
| lixianyu | 0:d8f4c441e032 | 1043 | |
| lixianyu | 0:d8f4c441e032 | 1044 | /* reset pin, usually optional */ |
| lixianyu | 0:d8f4c441e032 | 1045 | #define U8G_PI_RESET 0 |
| lixianyu | 0:d8f4c441e032 | 1046 | |
| lixianyu | 0:d8f4c441e032 | 1047 | /* address / data or instruction */ |
| lixianyu | 0:d8f4c441e032 | 1048 | #define U8G_PI_A0 1 |
| lixianyu | 0:d8f4c441e032 | 1049 | #define U8G_PI_DI 1 |
| lixianyu | 0:d8f4c441e032 | 1050 | |
| lixianyu | 0:d8f4c441e032 | 1051 | /* chip select line */ |
| lixianyu | 0:d8f4c441e032 | 1052 | #define U8G_PI_CS 2 |
| lixianyu | 0:d8f4c441e032 | 1053 | #define U8G_PI_CS1 2 |
| lixianyu | 0:d8f4c441e032 | 1054 | #define U8G_PI_CS2 3 |
| lixianyu | 0:d8f4c441e032 | 1055 | /* Feb 2013: A0 state moved from 7 to 3 for t6963 controller*/ |
| lixianyu | 0:d8f4c441e032 | 1056 | #define U8G_PI_A0_STATE 3 |
| lixianyu | 0:d8f4c441e032 | 1057 | |
| lixianyu | 0:d8f4c441e032 | 1058 | /* enable / clock signal */ |
| lixianyu | 0:d8f4c441e032 | 1059 | #define U8G_PI_EN 4 |
| lixianyu | 0:d8f4c441e032 | 1060 | #define U8G_PI_CS_STATE 4 |
| lixianyu | 0:d8f4c441e032 | 1061 | #define U8G_PI_SCK 4 |
| lixianyu | 0:d8f4c441e032 | 1062 | #define U8G_PI_SCL 4 |
| lixianyu | 0:d8f4c441e032 | 1063 | #define U8G_PI_RD 4 |
| lixianyu | 0:d8f4c441e032 | 1064 | |
| lixianyu | 0:d8f4c441e032 | 1065 | |
| lixianyu | 0:d8f4c441e032 | 1066 | /* data pins, shared with SPI and I2C pins */ |
| lixianyu | 0:d8f4c441e032 | 1067 | #define U8G_PI_D0 5 |
| lixianyu | 0:d8f4c441e032 | 1068 | #define U8G_PI_MOSI 5 |
| lixianyu | 0:d8f4c441e032 | 1069 | #define U8G_PI_SDA 5 |
| lixianyu | 0:d8f4c441e032 | 1070 | #define U8G_PI_D1 6 |
| lixianyu | 0:d8f4c441e032 | 1071 | #define U8G_PI_MISO 6 |
| lixianyu | 0:d8f4c441e032 | 1072 | #define U8G_PI_D2 7 |
| lixianyu | 0:d8f4c441e032 | 1073 | #define U8G_PI_D3 8 |
| lixianyu | 0:d8f4c441e032 | 1074 | #define U8G_PI_SET_A0 8 |
| lixianyu | 0:d8f4c441e032 | 1075 | #define U8G_PI_D4 9 |
| lixianyu | 0:d8f4c441e032 | 1076 | #define U8G_PI_D5 10 |
| lixianyu | 0:d8f4c441e032 | 1077 | #define U8G_PI_I2C_OPTION 11 |
| lixianyu | 0:d8f4c441e032 | 1078 | #define U8G_PI_D6 11 |
| lixianyu | 0:d8f4c441e032 | 1079 | #define U8G_PI_D7 12 |
| lixianyu | 0:d8f4c441e032 | 1080 | |
| lixianyu | 0:d8f4c441e032 | 1081 | /* read/write pin, must be the last pin in the list, this means U8G_PIN_LIST_LEN = U8G_PI_RW + 1*/ |
| lixianyu | 0:d8f4c441e032 | 1082 | #define U8G_PI_WR 13 |
| lixianyu | 0:d8f4c441e032 | 1083 | #define U8G_PI_RW 13 |
| lixianyu | 0:d8f4c441e032 | 1084 | |
| lixianyu | 0:d8f4c441e032 | 1085 | #define U8G_PIN_LIST_LEN 14 |
| lixianyu | 0:d8f4c441e032 | 1086 | |
| lixianyu | 0:d8f4c441e032 | 1087 | |
| lixianyu | 0:d8f4c441e032 | 1088 | #define U8G_PIN_DUMMY 254 |
| lixianyu | 0:d8f4c441e032 | 1089 | #define U8G_PIN_NONE 255 |
| lixianyu | 0:d8f4c441e032 | 1090 | |
| lixianyu | 0:d8f4c441e032 | 1091 | #define U8G_FONT_HEIGHT_MODE_TEXT 0 |
| lixianyu | 0:d8f4c441e032 | 1092 | #define U8G_FONT_HEIGHT_MODE_XTEXT 1 |
| lixianyu | 0:d8f4c441e032 | 1093 | #define U8G_FONT_HEIGHT_MODE_ALL 2 |
| lixianyu | 0:d8f4c441e032 | 1094 | |
| lixianyu | 0:d8f4c441e032 | 1095 | struct _u8g_t { |
| lixianyu | 0:d8f4c441e032 | 1096 | u8g_uint_t width; |
| lixianyu | 0:d8f4c441e032 | 1097 | u8g_uint_t height; |
| lixianyu | 0:d8f4c441e032 | 1098 | |
| lixianyu | 0:d8f4c441e032 | 1099 | |
| lixianyu | 0:d8f4c441e032 | 1100 | u8g_dev_t *dev; /* first device in the device chain */ |
| lixianyu | 0:d8f4c441e032 | 1101 | const u8g_pgm_uint8_t *font; /* regular font for all text procedures */ |
| lixianyu | 0:d8f4c441e032 | 1102 | const u8g_pgm_uint8_t *cursor_font; /* special font for cursor procedures */ |
| lixianyu | 0:d8f4c441e032 | 1103 | uint8_t cursor_fg_color, cursor_bg_color; |
| lixianyu | 0:d8f4c441e032 | 1104 | uint8_t cursor_encoding; |
| lixianyu | 0:d8f4c441e032 | 1105 | uint8_t mode; /* display mode, one of U8G_MODE_xxx */ |
| lixianyu | 0:d8f4c441e032 | 1106 | u8g_uint_t cursor_x; |
| lixianyu | 0:d8f4c441e032 | 1107 | u8g_uint_t cursor_y; |
| lixianyu | 0:d8f4c441e032 | 1108 | u8g_draw_cursor_fn cursor_fn; |
| lixianyu | 0:d8f4c441e032 | 1109 | |
| lixianyu | 0:d8f4c441e032 | 1110 | int8_t glyph_dx; |
| lixianyu | 0:d8f4c441e032 | 1111 | int8_t glyph_x; |
| lixianyu | 0:d8f4c441e032 | 1112 | int8_t glyph_y; |
| lixianyu | 0:d8f4c441e032 | 1113 | uint8_t glyph_width; |
| lixianyu | 0:d8f4c441e032 | 1114 | uint8_t glyph_height; |
| lixianyu | 0:d8f4c441e032 | 1115 | |
| lixianyu | 0:d8f4c441e032 | 1116 | u8g_font_calc_vref_fnptr font_calc_vref; |
| lixianyu | 0:d8f4c441e032 | 1117 | uint8_t font_height_mode; |
| lixianyu | 0:d8f4c441e032 | 1118 | int8_t font_ref_ascent; |
| lixianyu | 0:d8f4c441e032 | 1119 | int8_t font_ref_descent; |
| lixianyu | 0:d8f4c441e032 | 1120 | uint8_t font_line_spacing_factor; /* line_spacing = factor * (ascent - descent) / 64 */ |
| lixianyu | 0:d8f4c441e032 | 1121 | uint8_t line_spacing; |
| lixianyu | 0:d8f4c441e032 | 1122 | |
| lixianyu | 0:d8f4c441e032 | 1123 | u8g_dev_arg_pixel_t arg_pixel; |
| lixianyu | 0:d8f4c441e032 | 1124 | /* uint8_t color_index; */ |
| lixianyu | 0:d8f4c441e032 | 1125 | |
| lixianyu | 0:d8f4c441e032 | 1126 | #ifdef U8G_WITH_PINLIST |
| lixianyu | 0:d8f4c441e032 | 1127 | uint8_t pin_list[U8G_PIN_LIST_LEN]; |
| lixianyu | 0:d8f4c441e032 | 1128 | #endif |
| lixianyu | 0:d8f4c441e032 | 1129 | |
| lixianyu | 0:d8f4c441e032 | 1130 | u8g_state_cb state_cb; |
| lixianyu | 0:d8f4c441e032 | 1131 | |
| lixianyu | 0:d8f4c441e032 | 1132 | u8g_box_t current_page; /* current box of the visible page */ |
| lixianyu | 0:d8f4c441e032 | 1133 | |
| lixianyu | 0:d8f4c441e032 | 1134 | }; |
| lixianyu | 0:d8f4c441e032 | 1135 | |
| lixianyu | 0:d8f4c441e032 | 1136 | #define u8g_GetFontAscent(u8g) ((u8g)->font_ref_ascent) |
| lixianyu | 0:d8f4c441e032 | 1137 | #define u8g_GetFontDescent(u8g) ((u8g)->font_ref_descent) |
| lixianyu | 0:d8f4c441e032 | 1138 | #define u8g_GetFontLineSpacing(u8g) ((u8g)->line_spacing) |
| lixianyu | 0:d8f4c441e032 | 1139 | |
| lixianyu | 0:d8f4c441e032 | 1140 | uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); |
| lixianyu | 0:d8f4c441e032 | 1141 | |
| lixianyu | 0:d8f4c441e032 | 1142 | uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 1143 | void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 1144 | uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 1145 | uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast); |
| lixianyu | 0:d8f4c441e032 | 1146 | void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y); |
| lixianyu | 0:d8f4c441e032 | 1147 | 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 | 0:d8f4c441e032 | 1148 | 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 | 0:d8f4c441e032 | 1149 | 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); /* obsolete */ |
| lixianyu | 0:d8f4c441e032 | 1150 | u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 1151 | u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev); |
| lixianyu | 0:d8f4c441e032 | 1152 | |
| lixianyu | 0:d8f4c441e032 | 1153 | void u8g_UpdateDimension(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1154 | uint8_t u8g_Begin(u8g_t *u8g); /* reset device, put it into default state and call u8g_UpdateDimension() */ |
| lixianyu | 0:d8f4c441e032 | 1155 | uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev); /* only usefull if the device only as hardcoded ports */ |
| lixianyu | 0:d8f4c441e032 | 1156 | uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn); /* Init procedure for anything which is not Arduino or AVR (e.g. ARM, but not Due, which is Arduino) */ |
| lixianyu | 0:d8f4c441e032 | 1157 | |
| lixianyu | 0:d8f4c441e032 | 1158 | #if defined(U8G_WITH_PINLIST) |
| lixianyu | 0:d8f4c441e032 | 1159 | 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 | 0:d8f4c441e032 | 1160 | uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset); |
| lixianyu | 0:d8f4c441e032 | 1161 | uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options); /* use U8G_I2C_OPT_NONE as options */ |
| lixianyu | 0:d8f4c441e032 | 1162 | 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 | 0:d8f4c441e032 | 1163 | 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 | 0:d8f4c441e032 | 1164 | uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset); |
| lixianyu | 0:d8f4c441e032 | 1165 | 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 | 0:d8f4c441e032 | 1166 | uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); |
| lixianyu | 0:d8f4c441e032 | 1167 | #endif |
| lixianyu | 0:d8f4c441e032 | 1168 | |
| lixianyu | 0:d8f4c441e032 | 1169 | void u8g_FirstPage(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1170 | uint8_t u8g_NextPage(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1171 | uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast); |
| lixianyu | 0:d8f4c441e032 | 1172 | void u8g_SleepOn(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1173 | void u8g_SleepOff(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1174 | void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y); |
| lixianyu | 0:d8f4c441e032 | 1175 | void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); |
| lixianyu | 0:d8f4c441e032 | 1176 | void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); |
| lixianyu | 0:d8f4c441e032 | 1177 | void u8g_Draw8ColorPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t colpixel); |
| lixianyu | 0:d8f4c441e032 | 1178 | |
| lixianyu | 0:d8f4c441e032 | 1179 | uint8_t u8g_Stop(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1180 | void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b); |
| lixianyu | 0:d8f4c441e032 | 1181 | void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx); |
| lixianyu | 0:d8f4c441e032 | 1182 | void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb); |
| lixianyu | 0:d8f4c441e032 | 1183 | void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); |
| lixianyu | 0:d8f4c441e032 | 1184 | void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); |
| lixianyu | 0:d8f4c441e032 | 1185 | uint8_t u8g_GetColorIndex(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1186 | |
| lixianyu | 0:d8f4c441e032 | 1187 | uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1188 | void u8g_SetDefaultForegroundColor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1189 | |
| lixianyu | 0:d8f4c441e032 | 1190 | uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1191 | void u8g_SetDefaultBackgroundColor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1192 | |
| lixianyu | 0:d8f4c441e032 | 1193 | uint8_t u8g_GetDefaultMidColor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1194 | void u8g_SetDefaultMidColor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1195 | |
| lixianyu | 0:d8f4c441e032 | 1196 | #define u8g_GetWidth(u8g) ((u8g)->width) |
| lixianyu | 0:d8f4c441e032 | 1197 | #define u8g_GetHeight(u8g) ((u8g)->height) |
| lixianyu | 0:d8f4c441e032 | 1198 | #define u8g_GetMode(u8g) ((u8g)->mode) |
| lixianyu | 0:d8f4c441e032 | 1199 | /* |
| lixianyu | 0:d8f4c441e032 | 1200 | U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(u8g)) |
| lixianyu | 0:d8f4c441e032 | 1201 | U8G_MODE_IS_COLOR(u8g_GetMode(u8g)) |
| lixianyu | 0:d8f4c441e032 | 1202 | */ |
| lixianyu | 0:d8f4c441e032 | 1203 | |
| lixianyu | 0:d8f4c441e032 | 1204 | /* u8g_state.c */ |
| lixianyu | 0:d8f4c441e032 | 1205 | #define U8G_STATE_ENV_IDX 0 |
| lixianyu | 0:d8f4c441e032 | 1206 | #define U8G_STATE_U8G_IDX 1 |
| lixianyu | 0:d8f4c441e032 | 1207 | #define U8G_STATE_RESTORE 0 |
| lixianyu | 0:d8f4c441e032 | 1208 | #define U8G_STATE_BACKUP 1 |
| lixianyu | 0:d8f4c441e032 | 1209 | #define U8G_STATE_MSG_COMPOSE(cmd,idx) (((cmd)<<1) | (idx)) |
| lixianyu | 0:d8f4c441e032 | 1210 | |
| lixianyu | 0:d8f4c441e032 | 1211 | #define U8G_STATE_MSG_RESTORE_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_ENV_IDX) |
| lixianyu | 0:d8f4c441e032 | 1212 | #define U8G_STATE_MSG_BACKUP_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_ENV_IDX) |
| lixianyu | 0:d8f4c441e032 | 1213 | #define U8G_STATE_MSG_RESTORE_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_U8G_IDX) |
| lixianyu | 0:d8f4c441e032 | 1214 | #define U8G_STATE_MSG_BACKUP_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_U8G_IDX) |
| lixianyu | 0:d8f4c441e032 | 1215 | |
| lixianyu | 0:d8f4c441e032 | 1216 | #define U8G_STATE_MSG_GET_IDX(msg) ((msg)&1) |
| lixianyu | 0:d8f4c441e032 | 1217 | #define U8G_STATE_MSG_IS_BACKUP(msg) ((msg)&2) |
| lixianyu | 0:d8f4c441e032 | 1218 | |
| lixianyu | 0:d8f4c441e032 | 1219 | |
| lixianyu | 0:d8f4c441e032 | 1220 | |
| lixianyu | 0:d8f4c441e032 | 1221 | void u8g_state_dummy_cb(uint8_t msg); |
| lixianyu | 0:d8f4c441e032 | 1222 | void u8g_backup_spi(uint8_t msg); /* backup SPI state controller */ |
| lixianyu | 0:d8f4c441e032 | 1223 | /* backward compatible definition */ |
| lixianyu | 0:d8f4c441e032 | 1224 | #define u8g_backup_avr_spi u8g_backup_spi |
| lixianyu | 0:d8f4c441e032 | 1225 | |
| lixianyu | 0:d8f4c441e032 | 1226 | void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb); |
| lixianyu | 0:d8f4c441e032 | 1227 | |
| lixianyu | 0:d8f4c441e032 | 1228 | /* u8g_clip.c */ |
| lixianyu | 0:d8f4c441e032 | 1229 | |
| lixianyu | 0:d8f4c441e032 | 1230 | uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); |
| lixianyu | 0:d8f4c441e032 | 1231 | |
| lixianyu | 0:d8f4c441e032 | 1232 | |
| lixianyu | 0:d8f4c441e032 | 1233 | /* u8g_rot.c */ |
| lixianyu | 0:d8f4c441e032 | 1234 | |
| lixianyu | 0:d8f4c441e032 | 1235 | void u8g_UndoRotation(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1236 | void u8g_SetRot90(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1237 | void u8g_SetRot180(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1238 | void u8g_SetRot270(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1239 | |
| lixianyu | 0:d8f4c441e032 | 1240 | /* u8g_scale.c */ |
| lixianyu | 0:d8f4c441e032 | 1241 | |
| lixianyu | 0:d8f4c441e032 | 1242 | void u8g_UndoScale(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1243 | void u8g_SetScale2x2(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1244 | |
| lixianyu | 0:d8f4c441e032 | 1245 | |
| lixianyu | 0:d8f4c441e032 | 1246 | /* u8g_font.c */ |
| lixianyu | 0:d8f4c441e032 | 1247 | |
| lixianyu | 0:d8f4c441e032 | 1248 | size_t u8g_font_GetSize(const void *font); |
| lixianyu | 0:d8f4c441e032 | 1249 | uint8_t u8g_font_GetFontStartEncoding(const void *font) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1250 | uint8_t u8g_font_GetFontEndEncoding(const void *font) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1251 | |
| lixianyu | 0:d8f4c441e032 | 1252 | void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font); |
| lixianyu | 0:d8f4c441e032 | 1253 | |
| lixianyu | 0:d8f4c441e032 | 1254 | uint8_t u8g_GetFontBBXWidth(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1255 | uint8_t u8g_GetFontBBXHeight(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1256 | int8_t u8g_GetFontBBXOffX(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1257 | int8_t u8g_GetFontBBXOffY(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1258 | uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1259 | |
| lixianyu | 0:d8f4c441e032 | 1260 | uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding); |
| lixianyu | 0:d8f4c441e032 | 1261 | int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding); |
| lixianyu | 0:d8f4c441e032 | 1262 | |
| lixianyu | 0:d8f4c441e032 | 1263 | int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); /* used by u8g_cursor.c */ |
| lixianyu | 0:d8f4c441e032 | 1264 | |
| lixianyu | 0:d8f4c441e032 | 1265 | int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); |
| lixianyu | 0:d8f4c441e032 | 1266 | int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); |
| lixianyu | 0:d8f4c441e032 | 1267 | int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); |
| lixianyu | 0:d8f4c441e032 | 1268 | int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); |
| lixianyu | 0:d8f4c441e032 | 1269 | int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); |
| lixianyu | 0:d8f4c441e032 | 1270 | int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); |
| lixianyu | 0:d8f4c441e032 | 1271 | |
| lixianyu | 0:d8f4c441e032 | 1272 | u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1273 | u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1274 | u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1275 | u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1276 | |
| lixianyu | 0:d8f4c441e032 | 1277 | u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1278 | |
| lixianyu | 0:d8f4c441e032 | 1279 | |
| lixianyu | 0:d8f4c441e032 | 1280 | u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); |
| lixianyu | 0:d8f4c441e032 | 1281 | u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); |
| lixianyu | 0:d8f4c441e032 | 1282 | u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); |
| lixianyu | 0:d8f4c441e032 | 1283 | u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); |
| lixianyu | 0:d8f4c441e032 | 1284 | |
| lixianyu | 0:d8f4c441e032 | 1285 | |
| lixianyu | 0:d8f4c441e032 | 1286 | void u8g_SetFontRefHeightText(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1287 | void u8g_SetFontRefHeightExtendedText(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1288 | void u8g_SetFontRefHeightAll(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1289 | void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor); |
| lixianyu | 0:d8f4c441e032 | 1290 | |
| lixianyu | 0:d8f4c441e032 | 1291 | u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1292 | u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1293 | u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1294 | u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1295 | |
| lixianyu | 0:d8f4c441e032 | 1296 | void u8g_SetFontPosBaseline(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1297 | void u8g_SetFontPosBottom(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1298 | void u8g_SetFontPosCenter(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1299 | void u8g_SetFontPosTop(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1300 | |
| lixianyu | 0:d8f4c441e032 | 1301 | |
| lixianyu | 0:d8f4c441e032 | 1302 | u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1303 | u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); |
| lixianyu | 0:d8f4c441e032 | 1304 | int8_t u8g_GetStrX(u8g_t *u8g, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1305 | int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s); |
| lixianyu | 0:d8f4c441e032 | 1306 | u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1307 | u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); |
| lixianyu | 0:d8f4c441e032 | 1308 | |
| lixianyu | 0:d8f4c441e032 | 1309 | u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1310 | |
| lixianyu | 0:d8f4c441e032 | 1311 | void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); |
| lixianyu | 0:d8f4c441e032 | 1312 | void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); |
| lixianyu | 0:d8f4c441e032 | 1313 | |
| lixianyu | 0:d8f4c441e032 | 1314 | |
| lixianyu | 0:d8f4c441e032 | 1315 | u8g_uint_t u8g_DrawAAStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); |
| lixianyu | 0:d8f4c441e032 | 1316 | |
| lixianyu | 0:d8f4c441e032 | 1317 | /* u8g_rect.c */ |
| lixianyu | 0:d8f4c441e032 | 1318 | |
| lixianyu | 0:d8f4c441e032 | 1319 | void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1320 | |
| lixianyu | 0:d8f4c441e032 | 1321 | void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1322 | void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1323 | void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1324 | void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1325 | |
| lixianyu | 0:d8f4c441e032 | 1326 | void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1327 | void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1328 | |
| lixianyu | 0:d8f4c441e032 | 1329 | /* u8g_bitmap.c */ |
| lixianyu | 0:d8f4c441e032 | 1330 | |
| lixianyu | 0:d8f4c441e032 | 1331 | void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap); |
| lixianyu | 0:d8f4c441e032 | 1332 | void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap); |
| lixianyu | 0:d8f4c441e032 | 1333 | void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap); |
| lixianyu | 0:d8f4c441e032 | 1334 | void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); |
| lixianyu | 0:d8f4c441e032 | 1335 | |
| lixianyu | 0:d8f4c441e032 | 1336 | void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap); |
| lixianyu | 0:d8f4c441e032 | 1337 | void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); |
| lixianyu | 0:d8f4c441e032 | 1338 | |
| lixianyu | 0:d8f4c441e032 | 1339 | |
| lixianyu | 0:d8f4c441e032 | 1340 | /* u8g_line.c */ |
| lixianyu | 0:d8f4c441e032 | 1341 | void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2); |
| lixianyu | 0:d8f4c441e032 | 1342 | |
| lixianyu | 0:d8f4c441e032 | 1343 | |
| lixianyu | 0:d8f4c441e032 | 1344 | /* u8g_circle.c */ |
| lixianyu | 0:d8f4c441e032 | 1345 | |
| lixianyu | 0:d8f4c441e032 | 1346 | /* the following, commented code has been rewritten or is not yet finished |
| lixianyu | 0:d8f4c441e032 | 1347 | #define U8G_CIRC_UPPER_RIGHT 0x01 |
| lixianyu | 0:d8f4c441e032 | 1348 | #define U8G_CIRC_UPPER_LEFT 0x02 |
| lixianyu | 0:d8f4c441e032 | 1349 | #define U8G_CIRC_LOWER_LEFT 0x04 |
| lixianyu | 0:d8f4c441e032 | 1350 | #define U8G_CIRC_LOWER_RIGHT 0x08 |
| lixianyu | 0:d8f4c441e032 | 1351 | #define U8G_CIRC_ALL (U8G_CIRC_UPPER_RIGHT|U8G_CIRC_UPPER_LEFT|U8G_CIRC_LOWER_RIGHT|U8G_CIRC_LOWER_LEFT) |
| lixianyu | 0:d8f4c441e032 | 1352 | void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); |
| lixianyu | 0:d8f4c441e032 | 1353 | void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); |
| lixianyu | 0:d8f4c441e032 | 1354 | void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1); |
| lixianyu | 0:d8f4c441e032 | 1355 | */ |
| lixianyu | 0:d8f4c441e032 | 1356 | |
| lixianyu | 0:d8f4c441e032 | 1357 | #define U8G_DRAW_UPPER_RIGHT 0x01 |
| lixianyu | 0:d8f4c441e032 | 1358 | #define U8G_DRAW_UPPER_LEFT 0x02 |
| lixianyu | 0:d8f4c441e032 | 1359 | #define U8G_DRAW_LOWER_LEFT 0x04 |
| lixianyu | 0:d8f4c441e032 | 1360 | #define U8G_DRAW_LOWER_RIGHT 0x08 |
| lixianyu | 0:d8f4c441e032 | 1361 | #define U8G_DRAW_ALL (U8G_DRAW_UPPER_RIGHT|U8G_DRAW_UPPER_LEFT|U8G_DRAW_LOWER_RIGHT|U8G_DRAW_LOWER_LEFT) |
| lixianyu | 0:d8f4c441e032 | 1362 | |
| lixianyu | 0:d8f4c441e032 | 1363 | void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1364 | void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1365 | |
| lixianyu | 0:d8f4c441e032 | 1366 | void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); |
| lixianyu | 0:d8f4c441e032 | 1367 | void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); |
| lixianyu | 0:d8f4c441e032 | 1368 | |
| lixianyu | 0:d8f4c441e032 | 1369 | /* u8g_ellipse.c */ |
| lixianyu | 0:d8f4c441e032 | 1370 | void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); |
| lixianyu | 0:d8f4c441e032 | 1371 | void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); |
| lixianyu | 0:d8f4c441e032 | 1372 | |
| lixianyu | 0:d8f4c441e032 | 1373 | /* u8g_clip.c */ |
| lixianyu | 0:d8f4c441e032 | 1374 | uint8_t u8g_is_box_bbx_intersection(u8g_box_t *box, u8g_dev_arg_bbx_t *bbx); |
| lixianyu | 0:d8f4c441e032 | 1375 | |
| lixianyu | 0:d8f4c441e032 | 1376 | |
| lixianyu | 0:d8f4c441e032 | 1377 | /* u8g_cursor.c */ |
| lixianyu | 0:d8f4c441e032 | 1378 | void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font); |
| lixianyu | 0:d8f4c441e032 | 1379 | void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding); |
| lixianyu | 0:d8f4c441e032 | 1380 | void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y); |
| lixianyu | 0:d8f4c441e032 | 1381 | void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg); |
| lixianyu | 0:d8f4c441e032 | 1382 | void u8g_EnableCursor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1383 | void u8g_DisableCursor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1384 | void u8g_DrawCursor(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1385 | |
| lixianyu | 0:d8f4c441e032 | 1386 | /* u8g_polygon.c */ |
| lixianyu | 0:d8f4c441e032 | 1387 | |
| lixianyu | 0:d8f4c441e032 | 1388 | typedef int16_t pg_word_t; |
| lixianyu | 0:d8f4c441e032 | 1389 | |
| lixianyu | 0:d8f4c441e032 | 1390 | #define PG_NOINLINE U8G_NOINLINE |
| lixianyu | 0:d8f4c441e032 | 1391 | |
| lixianyu | 0:d8f4c441e032 | 1392 | struct pg_point_struct { |
| lixianyu | 0:d8f4c441e032 | 1393 | pg_word_t x; |
| lixianyu | 0:d8f4c441e032 | 1394 | pg_word_t y; |
| lixianyu | 0:d8f4c441e032 | 1395 | }; |
| lixianyu | 0:d8f4c441e032 | 1396 | |
| lixianyu | 0:d8f4c441e032 | 1397 | typedef struct _pg_struct pg_struct; /* forward declaration */ |
| lixianyu | 0:d8f4c441e032 | 1398 | |
| lixianyu | 0:d8f4c441e032 | 1399 | struct pg_edge_struct { |
| lixianyu | 0:d8f4c441e032 | 1400 | pg_word_t x_direction; /* 1, if x2 is greater than x1, -1 otherwise */ |
| lixianyu | 0:d8f4c441e032 | 1401 | pg_word_t height; |
| lixianyu | 0:d8f4c441e032 | 1402 | pg_word_t current_x_offset; |
| lixianyu | 0:d8f4c441e032 | 1403 | pg_word_t error_offset; |
| lixianyu | 0:d8f4c441e032 | 1404 | |
| lixianyu | 0:d8f4c441e032 | 1405 | /* --- line loop --- */ |
| lixianyu | 0:d8f4c441e032 | 1406 | pg_word_t current_y; |
| lixianyu | 0:d8f4c441e032 | 1407 | pg_word_t max_y; |
| lixianyu | 0:d8f4c441e032 | 1408 | pg_word_t current_x; |
| lixianyu | 0:d8f4c441e032 | 1409 | pg_word_t error; |
| lixianyu | 0:d8f4c441e032 | 1410 | |
| lixianyu | 0:d8f4c441e032 | 1411 | /* --- outer loop --- */ |
| lixianyu | 0:d8f4c441e032 | 1412 | uint8_t (*next_idx_fn)(pg_struct *pg, uint8_t i); |
| lixianyu | 0:d8f4c441e032 | 1413 | uint8_t curr_idx; |
| lixianyu | 0:d8f4c441e032 | 1414 | }; |
| lixianyu | 0:d8f4c441e032 | 1415 | |
| lixianyu | 0:d8f4c441e032 | 1416 | /* maximum number of points in the polygon */ |
| lixianyu | 0:d8f4c441e032 | 1417 | /* can be redefined, but highest possible value is 254 */ |
| lixianyu | 0:d8f4c441e032 | 1418 | #define PG_MAX_POINTS 6 |
| lixianyu | 0:d8f4c441e032 | 1419 | |
| lixianyu | 0:d8f4c441e032 | 1420 | /* index numbers for the pge structures below */ |
| lixianyu | 0:d8f4c441e032 | 1421 | #define PG_LEFT 0 |
| lixianyu | 0:d8f4c441e032 | 1422 | #define PG_RIGHT 1 |
| lixianyu | 0:d8f4c441e032 | 1423 | |
| lixianyu | 0:d8f4c441e032 | 1424 | |
| lixianyu | 0:d8f4c441e032 | 1425 | struct _pg_struct { |
| lixianyu | 0:d8f4c441e032 | 1426 | struct pg_point_struct list[PG_MAX_POINTS]; |
| lixianyu | 0:d8f4c441e032 | 1427 | uint8_t cnt; |
| lixianyu | 0:d8f4c441e032 | 1428 | uint8_t is_min_y_not_flat; |
| lixianyu | 0:d8f4c441e032 | 1429 | pg_word_t total_scan_line_cnt; |
| lixianyu | 0:d8f4c441e032 | 1430 | struct pg_edge_struct pge[2]; /* left and right line draw structures */ |
| lixianyu | 0:d8f4c441e032 | 1431 | }; |
| lixianyu | 0:d8f4c441e032 | 1432 | |
| lixianyu | 0:d8f4c441e032 | 1433 | void pg_ClearPolygonXY(pg_struct *pg); |
| lixianyu | 0:d8f4c441e032 | 1434 | void pg_AddPolygonXY(pg_struct *pg, u8g_t *u8g, int16_t x, int16_t y); |
| lixianyu | 0:d8f4c441e032 | 1435 | void pg_DrawPolygon(pg_struct *pg, u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1436 | void u8g_ClearPolygonXY(void); |
| lixianyu | 0:d8f4c441e032 | 1437 | void u8g_AddPolygonXY(u8g_t *u8g, int16_t x, int16_t y); |
| lixianyu | 0:d8f4c441e032 | 1438 | void u8g_DrawPolygon(u8g_t *u8g); |
| lixianyu | 0:d8f4c441e032 | 1439 | void u8g_DrawTriangle(u8g_t *u8g, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2); |
| lixianyu | 0:d8f4c441e032 | 1440 | |
| lixianyu | 0:d8f4c441e032 | 1441 | |
| lixianyu | 0:d8f4c441e032 | 1442 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1443 | /* u8g_virtual_screen.c */ |
| lixianyu | 0:d8f4c441e032 | 1444 | void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height); |
| lixianyu | 0:d8f4c441e032 | 1445 | uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g); |
| lixianyu | 0:d8f4c441e032 | 1446 | |
| lixianyu | 0:d8f4c441e032 | 1447 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1448 | void st_Draw(uint8_t fps); |
| lixianyu | 0:d8f4c441e032 | 1449 | void st_Step(uint8_t player_pos, uint8_t is_auto_fire, uint8_t is_fire); |
| lixianyu | 0:d8f4c441e032 | 1450 | |
| lixianyu | 0:d8f4c441e032 | 1451 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1452 | /* u8g_com_i2c.c */ |
| lixianyu | 0:d8f4c441e032 | 1453 | |
| lixianyu | 0:d8f4c441e032 | 1454 | /* options for u8g_i2c_init() */ |
| lixianyu | 0:d8f4c441e032 | 1455 | #define U8G_I2C_OPT_NONE 0 |
| lixianyu | 0:d8f4c441e032 | 1456 | #define U8G_I2C_OPT_NO_ACK 2 |
| lixianyu | 0:d8f4c441e032 | 1457 | #define U8G_I2C_OPT_DEV_0 0 |
| lixianyu | 0:d8f4c441e032 | 1458 | #define U8G_I2C_OPT_DEV_1 4 |
| lixianyu | 0:d8f4c441e032 | 1459 | #define U8G_I2C_OPT_FAST 16 |
| lixianyu | 0:d8f4c441e032 | 1460 | |
| lixianyu | 0:d8f4c441e032 | 1461 | /* retrun values from u8g_twi_get_error() */ |
| lixianyu | 0:d8f4c441e032 | 1462 | #define U8G_I2C_ERR_NONE 0x00 |
| lixianyu | 0:d8f4c441e032 | 1463 | /* the following values are bit masks */ |
| lixianyu | 0:d8f4c441e032 | 1464 | #define U8G_I2C_ERR_TIMEOUT 0x01 |
| lixianyu | 0:d8f4c441e032 | 1465 | #define U8G_I2C_ERR_BUS 0x02 |
| lixianyu | 0:d8f4c441e032 | 1466 | |
| lixianyu | 0:d8f4c441e032 | 1467 | void u8g_i2c_clear_error(void) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1468 | uint8_t u8g_i2c_get_error(void) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1469 | uint8_t u8g_i2c_get_err_pos(void) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1470 | void u8g_i2c_init(uint8_t options) U8G_NOINLINE; /* use U8G_I2C_OPT_NONE as options */ |
| lixianyu | 0:d8f4c441e032 | 1471 | uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1472 | uint8_t u8g_i2c_start(uint8_t sla) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1473 | uint8_t u8g_i2c_send_byte(uint8_t data) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1474 | uint8_t u8g_i2c_send_mode(uint8_t mode) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1475 | void u8g_i2c_stop(void) U8G_NOINLINE; |
| lixianyu | 0:d8f4c441e032 | 1476 | |
| lixianyu | 0:d8f4c441e032 | 1477 | |
| lixianyu | 0:d8f4c441e032 | 1478 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1479 | /* u8g_u8toa.c */ |
| lixianyu | 0:d8f4c441e032 | 1480 | /* v = value, d = number of digits */ |
| lixianyu | 0:d8f4c441e032 | 1481 | const char *u8g_u8toa(uint8_t v, uint8_t d); |
| lixianyu | 0:d8f4c441e032 | 1482 | |
| lixianyu | 0:d8f4c441e032 | 1483 | /* u8g_u8toa.c */ |
| lixianyu | 0:d8f4c441e032 | 1484 | /* v = value, d = number of digits */ |
| lixianyu | 0:d8f4c441e032 | 1485 | const char *u8g_u16toa(uint16_t v, uint8_t d); |
| lixianyu | 0:d8f4c441e032 | 1486 | |
| lixianyu | 0:d8f4c441e032 | 1487 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1488 | /* u8g_delay.c */ |
| lixianyu | 0:d8f4c441e032 | 1489 | |
| lixianyu | 0:d8f4c441e032 | 1490 | /* delay by the specified number of milliseconds */ |
| lixianyu | 0:d8f4c441e032 | 1491 | void u8g_Delay(uint16_t val); |
| lixianyu | 0:d8f4c441e032 | 1492 | |
| lixianyu | 0:d8f4c441e032 | 1493 | /* delay by one microsecond */ |
| lixianyu | 0:d8f4c441e032 | 1494 | void u8g_MicroDelay(void); |
| lixianyu | 0:d8f4c441e032 | 1495 | |
| lixianyu | 0:d8f4c441e032 | 1496 | /* delay by 10 microseconds */ |
| lixianyu | 0:d8f4c441e032 | 1497 | void u8g_10MicroDelay(void); |
| lixianyu | 0:d8f4c441e032 | 1498 | |
| lixianyu | 0:d8f4c441e032 | 1499 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1500 | /* chessengine.c */ |
| lixianyu | 0:d8f4c441e032 | 1501 | #define CHESS_KEY_NONE 0 |
| lixianyu | 0:d8f4c441e032 | 1502 | #define CHESS_KEY_NEXT 1 |
| lixianyu | 0:d8f4c441e032 | 1503 | #define CHESS_KEY_PREV 2 |
| lixianyu | 0:d8f4c441e032 | 1504 | #define CHESS_KEY_SELECT 3 |
| lixianyu | 0:d8f4c441e032 | 1505 | #define CHESS_KEY_BACK 4 |
| lixianyu | 0:d8f4c441e032 | 1506 | |
| lixianyu | 0:d8f4c441e032 | 1507 | void chess_Init(u8g_t *u8g, uint8_t empty_body_color); |
| lixianyu | 0:d8f4c441e032 | 1508 | void chess_Draw(void); |
| lixianyu | 0:d8f4c441e032 | 1509 | void chess_Step(uint8_t keycode); |
| lixianyu | 0:d8f4c441e032 | 1510 | |
| lixianyu | 0:d8f4c441e032 | 1511 | /*===============================================================*/ |
| lixianyu | 0:d8f4c441e032 | 1512 | /* font definitions */ |
| lixianyu | 0:d8f4c441e032 | 1513 | extern const u8g_fntpgm_uint8_t u8g_font_m2icon_5[] U8G_FONT_SECTION("u8g_font_m2icon_5"); |
| lixianyu | 0:d8f4c441e032 | 1514 | extern const u8g_fntpgm_uint8_t u8g_font_m2icon_7[] U8G_FONT_SECTION("u8g_font_m2icon_7"); |
| lixianyu | 0:d8f4c441e032 | 1515 | extern const u8g_fntpgm_uint8_t u8g_font_m2icon_9[] U8G_FONT_SECTION("u8g_font_m2icon_9"); |
| lixianyu | 0:d8f4c441e032 | 1516 | |
| lixianyu | 0:d8f4c441e032 | 1517 | extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4[] U8G_FONT_SECTION("u8g_font_u8glib_4"); |
| lixianyu | 0:d8f4c441e032 | 1518 | extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[] U8G_FONT_SECTION("u8g_font_u8glib_4r"); |
| lixianyu | 0:d8f4c441e032 | 1519 | |
| lixianyu | 0:d8f4c441e032 | 1520 | |
| lixianyu | 0:d8f4c441e032 | 1521 | extern const u8g_fntpgm_uint8_t u8g_font_6x12_75r[] U8G_FONT_SECTION("u8g_font_6x12_75r"); |
| lixianyu | 0:d8f4c441e032 | 1522 | extern const u8g_fntpgm_uint8_t u8g_font_6x13_75r[] U8G_FONT_SECTION("u8g_font_6x13_75r"); |
| lixianyu | 0:d8f4c441e032 | 1523 | extern const u8g_fntpgm_uint8_t u8g_font_7x13_75r[] U8G_FONT_SECTION("u8g_font_7x13_75r"); |
| lixianyu | 0:d8f4c441e032 | 1524 | extern const u8g_fntpgm_uint8_t u8g_font_8x13_75r[] U8G_FONT_SECTION("u8g_font_8x13_75r"); |
| lixianyu | 0:d8f4c441e032 | 1525 | extern const u8g_fntpgm_uint8_t u8g_font_9x15_75r[] U8G_FONT_SECTION("u8g_font_9x15_75r"); |
| lixianyu | 0:d8f4c441e032 | 1526 | extern const u8g_fntpgm_uint8_t u8g_font_9x18_75r[] U8G_FONT_SECTION("u8g_font_9x18_75r"); |
| lixianyu | 0:d8f4c441e032 | 1527 | extern const u8g_fntpgm_uint8_t u8g_font_cu12_75r[] U8G_FONT_SECTION("u8g_font_cu12_75r"); |
| lixianyu | 0:d8f4c441e032 | 1528 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_75r[] U8G_FONT_SECTION("u8g_font_unifont_75r"); |
| lixianyu | 0:d8f4c441e032 | 1529 | extern const u8g_fntpgm_uint8_t u8g_font_10x20_75r[] U8G_FONT_SECTION("u8g_font_10x20_75r"); |
| lixianyu | 0:d8f4c441e032 | 1530 | |
| lixianyu | 0:d8f4c441e032 | 1531 | extern const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[] U8G_FONT_SECTION("u8g_font_10x20_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1532 | extern const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[] U8G_FONT_SECTION("u8g_font_10x20_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1533 | extern const u8g_fntpgm_uint8_t u8g_font_10x20[] U8G_FONT_SECTION("u8g_font_10x20"); |
| lixianyu | 0:d8f4c441e032 | 1534 | extern const u8g_fntpgm_uint8_t u8g_font_10x20r[] U8G_FONT_SECTION("u8g_font_10x20r"); |
| lixianyu | 0:d8f4c441e032 | 1535 | extern const u8g_fntpgm_uint8_t u8g_font_4x6[] U8G_FONT_SECTION("u8g_font_4x6"); |
| lixianyu | 0:d8f4c441e032 | 1536 | extern const u8g_fntpgm_uint8_t u8g_font_4x6r[] U8G_FONT_SECTION("u8g_font_4x6r"); |
| lixianyu | 0:d8f4c441e032 | 1537 | //extern const u8g_fntpgm_uint8_t u8g_font_4x6n[] U8G_FONT_SECTION("u8g_font_4x6n"); |
| lixianyu | 0:d8f4c441e032 | 1538 | extern const u8g_fntpgm_uint8_t u8g_font_5x7[] U8G_FONT_SECTION("u8g_font_5x7"); |
| lixianyu | 0:d8f4c441e032 | 1539 | extern const u8g_fntpgm_uint8_t u8g_font_5x7r[] U8G_FONT_SECTION("u8g_font_5x7r"); |
| lixianyu | 0:d8f4c441e032 | 1540 | extern const u8g_fntpgm_uint8_t u8g_font_5x8[] U8G_FONT_SECTION("u8g_font_5x8"); |
| lixianyu | 0:d8f4c441e032 | 1541 | extern const u8g_fntpgm_uint8_t u8g_font_5x8r[] U8G_FONT_SECTION("u8g_font_5x8r"); |
| lixianyu | 0:d8f4c441e032 | 1542 | extern const u8g_fntpgm_uint8_t u8g_font_6x10[] U8G_FONT_SECTION("u8g_font_6x10"); |
| lixianyu | 0:d8f4c441e032 | 1543 | extern const u8g_fntpgm_uint8_t u8g_font_6x10r[] U8G_FONT_SECTION("u8g_font_6x10r"); |
| lixianyu | 0:d8f4c441e032 | 1544 | extern const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[] U8G_FONT_SECTION("u8g_font_6x12_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1545 | extern const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[] U8G_FONT_SECTION("u8g_font_6x12_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1546 | extern const u8g_fntpgm_uint8_t u8g_font_6x12[] U8G_FONT_SECTION("u8g_font_6x12"); |
| lixianyu | 0:d8f4c441e032 | 1547 | extern const u8g_fntpgm_uint8_t u8g_font_6x12r[] U8G_FONT_SECTION("u8g_font_6x12r"); |
| lixianyu | 0:d8f4c441e032 | 1548 | extern const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[] U8G_FONT_SECTION("u8g_font_6x13_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1549 | extern const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[] U8G_FONT_SECTION("u8g_font_6x13_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1550 | extern const u8g_fntpgm_uint8_t u8g_font_6x13B[] U8G_FONT_SECTION("u8g_font_6x13B"); |
| lixianyu | 0:d8f4c441e032 | 1551 | extern const u8g_fntpgm_uint8_t u8g_font_6x13Br[] U8G_FONT_SECTION("u8g_font_6x13Br"); |
| lixianyu | 0:d8f4c441e032 | 1552 | extern const u8g_fntpgm_uint8_t u8g_font_6x13[] U8G_FONT_SECTION("u8g_font_6x13"); |
| lixianyu | 0:d8f4c441e032 | 1553 | extern const u8g_fntpgm_uint8_t u8g_font_6x13r[] U8G_FONT_SECTION("u8g_font_6x13r"); |
| lixianyu | 0:d8f4c441e032 | 1554 | extern const u8g_fntpgm_uint8_t u8g_font_6x13O[] U8G_FONT_SECTION("u8g_font_6x13O"); |
| lixianyu | 0:d8f4c441e032 | 1555 | extern const u8g_fntpgm_uint8_t u8g_font_6x13Or[] U8G_FONT_SECTION("u8g_font_6x13Or"); |
| lixianyu | 0:d8f4c441e032 | 1556 | extern const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[] U8G_FONT_SECTION("u8g_font_7x13_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1557 | extern const u8g_fntpgm_uint8_t u8g_font_7x13_78_79[] U8G_FONT_SECTION("u8g_font_7x13_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1558 | extern const u8g_fntpgm_uint8_t u8g_font_7x13B[] U8G_FONT_SECTION("u8g_font_7x13B"); |
| lixianyu | 0:d8f4c441e032 | 1559 | extern const u8g_fntpgm_uint8_t u8g_font_7x13Br[] U8G_FONT_SECTION("u8g_font_7x13Br"); |
| lixianyu | 0:d8f4c441e032 | 1560 | extern const u8g_fntpgm_uint8_t u8g_font_7x13[] U8G_FONT_SECTION("u8g_font_7x13"); |
| lixianyu | 0:d8f4c441e032 | 1561 | extern const u8g_fntpgm_uint8_t u8g_font_7x13r[] U8G_FONT_SECTION("u8g_font_7x13r"); |
| lixianyu | 0:d8f4c441e032 | 1562 | extern const u8g_fntpgm_uint8_t u8g_font_7x13O[] U8G_FONT_SECTION("u8g_font_7x13O"); |
| lixianyu | 0:d8f4c441e032 | 1563 | extern const u8g_fntpgm_uint8_t u8g_font_7x13Or[] U8G_FONT_SECTION("u8g_font_7x13Or"); |
| lixianyu | 0:d8f4c441e032 | 1564 | extern const u8g_fntpgm_uint8_t u8g_font_7x14B[] U8G_FONT_SECTION("u8g_font_7x14B"); |
| lixianyu | 0:d8f4c441e032 | 1565 | extern const u8g_fntpgm_uint8_t u8g_font_7x14Br[] U8G_FONT_SECTION("u8g_font_7x14Br"); |
| lixianyu | 0:d8f4c441e032 | 1566 | extern const u8g_fntpgm_uint8_t u8g_font_7x14[] U8G_FONT_SECTION("u8g_font_7x14"); |
| lixianyu | 0:d8f4c441e032 | 1567 | extern const u8g_fntpgm_uint8_t u8g_font_7x14r[] U8G_FONT_SECTION("u8g_font_7x14r"); |
| lixianyu | 0:d8f4c441e032 | 1568 | extern const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[] U8G_FONT_SECTION("u8g_font_8x13_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1569 | extern const u8g_fntpgm_uint8_t u8g_font_8x13B[] U8G_FONT_SECTION("u8g_font_8x13B"); |
| lixianyu | 0:d8f4c441e032 | 1570 | extern const u8g_fntpgm_uint8_t u8g_font_8x13Br[] U8G_FONT_SECTION("u8g_font_8x13Br"); |
| lixianyu | 0:d8f4c441e032 | 1571 | extern const u8g_fntpgm_uint8_t u8g_font_8x13[] U8G_FONT_SECTION("u8g_font_8x13"); |
| lixianyu | 0:d8f4c441e032 | 1572 | extern const u8g_fntpgm_uint8_t u8g_font_8x13r[] U8G_FONT_SECTION("u8g_font_8x13r"); |
| lixianyu | 0:d8f4c441e032 | 1573 | extern const u8g_fntpgm_uint8_t u8g_font_8x13O[] U8G_FONT_SECTION("u8g_font_8x13O"); |
| lixianyu | 0:d8f4c441e032 | 1574 | extern const u8g_fntpgm_uint8_t u8g_font_8x13Or[] U8G_FONT_SECTION("u8g_font_8x13Or"); |
| lixianyu | 0:d8f4c441e032 | 1575 | |
| lixianyu | 0:d8f4c441e032 | 1576 | extern const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[] U8G_FONT_SECTION("u8g_font_9x15_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1577 | extern const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[] U8G_FONT_SECTION("u8g_font_9x15_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1578 | extern const u8g_fntpgm_uint8_t u8g_font_9x15B[] U8G_FONT_SECTION("u8g_font_9x15B"); |
| lixianyu | 0:d8f4c441e032 | 1579 | extern const u8g_fntpgm_uint8_t u8g_font_9x15Br[] U8G_FONT_SECTION("u8g_font_9x15Br"); |
| lixianyu | 0:d8f4c441e032 | 1580 | extern const u8g_fntpgm_uint8_t u8g_font_9x15[] U8G_FONT_SECTION("u8g_font_9x15"); |
| lixianyu | 0:d8f4c441e032 | 1581 | extern const u8g_fntpgm_uint8_t u8g_font_9x15r[] U8G_FONT_SECTION("u8g_font_9x15r"); |
| lixianyu | 0:d8f4c441e032 | 1582 | |
| lixianyu | 0:d8f4c441e032 | 1583 | extern const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[] U8G_FONT_SECTION("u8g_font_9x18_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1584 | extern const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[] U8G_FONT_SECTION("u8g_font_9x18_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1585 | extern const u8g_fntpgm_uint8_t u8g_font_9x18B[] U8G_FONT_SECTION("u8g_font_9x18B"); |
| lixianyu | 0:d8f4c441e032 | 1586 | extern const u8g_fntpgm_uint8_t u8g_font_9x18[] U8G_FONT_SECTION("u8g_font_9x18"); |
| lixianyu | 0:d8f4c441e032 | 1587 | extern const u8g_fntpgm_uint8_t u8g_font_9x18Br[] U8G_FONT_SECTION("u8g_font_9x18Br"); |
| lixianyu | 0:d8f4c441e032 | 1588 | extern const u8g_fntpgm_uint8_t u8g_font_9x18r[] U8G_FONT_SECTION("u8g_font_9x18r"); |
| lixianyu | 0:d8f4c441e032 | 1589 | |
| lixianyu | 0:d8f4c441e032 | 1590 | extern const u8g_fntpgm_uint8_t u8g_font_cursor[] U8G_FONT_SECTION("u8g_font_cursor"); |
| lixianyu | 0:d8f4c441e032 | 1591 | extern const u8g_fntpgm_uint8_t u8g_font_cursorr[] U8G_FONT_SECTION("u8g_font_cursorr"); |
| lixianyu | 0:d8f4c441e032 | 1592 | extern const u8g_fntpgm_uint8_t u8g_font_micro[] U8G_FONT_SECTION("u8g_font_micro"); |
| lixianyu | 0:d8f4c441e032 | 1593 | |
| lixianyu | 0:d8f4c441e032 | 1594 | extern const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[] U8G_FONT_SECTION("u8g_font_cu12_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1595 | extern const u8g_fntpgm_uint8_t u8g_font_cu12_78_79[] U8G_FONT_SECTION("u8g_font_cu12_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1596 | extern const u8g_fntpgm_uint8_t u8g_font_cu12[] U8G_FONT_SECTION("u8g_font_cu12"); |
| lixianyu | 0:d8f4c441e032 | 1597 | |
| lixianyu | 0:d8f4c441e032 | 1598 | /* |
| lixianyu | 0:d8f4c441e032 | 1599 | Free-Universal Bold |
| lixianyu | 0:d8f4c441e032 | 1600 | r: Reduced char set (codes 32 - 128) |
| lixianyu | 0:d8f4c441e032 | 1601 | n: Numbers (codes 42 - 57) |
| lixianyu | 0:d8f4c441e032 | 1602 | no char: Full set (codes 32 - 255) |
| lixianyu | 0:d8f4c441e032 | 1603 | */ |
| lixianyu | 0:d8f4c441e032 | 1604 | |
| lixianyu | 0:d8f4c441e032 | 1605 | extern const u8g_fntpgm_uint8_t u8g_font_fub11[] U8G_FONT_SECTION("u8g_font_fub11"); |
| lixianyu | 0:d8f4c441e032 | 1606 | extern const u8g_fntpgm_uint8_t u8g_font_fub11r[] U8G_FONT_SECTION("u8g_font_fub11r"); |
| lixianyu | 0:d8f4c441e032 | 1607 | extern const u8g_fntpgm_uint8_t u8g_font_fub11n[] U8G_FONT_SECTION("u8g_font_fub11n"); |
| lixianyu | 0:d8f4c441e032 | 1608 | extern const u8g_fntpgm_uint8_t u8g_font_fub14[] U8G_FONT_SECTION("u8g_font_fub14"); |
| lixianyu | 0:d8f4c441e032 | 1609 | extern const u8g_fntpgm_uint8_t u8g_font_fub14r[] U8G_FONT_SECTION("u8g_font_fub14r"); |
| lixianyu | 0:d8f4c441e032 | 1610 | extern const u8g_fntpgm_uint8_t u8g_font_fub14n[] U8G_FONT_SECTION("u8g_font_fub14n"); |
| lixianyu | 0:d8f4c441e032 | 1611 | extern const u8g_fntpgm_uint8_t u8g_font_fub17[] U8G_FONT_SECTION("u8g_font_fub17"); |
| lixianyu | 0:d8f4c441e032 | 1612 | extern const u8g_fntpgm_uint8_t u8g_font_fub17r[] U8G_FONT_SECTION("u8g_font_fub17r"); |
| lixianyu | 0:d8f4c441e032 | 1613 | extern const u8g_fntpgm_uint8_t u8g_font_fub17n[] U8G_FONT_SECTION("u8g_font_fub17n"); |
| lixianyu | 0:d8f4c441e032 | 1614 | extern const u8g_fntpgm_uint8_t u8g_font_fub20[] U8G_FONT_SECTION("u8g_font_fub20"); |
| lixianyu | 0:d8f4c441e032 | 1615 | extern const u8g_fntpgm_uint8_t u8g_font_fub20r[] U8G_FONT_SECTION("u8g_font_fub20r"); |
| lixianyu | 0:d8f4c441e032 | 1616 | extern const u8g_fntpgm_uint8_t u8g_font_fub20n[] U8G_FONT_SECTION("u8g_font_fub20n"); |
| lixianyu | 0:d8f4c441e032 | 1617 | extern const u8g_fntpgm_uint8_t u8g_font_fub25[] U8G_FONT_SECTION("u8g_font_fub25"); |
| lixianyu | 0:d8f4c441e032 | 1618 | extern const u8g_fntpgm_uint8_t u8g_font_fub25r[] U8G_FONT_SECTION("u8g_font_fub25r"); |
| lixianyu | 0:d8f4c441e032 | 1619 | extern const u8g_fntpgm_uint8_t u8g_font_fub25n[] U8G_FONT_SECTION("u8g_font_fub25n"); |
| lixianyu | 0:d8f4c441e032 | 1620 | extern const u8g_fntpgm_uint8_t u8g_font_fub30[] U8G_FONT_SECTION("u8g_font_fub30"); |
| lixianyu | 0:d8f4c441e032 | 1621 | extern const u8g_fntpgm_uint8_t u8g_font_fub30r[] U8G_FONT_SECTION("u8g_font_fub30r"); |
| lixianyu | 0:d8f4c441e032 | 1622 | extern const u8g_fntpgm_uint8_t u8g_font_fub30n[] U8G_FONT_SECTION("u8g_font_fub30n"); |
| lixianyu | 0:d8f4c441e032 | 1623 | extern const u8g_fntpgm_uint8_t u8g_font_fub35n[] U8G_FONT_SECTION("u8g_font_fub35n"); |
| lixianyu | 0:d8f4c441e032 | 1624 | extern const u8g_fntpgm_uint8_t u8g_font_fub42n[] U8G_FONT_SECTION("u8g_font_fub42n"); |
| lixianyu | 0:d8f4c441e032 | 1625 | extern const u8g_fntpgm_uint8_t u8g_font_fub49n[] U8G_FONT_SECTION("u8g_font_fub49n"); |
| lixianyu | 0:d8f4c441e032 | 1626 | |
| lixianyu | 0:d8f4c441e032 | 1627 | /* |
| lixianyu | 0:d8f4c441e032 | 1628 | Free-Universal Regular |
| lixianyu | 0:d8f4c441e032 | 1629 | r: Reduced char set (codes 32 - 128) |
| lixianyu | 0:d8f4c441e032 | 1630 | n: Numbers (codes 42 - 57) |
| lixianyu | 0:d8f4c441e032 | 1631 | no char: Full set (codes 32 - 255) |
| lixianyu | 0:d8f4c441e032 | 1632 | */ |
| lixianyu | 0:d8f4c441e032 | 1633 | |
| lixianyu | 0:d8f4c441e032 | 1634 | extern const u8g_fntpgm_uint8_t u8g_font_fur11[] U8G_FONT_SECTION("u8g_font_fur11"); |
| lixianyu | 0:d8f4c441e032 | 1635 | extern const u8g_fntpgm_uint8_t u8g_font_fur11r[] U8G_FONT_SECTION("u8g_font_fur11r"); |
| lixianyu | 0:d8f4c441e032 | 1636 | extern const u8g_fntpgm_uint8_t u8g_font_fur11n[] U8G_FONT_SECTION("u8g_font_fur11n"); |
| lixianyu | 0:d8f4c441e032 | 1637 | extern const u8g_fntpgm_uint8_t u8g_font_fur14[] U8G_FONT_SECTION("u8g_font_fur14"); |
| lixianyu | 0:d8f4c441e032 | 1638 | extern const u8g_fntpgm_uint8_t u8g_font_fur14r[] U8G_FONT_SECTION("u8g_font_fur14r"); |
| lixianyu | 0:d8f4c441e032 | 1639 | extern const u8g_fntpgm_uint8_t u8g_font_fur14n[] U8G_FONT_SECTION("u8g_font_fur14n"); |
| lixianyu | 0:d8f4c441e032 | 1640 | extern const u8g_fntpgm_uint8_t u8g_font_fur17[] U8G_FONT_SECTION("u8g_font_fur17"); |
| lixianyu | 0:d8f4c441e032 | 1641 | extern const u8g_fntpgm_uint8_t u8g_font_fur17r[] U8G_FONT_SECTION("u8g_font_fur17r"); |
| lixianyu | 0:d8f4c441e032 | 1642 | extern const u8g_fntpgm_uint8_t u8g_font_fur17n[] U8G_FONT_SECTION("u8g_font_fur17n"); |
| lixianyu | 0:d8f4c441e032 | 1643 | extern const u8g_fntpgm_uint8_t u8g_font_fur20[] U8G_FONT_SECTION("u8g_font_fur20"); |
| lixianyu | 0:d8f4c441e032 | 1644 | extern const u8g_fntpgm_uint8_t u8g_font_fur20r[] U8G_FONT_SECTION("u8g_font_fur20r"); |
| lixianyu | 0:d8f4c441e032 | 1645 | extern const u8g_fntpgm_uint8_t u8g_font_fur20n[] U8G_FONT_SECTION("u8g_font_fur20n"); |
| lixianyu | 0:d8f4c441e032 | 1646 | extern const u8g_fntpgm_uint8_t u8g_font_fur25[] U8G_FONT_SECTION("u8g_font_fur25"); |
| lixianyu | 0:d8f4c441e032 | 1647 | extern const u8g_fntpgm_uint8_t u8g_font_fur25r[] U8G_FONT_SECTION("u8g_font_fur25r"); |
| lixianyu | 0:d8f4c441e032 | 1648 | extern const u8g_fntpgm_uint8_t u8g_font_fur25n[] U8G_FONT_SECTION("u8g_font_fur25n"); |
| lixianyu | 0:d8f4c441e032 | 1649 | extern const u8g_fntpgm_uint8_t u8g_font_fur30[] U8G_FONT_SECTION("u8g_font_fur30"); |
| lixianyu | 0:d8f4c441e032 | 1650 | extern const u8g_fntpgm_uint8_t u8g_font_fur30r[] U8G_FONT_SECTION("u8g_font_fur30r"); |
| lixianyu | 0:d8f4c441e032 | 1651 | extern const u8g_fntpgm_uint8_t u8g_font_fur30n[] U8G_FONT_SECTION("u8g_font_fur30n"); |
| lixianyu | 0:d8f4c441e032 | 1652 | extern const u8g_fntpgm_uint8_t u8g_font_fur35n[] U8G_FONT_SECTION("u8g_font_fur35n"); |
| lixianyu | 0:d8f4c441e032 | 1653 | extern const u8g_fntpgm_uint8_t u8g_font_fur42n[] U8G_FONT_SECTION("u8g_font_fur42n"); |
| lixianyu | 0:d8f4c441e032 | 1654 | extern const u8g_fntpgm_uint8_t u8g_font_fur49n[] U8G_FONT_SECTION("u8g_font_fur49n"); |
| lixianyu | 0:d8f4c441e032 | 1655 | |
| lixianyu | 0:d8f4c441e032 | 1656 | /* |
| lixianyu | 0:d8f4c441e032 | 1657 | Gentium Bold |
| lixianyu | 0:d8f4c441e032 | 1658 | r: Reduced char set (codes 32 - 128) |
| lixianyu | 0:d8f4c441e032 | 1659 | n: Numbers (codes 42 - 57) |
| lixianyu | 0:d8f4c441e032 | 1660 | no char: Full set (codes 32 - 255) |
| lixianyu | 0:d8f4c441e032 | 1661 | */ |
| lixianyu | 0:d8f4c441e032 | 1662 | |
| lixianyu | 0:d8f4c441e032 | 1663 | extern const u8g_fntpgm_uint8_t u8g_font_gdb11[] U8G_FONT_SECTION("u8g_font_gdb11"); |
| lixianyu | 0:d8f4c441e032 | 1664 | extern const u8g_fntpgm_uint8_t u8g_font_gdb12[] U8G_FONT_SECTION("u8g_font_gdb12"); |
| lixianyu | 0:d8f4c441e032 | 1665 | extern const u8g_fntpgm_uint8_t u8g_font_gdb14[] U8G_FONT_SECTION("u8g_font_gdb14"); |
| lixianyu | 0:d8f4c441e032 | 1666 | extern const u8g_fntpgm_uint8_t u8g_font_gdb17[] U8G_FONT_SECTION("u8g_font_gdb17"); |
| lixianyu | 0:d8f4c441e032 | 1667 | extern const u8g_fntpgm_uint8_t u8g_font_gdb20[] U8G_FONT_SECTION("u8g_font_gdb20"); |
| lixianyu | 0:d8f4c441e032 | 1668 | extern const u8g_fntpgm_uint8_t u8g_font_gdb25[] U8G_FONT_SECTION("u8g_font_gdb25"); |
| lixianyu | 0:d8f4c441e032 | 1669 | extern const u8g_fntpgm_uint8_t u8g_font_gdb30[] U8G_FONT_SECTION("u8g_font_gdb30"); |
| lixianyu | 0:d8f4c441e032 | 1670 | |
| lixianyu | 0:d8f4c441e032 | 1671 | extern const u8g_fntpgm_uint8_t u8g_font_gdb11r[] U8G_FONT_SECTION("u8g_font_gdb11r"); |
| lixianyu | 0:d8f4c441e032 | 1672 | extern const u8g_fntpgm_uint8_t u8g_font_gdb12r[] U8G_FONT_SECTION("u8g_font_gdb12r"); |
| lixianyu | 0:d8f4c441e032 | 1673 | extern const u8g_fntpgm_uint8_t u8g_font_gdb14r[] U8G_FONT_SECTION("u8g_font_gdb14r"); |
| lixianyu | 0:d8f4c441e032 | 1674 | extern const u8g_fntpgm_uint8_t u8g_font_gdb17r[] U8G_FONT_SECTION("u8g_font_gdb17r"); |
| lixianyu | 0:d8f4c441e032 | 1675 | extern const u8g_fntpgm_uint8_t u8g_font_gdb20r[] U8G_FONT_SECTION("u8g_font_gdb20r"); |
| lixianyu | 0:d8f4c441e032 | 1676 | extern const u8g_fntpgm_uint8_t u8g_font_gdb25r[] U8G_FONT_SECTION("u8g_font_gdb25r"); |
| lixianyu | 0:d8f4c441e032 | 1677 | extern const u8g_fntpgm_uint8_t u8g_font_gdb30r[] U8G_FONT_SECTION("u8g_font_gdb30r"); |
| lixianyu | 0:d8f4c441e032 | 1678 | |
| lixianyu | 0:d8f4c441e032 | 1679 | extern const u8g_fntpgm_uint8_t u8g_font_gdb11n[] U8G_FONT_SECTION("u8g_font_gdb11n"); |
| lixianyu | 0:d8f4c441e032 | 1680 | extern const u8g_fntpgm_uint8_t u8g_font_gdb12n[] U8G_FONT_SECTION("u8g_font_gdb12n"); |
| lixianyu | 0:d8f4c441e032 | 1681 | extern const u8g_fntpgm_uint8_t u8g_font_gdb14n[] U8G_FONT_SECTION("u8g_font_gdb14n"); |
| lixianyu | 0:d8f4c441e032 | 1682 | extern const u8g_fntpgm_uint8_t u8g_font_gdb17n[] U8G_FONT_SECTION("u8g_font_gdb17n"); |
| lixianyu | 0:d8f4c441e032 | 1683 | extern const u8g_fntpgm_uint8_t u8g_font_gdb20n[] U8G_FONT_SECTION("u8g_font_gdb20n"); |
| lixianyu | 0:d8f4c441e032 | 1684 | extern const u8g_fntpgm_uint8_t u8g_font_gdb25n[] U8G_FONT_SECTION("u8g_font_gdb25n"); |
| lixianyu | 0:d8f4c441e032 | 1685 | extern const u8g_fntpgm_uint8_t u8g_font_gdb30n[] U8G_FONT_SECTION("u8g_font_gdb30n"); |
| lixianyu | 0:d8f4c441e032 | 1686 | |
| lixianyu | 0:d8f4c441e032 | 1687 | /* |
| lixianyu | 0:d8f4c441e032 | 1688 | Gentium Regular |
| lixianyu | 0:d8f4c441e032 | 1689 | r: Reduced char set (codes 32 - 128) |
| lixianyu | 0:d8f4c441e032 | 1690 | n: Numbers (codes 42 - 57) |
| lixianyu | 0:d8f4c441e032 | 1691 | no char: Full set (codes 32 - 255) |
| lixianyu | 0:d8f4c441e032 | 1692 | */ |
| lixianyu | 0:d8f4c441e032 | 1693 | |
| lixianyu | 0:d8f4c441e032 | 1694 | extern const u8g_fntpgm_uint8_t u8g_font_gdr9[] U8G_FONT_SECTION("u8g_font_gdr9"); |
| lixianyu | 0:d8f4c441e032 | 1695 | extern const u8g_fntpgm_uint8_t u8g_font_gdr10[] U8G_FONT_SECTION("u8g_font_gdr10"); |
| lixianyu | 0:d8f4c441e032 | 1696 | extern const u8g_fntpgm_uint8_t u8g_font_gdr11[] U8G_FONT_SECTION("u8g_font_gdr11"); |
| lixianyu | 0:d8f4c441e032 | 1697 | extern const u8g_fntpgm_uint8_t u8g_font_gdr12[] U8G_FONT_SECTION("u8g_font_gdr12"); |
| lixianyu | 0:d8f4c441e032 | 1698 | extern const u8g_fntpgm_uint8_t u8g_font_gdr14[] U8G_FONT_SECTION("u8g_font_gdr14"); |
| lixianyu | 0:d8f4c441e032 | 1699 | extern const u8g_fntpgm_uint8_t u8g_font_gdr17[] U8G_FONT_SECTION("u8g_font_gdr17"); |
| lixianyu | 0:d8f4c441e032 | 1700 | extern const u8g_fntpgm_uint8_t u8g_font_gdr20[] U8G_FONT_SECTION("u8g_font_gdr20"); |
| lixianyu | 0:d8f4c441e032 | 1701 | extern const u8g_fntpgm_uint8_t u8g_font_gdr25[] U8G_FONT_SECTION("u8g_font_gdr25"); |
| lixianyu | 0:d8f4c441e032 | 1702 | extern const u8g_fntpgm_uint8_t u8g_font_gdr30[] U8G_FONT_SECTION("u8g_font_gdr30"); |
| lixianyu | 0:d8f4c441e032 | 1703 | |
| lixianyu | 0:d8f4c441e032 | 1704 | extern const u8g_fntpgm_uint8_t u8g_font_gdr9r[] U8G_FONT_SECTION("u8g_font_gdr9r"); |
| lixianyu | 0:d8f4c441e032 | 1705 | extern const u8g_fntpgm_uint8_t u8g_font_gdr10r[] U8G_FONT_SECTION("u8g_font_gdr10r"); |
| lixianyu | 0:d8f4c441e032 | 1706 | extern const u8g_fntpgm_uint8_t u8g_font_gdr11r[] U8G_FONT_SECTION("u8g_font_gdr11r"); |
| lixianyu | 0:d8f4c441e032 | 1707 | extern const u8g_fntpgm_uint8_t u8g_font_gdr12r[] U8G_FONT_SECTION("u8g_font_gdr12r"); |
| lixianyu | 0:d8f4c441e032 | 1708 | extern const u8g_fntpgm_uint8_t u8g_font_gdr14r[] U8G_FONT_SECTION("u8g_font_gdr14r"); |
| lixianyu | 0:d8f4c441e032 | 1709 | extern const u8g_fntpgm_uint8_t u8g_font_gdr17r[] U8G_FONT_SECTION("u8g_font_gdr17r"); |
| lixianyu | 0:d8f4c441e032 | 1710 | extern const u8g_fntpgm_uint8_t u8g_font_gdr20r[] U8G_FONT_SECTION("u8g_font_gdr20r"); |
| lixianyu | 0:d8f4c441e032 | 1711 | extern const u8g_fntpgm_uint8_t u8g_font_gdr25r[] U8G_FONT_SECTION("u8g_font_gdr25r"); |
| lixianyu | 0:d8f4c441e032 | 1712 | extern const u8g_fntpgm_uint8_t u8g_font_gdr30r[] U8G_FONT_SECTION("u8g_font_gdr30r"); |
| lixianyu | 0:d8f4c441e032 | 1713 | |
| lixianyu | 0:d8f4c441e032 | 1714 | extern const u8g_fntpgm_uint8_t u8g_font_gdr9n[] U8G_FONT_SECTION("u8g_font_gdr9n"); |
| lixianyu | 0:d8f4c441e032 | 1715 | extern const u8g_fntpgm_uint8_t u8g_font_gdr10n[] U8G_FONT_SECTION("u8g_font_gdr10n"); |
| lixianyu | 0:d8f4c441e032 | 1716 | extern const u8g_fntpgm_uint8_t u8g_font_gdr11n[] U8G_FONT_SECTION("u8g_font_gdr11n"); |
| lixianyu | 0:d8f4c441e032 | 1717 | extern const u8g_fntpgm_uint8_t u8g_font_gdr12n[] U8G_FONT_SECTION("u8g_font_gdr12n"); |
| lixianyu | 0:d8f4c441e032 | 1718 | extern const u8g_fntpgm_uint8_t u8g_font_gdr14n[] U8G_FONT_SECTION("u8g_font_gdr14n"); |
| lixianyu | 0:d8f4c441e032 | 1719 | extern const u8g_fntpgm_uint8_t u8g_font_gdr17n[] U8G_FONT_SECTION("u8g_font_gdr17n"); |
| lixianyu | 0:d8f4c441e032 | 1720 | extern const u8g_fntpgm_uint8_t u8g_font_gdr20n[] U8G_FONT_SECTION("u8g_font_gdr20n"); |
| lixianyu | 0:d8f4c441e032 | 1721 | extern const u8g_fntpgm_uint8_t u8g_font_gdr25n[] U8G_FONT_SECTION("u8g_font_gdr25n"); |
| lixianyu | 0:d8f4c441e032 | 1722 | extern const u8g_fntpgm_uint8_t u8g_font_gdr30n[] U8G_FONT_SECTION("u8g_font_gdr30n"); |
| lixianyu | 0:d8f4c441e032 | 1723 | |
| lixianyu | 0:d8f4c441e032 | 1724 | /* |
| lixianyu | 0:d8f4c441e032 | 1725 | Old-Standard Bold |
| lixianyu | 0:d8f4c441e032 | 1726 | r: Reduced char set (codes 32 - 128) |
| lixianyu | 0:d8f4c441e032 | 1727 | n: Numbers (codes 42 - 57) |
| lixianyu | 0:d8f4c441e032 | 1728 | no char: Full set (codes 32 - 255) |
| lixianyu | 0:d8f4c441e032 | 1729 | */ |
| lixianyu | 0:d8f4c441e032 | 1730 | |
| lixianyu | 0:d8f4c441e032 | 1731 | extern const u8g_fntpgm_uint8_t u8g_font_osb18[] U8G_FONT_SECTION("u8g_font_osb18"); |
| lixianyu | 0:d8f4c441e032 | 1732 | extern const u8g_fntpgm_uint8_t u8g_font_osb21[] U8G_FONT_SECTION("u8g_font_osb21"); |
| lixianyu | 0:d8f4c441e032 | 1733 | extern const u8g_fntpgm_uint8_t u8g_font_osb26[] U8G_FONT_SECTION("u8g_font_osb26"); |
| lixianyu | 0:d8f4c441e032 | 1734 | extern const u8g_fntpgm_uint8_t u8g_font_osb29[] U8G_FONT_SECTION("u8g_font_osb29"); |
| lixianyu | 0:d8f4c441e032 | 1735 | extern const u8g_fntpgm_uint8_t u8g_font_osb35[] U8G_FONT_SECTION("u8g_font_osb35"); |
| lixianyu | 0:d8f4c441e032 | 1736 | |
| lixianyu | 0:d8f4c441e032 | 1737 | extern const u8g_fntpgm_uint8_t u8g_font_osb18r[] U8G_FONT_SECTION("u8g_font_osb18r"); |
| lixianyu | 0:d8f4c441e032 | 1738 | extern const u8g_fntpgm_uint8_t u8g_font_osb21r[] U8G_FONT_SECTION("u8g_font_osb21r"); |
| lixianyu | 0:d8f4c441e032 | 1739 | extern const u8g_fntpgm_uint8_t u8g_font_osb26r[] U8G_FONT_SECTION("u8g_font_osb26r"); |
| lixianyu | 0:d8f4c441e032 | 1740 | extern const u8g_fntpgm_uint8_t u8g_font_osb29r[] U8G_FONT_SECTION("u8g_font_osb29r"); |
| lixianyu | 0:d8f4c441e032 | 1741 | extern const u8g_fntpgm_uint8_t u8g_font_osb35r[] U8G_FONT_SECTION("u8g_font_osb35r"); |
| lixianyu | 0:d8f4c441e032 | 1742 | |
| lixianyu | 0:d8f4c441e032 | 1743 | extern const u8g_fntpgm_uint8_t u8g_font_osb18n[] U8G_FONT_SECTION("u8g_font_osb18n"); |
| lixianyu | 0:d8f4c441e032 | 1744 | extern const u8g_fntpgm_uint8_t u8g_font_osb21n[] U8G_FONT_SECTION("u8g_font_osb21n"); |
| lixianyu | 0:d8f4c441e032 | 1745 | extern const u8g_fntpgm_uint8_t u8g_font_osb26n[] U8G_FONT_SECTION("u8g_font_osb26n"); |
| lixianyu | 0:d8f4c441e032 | 1746 | extern const u8g_fntpgm_uint8_t u8g_font_osb29n[] U8G_FONT_SECTION("u8g_font_osb29n"); |
| lixianyu | 0:d8f4c441e032 | 1747 | extern const u8g_fntpgm_uint8_t u8g_font_osb35n[] U8G_FONT_SECTION("u8g_font_osb35n"); |
| lixianyu | 0:d8f4c441e032 | 1748 | |
| lixianyu | 0:d8f4c441e032 | 1749 | /* |
| lixianyu | 0:d8f4c441e032 | 1750 | Old-Standard Regular |
| lixianyu | 0:d8f4c441e032 | 1751 | r: Reduced char set (codes 32 - 128) |
| lixianyu | 0:d8f4c441e032 | 1752 | n: Numbers (codes 42 - 57) |
| lixianyu | 0:d8f4c441e032 | 1753 | no char: Full set (codes 32 - 255) |
| lixianyu | 0:d8f4c441e032 | 1754 | */ |
| lixianyu | 0:d8f4c441e032 | 1755 | |
| lixianyu | 0:d8f4c441e032 | 1756 | extern const u8g_fntpgm_uint8_t u8g_font_osr18[] U8G_FONT_SECTION("u8g_font_osr18"); |
| lixianyu | 0:d8f4c441e032 | 1757 | extern const u8g_fntpgm_uint8_t u8g_font_osr21[] U8G_FONT_SECTION("u8g_font_osr21"); |
| lixianyu | 0:d8f4c441e032 | 1758 | extern const u8g_fntpgm_uint8_t u8g_font_osr26[] U8G_FONT_SECTION("u8g_font_osr26"); |
| lixianyu | 0:d8f4c441e032 | 1759 | extern const u8g_fntpgm_uint8_t u8g_font_osr29[] U8G_FONT_SECTION("u8g_font_osr29"); |
| lixianyu | 0:d8f4c441e032 | 1760 | extern const u8g_fntpgm_uint8_t u8g_font_osr35[] U8G_FONT_SECTION("u8g_font_osr35"); |
| lixianyu | 0:d8f4c441e032 | 1761 | |
| lixianyu | 0:d8f4c441e032 | 1762 | extern const u8g_fntpgm_uint8_t u8g_font_osr18r[] U8G_FONT_SECTION("u8g_font_osr18r"); |
| lixianyu | 0:d8f4c441e032 | 1763 | extern const u8g_fntpgm_uint8_t u8g_font_osr21r[] U8G_FONT_SECTION("u8g_font_osr21r"); |
| lixianyu | 0:d8f4c441e032 | 1764 | extern const u8g_fntpgm_uint8_t u8g_font_osr26r[] U8G_FONT_SECTION("u8g_font_osr26r"); |
| lixianyu | 0:d8f4c441e032 | 1765 | extern const u8g_fntpgm_uint8_t u8g_font_osr29r[] U8G_FONT_SECTION("u8g_font_osr29r"); |
| lixianyu | 0:d8f4c441e032 | 1766 | extern const u8g_fntpgm_uint8_t u8g_font_osr35r[] U8G_FONT_SECTION("u8g_font_osr35r"); |
| lixianyu | 0:d8f4c441e032 | 1767 | |
| lixianyu | 0:d8f4c441e032 | 1768 | extern const u8g_fntpgm_uint8_t u8g_font_osr18n[] U8G_FONT_SECTION("u8g_font_osr18n"); |
| lixianyu | 0:d8f4c441e032 | 1769 | extern const u8g_fntpgm_uint8_t u8g_font_osr21n[] U8G_FONT_SECTION("u8g_font_osr21n"); |
| lixianyu | 0:d8f4c441e032 | 1770 | extern const u8g_fntpgm_uint8_t u8g_font_osr26n[] U8G_FONT_SECTION("u8g_font_osr26n"); |
| lixianyu | 0:d8f4c441e032 | 1771 | extern const u8g_fntpgm_uint8_t u8g_font_osr29n[] U8G_FONT_SECTION("u8g_font_osr29n"); |
| lixianyu | 0:d8f4c441e032 | 1772 | extern const u8g_fntpgm_uint8_t u8g_font_osr35n[] U8G_FONT_SECTION("u8g_font_osr35n"); |
| lixianyu | 0:d8f4c441e032 | 1773 | |
| lixianyu | 0:d8f4c441e032 | 1774 | //extern const u8g_fntpgm_uint8_t u8g_font_osr41[] U8G_FONT_SECTION("u8g_font_osr41"); |
| lixianyu | 0:d8f4c441e032 | 1775 | |
| lixianyu | 0:d8f4c441e032 | 1776 | /* GNU unifont */ |
| lixianyu | 0:d8f4c441e032 | 1777 | |
| lixianyu | 0:d8f4c441e032 | 1778 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[] U8G_FONT_SECTION("u8g_font_unifont_18_19"); |
| lixianyu | 0:d8f4c441e032 | 1779 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[] U8G_FONT_SECTION("u8g_font_unifont_72_73"); |
| lixianyu | 0:d8f4c441e032 | 1780 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[] U8G_FONT_SECTION("u8g_font_unifont_67_75"); |
| lixianyu | 0:d8f4c441e032 | 1781 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_76[] U8G_FONT_SECTION("u8g_font_unifont_76"); |
| lixianyu | 0:d8f4c441e032 | 1782 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_77[] U8G_FONT_SECTION("u8g_font_unifont_77"); |
| lixianyu | 0:d8f4c441e032 | 1783 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[] U8G_FONT_SECTION("u8g_font_unifont_78_79"); |
| lixianyu | 0:d8f4c441e032 | 1784 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_86[] U8G_FONT_SECTION("u8g_font_unifont_86"); |
| lixianyu | 0:d8f4c441e032 | 1785 | extern const u8g_fntpgm_uint8_t u8g_font_unifont[] U8G_FONT_SECTION("u8g_font_unifont"); |
| lixianyu | 0:d8f4c441e032 | 1786 | extern const u8g_fntpgm_uint8_t u8g_font_unifontr[] U8G_FONT_SECTION("u8g_font_unifontr"); |
| lixianyu | 0:d8f4c441e032 | 1787 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[] U8G_FONT_SECTION("u8g_font_unifont_0_8"); |
| lixianyu | 0:d8f4c441e032 | 1788 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[] U8G_FONT_SECTION("u8g_font_unifont_2_3"); |
| lixianyu | 0:d8f4c441e032 | 1789 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[] U8G_FONT_SECTION("u8g_font_unifont_4_5"); |
| lixianyu | 0:d8f4c441e032 | 1790 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[] U8G_FONT_SECTION("u8g_font_unifont_8_9"); |
| lixianyu | 0:d8f4c441e032 | 1791 | extern const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[] U8G_FONT_SECTION("u8g_font_unifont_12_13"); |
| lixianyu | 0:d8f4c441e032 | 1792 | |
| lixianyu | 0:d8f4c441e032 | 1793 | |
| lixianyu | 0:d8f4c441e032 | 1794 | /* 04b fonts */ |
| lixianyu | 0:d8f4c441e032 | 1795 | |
| lixianyu | 0:d8f4c441e032 | 1796 | extern const u8g_fntpgm_uint8_t u8g_font_04b_03b[] U8G_FONT_SECTION("u8g_font_04b_03b"); |
| lixianyu | 0:d8f4c441e032 | 1797 | extern const u8g_fntpgm_uint8_t u8g_font_04b_03bn[] U8G_FONT_SECTION("u8g_font_04b_03bn"); |
| lixianyu | 0:d8f4c441e032 | 1798 | extern const u8g_fntpgm_uint8_t u8g_font_04b_03br[] U8G_FONT_SECTION("u8g_font_04b_03br"); |
| lixianyu | 0:d8f4c441e032 | 1799 | extern const u8g_fntpgm_uint8_t u8g_font_04b_03[] U8G_FONT_SECTION("u8g_font_04b_03"); |
| lixianyu | 0:d8f4c441e032 | 1800 | extern const u8g_fntpgm_uint8_t u8g_font_04b_03n[] U8G_FONT_SECTION("u8g_font_04b_03n"); |
| lixianyu | 0:d8f4c441e032 | 1801 | extern const u8g_fntpgm_uint8_t u8g_font_04b_03r[] U8G_FONT_SECTION("u8g_font_04b_03r"); |
| lixianyu | 0:d8f4c441e032 | 1802 | extern const u8g_fntpgm_uint8_t u8g_font_04b_24[] U8G_FONT_SECTION("u8g_font_04b_24"); |
| lixianyu | 0:d8f4c441e032 | 1803 | extern const u8g_fntpgm_uint8_t u8g_font_04b_24n[] U8G_FONT_SECTION("u8g_font_04b_24n"); |
| lixianyu | 0:d8f4c441e032 | 1804 | extern const u8g_fntpgm_uint8_t u8g_font_04b_24r[] U8G_FONT_SECTION("u8g_font_04b_24r"); |
| lixianyu | 0:d8f4c441e032 | 1805 | |
| lixianyu | 0:d8f4c441e032 | 1806 | /* orgdot fonts */ |
| lixianyu | 0:d8f4c441e032 | 1807 | |
| lixianyu | 0:d8f4c441e032 | 1808 | extern const u8g_fntpgm_uint8_t u8g_font_orgv01[] U8G_FONT_SECTION("u8g_font_orgv01"); |
| lixianyu | 0:d8f4c441e032 | 1809 | extern const u8g_fntpgm_uint8_t u8g_font_orgv01r[] U8G_FONT_SECTION("u8g_font_orgv01r"); |
| lixianyu | 0:d8f4c441e032 | 1810 | extern const u8g_fntpgm_uint8_t u8g_font_orgv01n[] U8G_FONT_SECTION("u8g_font_orgv01n"); |
| lixianyu | 0:d8f4c441e032 | 1811 | |
| lixianyu | 0:d8f4c441e032 | 1812 | extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0[] U8G_FONT_SECTION("u8g_font_fixed_v0"); |
| lixianyu | 0:d8f4c441e032 | 1813 | extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[] U8G_FONT_SECTION("u8g_font_fixed_v0r"); |
| lixianyu | 0:d8f4c441e032 | 1814 | extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[] U8G_FONT_SECTION("u8g_font_fixed_v0n"); |
| lixianyu | 0:d8f4c441e032 | 1815 | |
| lixianyu | 0:d8f4c441e032 | 1816 | extern const u8g_fntpgm_uint8_t u8g_font_tpssb[] U8G_FONT_SECTION("u8g_font_tpssb"); |
| lixianyu | 0:d8f4c441e032 | 1817 | extern const u8g_fntpgm_uint8_t u8g_font_tpssbr[] U8G_FONT_SECTION("u8g_font_tpssbr"); |
| lixianyu | 0:d8f4c441e032 | 1818 | extern const u8g_fntpgm_uint8_t u8g_font_tpssbn[] U8G_FONT_SECTION("u8g_font_tpssbn"); |
| lixianyu | 0:d8f4c441e032 | 1819 | |
| lixianyu | 0:d8f4c441e032 | 1820 | extern const u8g_fntpgm_uint8_t u8g_font_tpss[] U8G_FONT_SECTION("u8g_font_tpss"); |
| lixianyu | 0:d8f4c441e032 | 1821 | extern const u8g_fntpgm_uint8_t u8g_font_tpssr[] U8G_FONT_SECTION("u8g_font_tpssr"); |
| lixianyu | 0:d8f4c441e032 | 1822 | extern const u8g_fntpgm_uint8_t u8g_font_tpssn[] U8G_FONT_SECTION("u8g_font_tpssn"); |
| lixianyu | 0:d8f4c441e032 | 1823 | |
| lixianyu | 0:d8f4c441e032 | 1824 | /* contributed */ |
| lixianyu | 0:d8f4c441e032 | 1825 | |
| lixianyu | 0:d8f4c441e032 | 1826 | extern const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[] U8G_FONT_SECTION("u8g_font_freedoomr25n"); |
| lixianyu | 0:d8f4c441e032 | 1827 | extern const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[] U8G_FONT_SECTION("u8g_font_freedoomr10r"); |
| lixianyu | 0:d8f4c441e032 | 1828 | |
| lixianyu | 0:d8f4c441e032 | 1829 | /* adobe X11 */ |
| lixianyu | 0:d8f4c441e032 | 1830 | extern const u8g_fntpgm_uint8_t u8g_font_courB08[] U8G_FONT_SECTION("u8g_font_courB08"); |
| lixianyu | 0:d8f4c441e032 | 1831 | extern const u8g_fntpgm_uint8_t u8g_font_courB08r[] U8G_FONT_SECTION("u8g_font_courB08r"); |
| lixianyu | 0:d8f4c441e032 | 1832 | extern const u8g_fntpgm_uint8_t u8g_font_courB10[] U8G_FONT_SECTION("u8g_font_courB10"); |
| lixianyu | 0:d8f4c441e032 | 1833 | extern const u8g_fntpgm_uint8_t u8g_font_courB10r[] U8G_FONT_SECTION("u8g_font_courB10r"); |
| lixianyu | 0:d8f4c441e032 | 1834 | extern const u8g_fntpgm_uint8_t u8g_font_courB12[] U8G_FONT_SECTION("u8g_font_courB12"); |
| lixianyu | 0:d8f4c441e032 | 1835 | extern const u8g_fntpgm_uint8_t u8g_font_courB12r[] U8G_FONT_SECTION("u8g_font_courB12r"); |
| lixianyu | 0:d8f4c441e032 | 1836 | extern const u8g_fntpgm_uint8_t u8g_font_courB14[] U8G_FONT_SECTION("u8g_font_courB14"); |
| lixianyu | 0:d8f4c441e032 | 1837 | extern const u8g_fntpgm_uint8_t u8g_font_courB14r[] U8G_FONT_SECTION("u8g_font_courB14r"); |
| lixianyu | 0:d8f4c441e032 | 1838 | extern const u8g_fntpgm_uint8_t u8g_font_courB18[] U8G_FONT_SECTION("u8g_font_courB18"); |
| lixianyu | 0:d8f4c441e032 | 1839 | extern const u8g_fntpgm_uint8_t u8g_font_courB18r[] U8G_FONT_SECTION("u8g_font_courB18r"); |
| lixianyu | 0:d8f4c441e032 | 1840 | extern const u8g_fntpgm_uint8_t u8g_font_courB24[] U8G_FONT_SECTION("u8g_font_courB24"); |
| lixianyu | 0:d8f4c441e032 | 1841 | extern const u8g_fntpgm_uint8_t u8g_font_courB24r[] U8G_FONT_SECTION("u8g_font_courB24r"); |
| lixianyu | 0:d8f4c441e032 | 1842 | extern const u8g_fntpgm_uint8_t u8g_font_courB24n[] U8G_FONT_SECTION("u8g_font_courB24n"); |
| lixianyu | 0:d8f4c441e032 | 1843 | |
| lixianyu | 0:d8f4c441e032 | 1844 | extern const u8g_fntpgm_uint8_t u8g_font_courR08[] U8G_FONT_SECTION("u8g_font_courR08"); |
| lixianyu | 0:d8f4c441e032 | 1845 | extern const u8g_fntpgm_uint8_t u8g_font_courR08r[] U8G_FONT_SECTION("u8g_font_courR08r"); |
| lixianyu | 0:d8f4c441e032 | 1846 | extern const u8g_fntpgm_uint8_t u8g_font_courR10[] U8G_FONT_SECTION("u8g_font_courR10"); |
| lixianyu | 0:d8f4c441e032 | 1847 | extern const u8g_fntpgm_uint8_t u8g_font_courR10r[] U8G_FONT_SECTION("u8g_font_courR10r"); |
| lixianyu | 0:d8f4c441e032 | 1848 | extern const u8g_fntpgm_uint8_t u8g_font_courR12[] U8G_FONT_SECTION("u8g_font_courR12"); |
| lixianyu | 0:d8f4c441e032 | 1849 | extern const u8g_fntpgm_uint8_t u8g_font_courR12r[] U8G_FONT_SECTION("u8g_font_courR12r"); |
| lixianyu | 0:d8f4c441e032 | 1850 | extern const u8g_fntpgm_uint8_t u8g_font_courR14[] U8G_FONT_SECTION("u8g_font_courR14"); |
| lixianyu | 0:d8f4c441e032 | 1851 | extern const u8g_fntpgm_uint8_t u8g_font_courR14r[] U8G_FONT_SECTION("u8g_font_courR14r"); |
| lixianyu | 0:d8f4c441e032 | 1852 | extern const u8g_fntpgm_uint8_t u8g_font_courR18[] U8G_FONT_SECTION("u8g_font_courR18"); |
| lixianyu | 0:d8f4c441e032 | 1853 | extern const u8g_fntpgm_uint8_t u8g_font_courR18r[] U8G_FONT_SECTION("u8g_font_courR18r"); |
| lixianyu | 0:d8f4c441e032 | 1854 | extern const u8g_fntpgm_uint8_t u8g_font_courR24[] U8G_FONT_SECTION("u8g_font_courR24"); |
| lixianyu | 0:d8f4c441e032 | 1855 | extern const u8g_fntpgm_uint8_t u8g_font_courR24r[] U8G_FONT_SECTION("u8g_font_courR24r"); |
| lixianyu | 0:d8f4c441e032 | 1856 | extern const u8g_fntpgm_uint8_t u8g_font_courR24n[] U8G_FONT_SECTION("u8g_font_courR24n"); |
| lixianyu | 0:d8f4c441e032 | 1857 | |
| lixianyu | 0:d8f4c441e032 | 1858 | extern const u8g_fntpgm_uint8_t u8g_font_helvB08[] U8G_FONT_SECTION("u8g_font_helvB08"); |
| lixianyu | 0:d8f4c441e032 | 1859 | extern const u8g_fntpgm_uint8_t u8g_font_helvB08r[] U8G_FONT_SECTION("u8g_font_helvB08r"); |
| lixianyu | 0:d8f4c441e032 | 1860 | extern const u8g_fntpgm_uint8_t u8g_font_helvB08n[] U8G_FONT_SECTION("u8g_font_helvB08n"); |
| lixianyu | 0:d8f4c441e032 | 1861 | extern const u8g_fntpgm_uint8_t u8g_font_helvB10[] U8G_FONT_SECTION("u8g_font_helvB10"); |
| lixianyu | 0:d8f4c441e032 | 1862 | extern const u8g_fntpgm_uint8_t u8g_font_helvB10r[] U8G_FONT_SECTION("u8g_font_helvB10r"); |
| lixianyu | 0:d8f4c441e032 | 1863 | extern const u8g_fntpgm_uint8_t u8g_font_helvB10n[] U8G_FONT_SECTION("u8g_font_helvB10n"); |
| lixianyu | 0:d8f4c441e032 | 1864 | extern const u8g_fntpgm_uint8_t u8g_font_helvB12[] U8G_FONT_SECTION("u8g_font_helvB12"); |
| lixianyu | 0:d8f4c441e032 | 1865 | extern const u8g_fntpgm_uint8_t u8g_font_helvB12r[] U8G_FONT_SECTION("u8g_font_helvB12r"); |
| lixianyu | 0:d8f4c441e032 | 1866 | extern const u8g_fntpgm_uint8_t u8g_font_helvB12n[] U8G_FONT_SECTION("u8g_font_helvB12n"); |
| lixianyu | 0:d8f4c441e032 | 1867 | extern const u8g_fntpgm_uint8_t u8g_font_helvB14[] U8G_FONT_SECTION("u8g_font_helvB14"); |
| lixianyu | 0:d8f4c441e032 | 1868 | extern const u8g_fntpgm_uint8_t u8g_font_helvB14r[] U8G_FONT_SECTION("u8g_font_helvB14r"); |
| lixianyu | 0:d8f4c441e032 | 1869 | extern const u8g_fntpgm_uint8_t u8g_font_helvB14n[] U8G_FONT_SECTION("u8g_font_helvB14n"); |
| lixianyu | 0:d8f4c441e032 | 1870 | extern const u8g_fntpgm_uint8_t u8g_font_helvB18[] U8G_FONT_SECTION("u8g_font_helvB18"); |
| lixianyu | 0:d8f4c441e032 | 1871 | extern const u8g_fntpgm_uint8_t u8g_font_helvB18r[] U8G_FONT_SECTION("u8g_font_helvB18r"); |
| lixianyu | 0:d8f4c441e032 | 1872 | extern const u8g_fntpgm_uint8_t u8g_font_helvB18n[] U8G_FONT_SECTION("u8g_font_helvB18n"); |
| lixianyu | 0:d8f4c441e032 | 1873 | extern const u8g_fntpgm_uint8_t u8g_font_helvB24[] U8G_FONT_SECTION("u8g_font_helvB24"); |
| lixianyu | 0:d8f4c441e032 | 1874 | extern const u8g_fntpgm_uint8_t u8g_font_helvB24r[] U8G_FONT_SECTION("u8g_font_helvB24r"); |
| lixianyu | 0:d8f4c441e032 | 1875 | extern const u8g_fntpgm_uint8_t u8g_font_helvB24n[] U8G_FONT_SECTION("u8g_font_helvB24n"); |
| lixianyu | 0:d8f4c441e032 | 1876 | |
| lixianyu | 0:d8f4c441e032 | 1877 | extern const u8g_fntpgm_uint8_t u8g_font_helvR08[] U8G_FONT_SECTION("u8g_font_helvR08"); |
| lixianyu | 0:d8f4c441e032 | 1878 | extern const u8g_fntpgm_uint8_t u8g_font_helvR08r[] U8G_FONT_SECTION("u8g_font_helvR08r"); |
| lixianyu | 0:d8f4c441e032 | 1879 | extern const u8g_fntpgm_uint8_t u8g_font_helvR08n[] U8G_FONT_SECTION("u8g_font_helvR08n"); |
| lixianyu | 0:d8f4c441e032 | 1880 | extern const u8g_fntpgm_uint8_t u8g_font_helvR10[] U8G_FONT_SECTION("u8g_font_helvR10"); |
| lixianyu | 0:d8f4c441e032 | 1881 | extern const u8g_fntpgm_uint8_t u8g_font_helvR10r[] U8G_FONT_SECTION("u8g_font_helvR10r"); |
| lixianyu | 0:d8f4c441e032 | 1882 | extern const u8g_fntpgm_uint8_t u8g_font_helvR10n[] U8G_FONT_SECTION("u8g_font_helvR10n"); |
| lixianyu | 0:d8f4c441e032 | 1883 | extern const u8g_fntpgm_uint8_t u8g_font_helvR12[] U8G_FONT_SECTION("u8g_font_helvR12"); |
| lixianyu | 0:d8f4c441e032 | 1884 | extern const u8g_fntpgm_uint8_t u8g_font_helvR12r[] U8G_FONT_SECTION("u8g_font_helvR12r"); |
| lixianyu | 0:d8f4c441e032 | 1885 | extern const u8g_fntpgm_uint8_t u8g_font_helvR12n[] U8G_FONT_SECTION("u8g_font_helvR12n"); |
| lixianyu | 0:d8f4c441e032 | 1886 | extern const u8g_fntpgm_uint8_t u8g_font_helvR14[] U8G_FONT_SECTION("u8g_font_helvR14"); |
| lixianyu | 0:d8f4c441e032 | 1887 | extern const u8g_fntpgm_uint8_t u8g_font_helvR14r[] U8G_FONT_SECTION("u8g_font_helvR14r"); |
| lixianyu | 0:d8f4c441e032 | 1888 | extern const u8g_fntpgm_uint8_t u8g_font_helvR14n[] U8G_FONT_SECTION("u8g_font_helvR14n"); |
| lixianyu | 0:d8f4c441e032 | 1889 | extern const u8g_fntpgm_uint8_t u8g_font_helvR18[] U8G_FONT_SECTION("u8g_font_helvR18"); |
| lixianyu | 0:d8f4c441e032 | 1890 | extern const u8g_fntpgm_uint8_t u8g_font_helvR18r[] U8G_FONT_SECTION("u8g_font_helvR18r"); |
| lixianyu | 0:d8f4c441e032 | 1891 | extern const u8g_fntpgm_uint8_t u8g_font_helvR18n[] U8G_FONT_SECTION("u8g_font_helvR18n"); |
| lixianyu | 0:d8f4c441e032 | 1892 | extern const u8g_fntpgm_uint8_t u8g_font_helvR24[] U8G_FONT_SECTION("u8g_font_helvR24"); |
| lixianyu | 0:d8f4c441e032 | 1893 | extern const u8g_fntpgm_uint8_t u8g_font_helvR24r[] U8G_FONT_SECTION("u8g_font_helvR24r"); |
| lixianyu | 0:d8f4c441e032 | 1894 | extern const u8g_fntpgm_uint8_t u8g_font_helvR24n[] U8G_FONT_SECTION("u8g_font_helvR24n"); |
| lixianyu | 0:d8f4c441e032 | 1895 | |
| lixianyu | 0:d8f4c441e032 | 1896 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB08[] U8G_FONT_SECTION("u8g_font_ncenB08"); |
| lixianyu | 0:d8f4c441e032 | 1897 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB08r[] U8G_FONT_SECTION("u8g_font_ncenB08r"); |
| lixianyu | 0:d8f4c441e032 | 1898 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB10[] U8G_FONT_SECTION("u8g_font_ncenB10"); |
| lixianyu | 0:d8f4c441e032 | 1899 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB10r[] U8G_FONT_SECTION("u8g_font_ncenB10r"); |
| lixianyu | 0:d8f4c441e032 | 1900 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB12[] U8G_FONT_SECTION("u8g_font_ncenB12"); |
| lixianyu | 0:d8f4c441e032 | 1901 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB12r[] U8G_FONT_SECTION("u8g_font_ncenB12r"); |
| lixianyu | 0:d8f4c441e032 | 1902 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB14[] U8G_FONT_SECTION("u8g_font_ncenB14"); |
| lixianyu | 0:d8f4c441e032 | 1903 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB14r[] U8G_FONT_SECTION("u8g_font_ncenB14r"); |
| lixianyu | 0:d8f4c441e032 | 1904 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB18[] U8G_FONT_SECTION("u8g_font_ncenB18"); |
| lixianyu | 0:d8f4c441e032 | 1905 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB18r[] U8G_FONT_SECTION("u8g_font_ncenB18r"); |
| lixianyu | 0:d8f4c441e032 | 1906 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB24[] U8G_FONT_SECTION("u8g_font_ncenB24"); |
| lixianyu | 0:d8f4c441e032 | 1907 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB24r[] U8G_FONT_SECTION("u8g_font_ncenB24r"); |
| lixianyu | 0:d8f4c441e032 | 1908 | extern const u8g_fntpgm_uint8_t u8g_font_ncenB24n[] U8G_FONT_SECTION("u8g_font_ncenB24n"); |
| lixianyu | 0:d8f4c441e032 | 1909 | |
| lixianyu | 0:d8f4c441e032 | 1910 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR08[] U8G_FONT_SECTION("u8g_font_ncenR08"); |
| lixianyu | 0:d8f4c441e032 | 1911 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR08r[] U8G_FONT_SECTION("u8g_font_ncenR08r"); |
| lixianyu | 0:d8f4c441e032 | 1912 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR10[] U8G_FONT_SECTION("u8g_font_ncenR10"); |
| lixianyu | 0:d8f4c441e032 | 1913 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR10r[] U8G_FONT_SECTION("u8g_font_ncenR10r"); |
| lixianyu | 0:d8f4c441e032 | 1914 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR12[] U8G_FONT_SECTION("u8g_font_ncenR12"); |
| lixianyu | 0:d8f4c441e032 | 1915 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR12r[] U8G_FONT_SECTION("u8g_font_ncenR12r"); |
| lixianyu | 0:d8f4c441e032 | 1916 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR14[] U8G_FONT_SECTION("u8g_font_ncenR14"); |
| lixianyu | 0:d8f4c441e032 | 1917 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR14r[] U8G_FONT_SECTION("u8g_font_ncenR14r"); |
| lixianyu | 0:d8f4c441e032 | 1918 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR18[] U8G_FONT_SECTION("u8g_font_ncenR18"); |
| lixianyu | 0:d8f4c441e032 | 1919 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR18r[] U8G_FONT_SECTION("u8g_font_ncenR18r"); |
| lixianyu | 0:d8f4c441e032 | 1920 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR24[] U8G_FONT_SECTION("u8g_font_ncenR24"); |
| lixianyu | 0:d8f4c441e032 | 1921 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR24r[] U8G_FONT_SECTION("u8g_font_ncenR24r"); |
| lixianyu | 0:d8f4c441e032 | 1922 | extern const u8g_fntpgm_uint8_t u8g_font_ncenR24n[] U8G_FONT_SECTION("u8g_font_ncenR24n"); |
| lixianyu | 0:d8f4c441e032 | 1923 | |
| lixianyu | 0:d8f4c441e032 | 1924 | extern const u8g_fntpgm_uint8_t u8g_font_symb08[] U8G_FONT_SECTION("u8g_font_symb08"); |
| lixianyu | 0:d8f4c441e032 | 1925 | extern const u8g_fntpgm_uint8_t u8g_font_symb08r[] U8G_FONT_SECTION("u8g_font_symb08r"); |
| lixianyu | 0:d8f4c441e032 | 1926 | extern const u8g_fntpgm_uint8_t u8g_font_symb10[] U8G_FONT_SECTION("u8g_font_symb10"); |
| lixianyu | 0:d8f4c441e032 | 1927 | extern const u8g_fntpgm_uint8_t u8g_font_symb10r[] U8G_FONT_SECTION("u8g_font_symb10r"); |
| lixianyu | 0:d8f4c441e032 | 1928 | extern const u8g_fntpgm_uint8_t u8g_font_symb12[] U8G_FONT_SECTION("u8g_font_symb12"); |
| lixianyu | 0:d8f4c441e032 | 1929 | extern const u8g_fntpgm_uint8_t u8g_font_symb12r[] U8G_FONT_SECTION("u8g_font_symb12r"); |
| lixianyu | 0:d8f4c441e032 | 1930 | extern const u8g_fntpgm_uint8_t u8g_font_symb14[] U8G_FONT_SECTION("u8g_font_symb14"); |
| lixianyu | 0:d8f4c441e032 | 1931 | extern const u8g_fntpgm_uint8_t u8g_font_symb14r[] U8G_FONT_SECTION("u8g_font_symb14r"); |
| lixianyu | 0:d8f4c441e032 | 1932 | extern const u8g_fntpgm_uint8_t u8g_font_symb18[] U8G_FONT_SECTION("u8g_font_symb18"); |
| lixianyu | 0:d8f4c441e032 | 1933 | extern const u8g_fntpgm_uint8_t u8g_font_symb18r[] U8G_FONT_SECTION("u8g_font_symb18r"); |
| lixianyu | 0:d8f4c441e032 | 1934 | extern const u8g_fntpgm_uint8_t u8g_font_symb24[] U8G_FONT_SECTION("u8g_font_symb24"); |
| lixianyu | 0:d8f4c441e032 | 1935 | extern const u8g_fntpgm_uint8_t u8g_font_symb24r[] U8G_FONT_SECTION("u8g_font_symb24r"); |
| lixianyu | 0:d8f4c441e032 | 1936 | |
| lixianyu | 0:d8f4c441e032 | 1937 | extern const u8g_fntpgm_uint8_t u8g_font_timB08[] U8G_FONT_SECTION("u8g_font_timB08"); |
| lixianyu | 0:d8f4c441e032 | 1938 | extern const u8g_fntpgm_uint8_t u8g_font_timB08r[] U8G_FONT_SECTION("u8g_font_timB08r"); |
| lixianyu | 0:d8f4c441e032 | 1939 | extern const u8g_fntpgm_uint8_t u8g_font_timB10[] U8G_FONT_SECTION("u8g_font_timB10"); |
| lixianyu | 0:d8f4c441e032 | 1940 | extern const u8g_fntpgm_uint8_t u8g_font_timB10r[] U8G_FONT_SECTION("u8g_font_timB10r"); |
| lixianyu | 0:d8f4c441e032 | 1941 | extern const u8g_fntpgm_uint8_t u8g_font_timB12[] U8G_FONT_SECTION("u8g_font_timB12"); |
| lixianyu | 0:d8f4c441e032 | 1942 | extern const u8g_fntpgm_uint8_t u8g_font_timB12r[] U8G_FONT_SECTION("u8g_font_timB12r"); |
| lixianyu | 0:d8f4c441e032 | 1943 | extern const u8g_fntpgm_uint8_t u8g_font_timB14[] U8G_FONT_SECTION("u8g_font_timB14"); |
| lixianyu | 0:d8f4c441e032 | 1944 | extern const u8g_fntpgm_uint8_t u8g_font_timB14r[] U8G_FONT_SECTION("u8g_font_timB14r"); |
| lixianyu | 0:d8f4c441e032 | 1945 | extern const u8g_fntpgm_uint8_t u8g_font_timB18[] U8G_FONT_SECTION("u8g_font_timB18"); |
| lixianyu | 0:d8f4c441e032 | 1946 | extern const u8g_fntpgm_uint8_t u8g_font_timB18r[] U8G_FONT_SECTION("u8g_font_timB18r"); |
| lixianyu | 0:d8f4c441e032 | 1947 | extern const u8g_fntpgm_uint8_t u8g_font_timB24[] U8G_FONT_SECTION("u8g_font_timB24"); |
| lixianyu | 0:d8f4c441e032 | 1948 | extern const u8g_fntpgm_uint8_t u8g_font_timB24r[] U8G_FONT_SECTION("u8g_font_timB24r"); |
| lixianyu | 0:d8f4c441e032 | 1949 | extern const u8g_fntpgm_uint8_t u8g_font_timB24n[] U8G_FONT_SECTION("u8g_font_timB24n"); |
| lixianyu | 0:d8f4c441e032 | 1950 | |
| lixianyu | 0:d8f4c441e032 | 1951 | extern const u8g_fntpgm_uint8_t u8g_font_timR08[] U8G_FONT_SECTION("u8g_font_timR08"); |
| lixianyu | 0:d8f4c441e032 | 1952 | extern const u8g_fntpgm_uint8_t u8g_font_timR08r[] U8G_FONT_SECTION("u8g_font_timR08r"); |
| lixianyu | 0:d8f4c441e032 | 1953 | extern const u8g_fntpgm_uint8_t u8g_font_timR10[] U8G_FONT_SECTION("u8g_font_timR10"); |
| lixianyu | 0:d8f4c441e032 | 1954 | extern const u8g_fntpgm_uint8_t u8g_font_timR10r[] U8G_FONT_SECTION("u8g_font_timR10r"); |
| lixianyu | 0:d8f4c441e032 | 1955 | extern const u8g_fntpgm_uint8_t u8g_font_timR12[] U8G_FONT_SECTION("u8g_font_timR12"); |
| lixianyu | 0:d8f4c441e032 | 1956 | extern const u8g_fntpgm_uint8_t u8g_font_timR12r[] U8G_FONT_SECTION("u8g_font_timR12r"); |
| lixianyu | 0:d8f4c441e032 | 1957 | extern const u8g_fntpgm_uint8_t u8g_font_timR14[] U8G_FONT_SECTION("u8g_font_timR14"); |
| lixianyu | 0:d8f4c441e032 | 1958 | extern const u8g_fntpgm_uint8_t u8g_font_timR14r[] U8G_FONT_SECTION("u8g_font_timR14r"); |
| lixianyu | 0:d8f4c441e032 | 1959 | extern const u8g_fntpgm_uint8_t u8g_font_timR18[] U8G_FONT_SECTION("u8g_font_timR18"); |
| lixianyu | 0:d8f4c441e032 | 1960 | extern const u8g_fntpgm_uint8_t u8g_font_timR18r[] U8G_FONT_SECTION("u8g_font_timR18r"); |
| lixianyu | 0:d8f4c441e032 | 1961 | extern const u8g_fntpgm_uint8_t u8g_font_timR24[] U8G_FONT_SECTION("u8g_font_timR24"); |
| lixianyu | 0:d8f4c441e032 | 1962 | extern const u8g_fntpgm_uint8_t u8g_font_timR24r[] U8G_FONT_SECTION("u8g_font_timR24r"); |
| lixianyu | 0:d8f4c441e032 | 1963 | extern const u8g_fntpgm_uint8_t u8g_font_timR24n[] U8G_FONT_SECTION("u8g_font_timR24n"); |
| lixianyu | 0:d8f4c441e032 | 1964 | |
| lixianyu | 0:d8f4c441e032 | 1965 | /* fontstruct */ |
| lixianyu | 0:d8f4c441e032 | 1966 | |
| lixianyu | 0:d8f4c441e032 | 1967 | extern const u8g_fntpgm_uint8_t u8g_font_p01type[] U8G_FONT_SECTION("u8g_font_p01type"); |
| lixianyu | 0:d8f4c441e032 | 1968 | extern const u8g_fntpgm_uint8_t u8g_font_p01typer[] U8G_FONT_SECTION("u8g_font_p01typer"); |
| lixianyu | 0:d8f4c441e032 | 1969 | extern const u8g_fntpgm_uint8_t u8g_font_p01typen[] U8G_FONT_SECTION("u8g_font_p01typen"); |
| lixianyu | 0:d8f4c441e032 | 1970 | |
| lixianyu | 0:d8f4c441e032 | 1971 | extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[] U8G_FONT_SECTION("u8g_font_lucasfont_alternate"); |
| lixianyu | 0:d8f4c441e032 | 1972 | extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[] U8G_FONT_SECTION("u8g_font_lucasfont_alternater"); |
| lixianyu | 0:d8f4c441e032 | 1973 | extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[] U8G_FONT_SECTION("u8g_font_lucasfont_alternaten"); |
| lixianyu | 0:d8f4c441e032 | 1974 | |
| lixianyu | 0:d8f4c441e032 | 1975 | extern const u8g_fntpgm_uint8_t u8g_font_chikita[] U8G_FONT_SECTION("u8g_font_chikita"); |
| lixianyu | 0:d8f4c441e032 | 1976 | extern const u8g_fntpgm_uint8_t u8g_font_chikitar[] U8G_FONT_SECTION("u8g_font_chikitar"); |
| lixianyu | 0:d8f4c441e032 | 1977 | extern const u8g_fntpgm_uint8_t u8g_font_chikitan[] U8G_FONT_SECTION("u8g_font_chikitan"); |
| lixianyu | 0:d8f4c441e032 | 1978 | |
| lixianyu | 0:d8f4c441e032 | 1979 | extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[] U8G_FONT_SECTION("u8g_font_pixelle_micro"); |
| lixianyu | 0:d8f4c441e032 | 1980 | extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[] U8G_FONT_SECTION("u8g_font_pixelle_micror"); |
| lixianyu | 0:d8f4c441e032 | 1981 | extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[] U8G_FONT_SECTION("u8g_font_pixelle_micron"); |
| lixianyu | 0:d8f4c441e032 | 1982 | |
| lixianyu | 0:d8f4c441e032 | 1983 | extern const u8g_fntpgm_uint8_t u8g_font_trixel_square[] U8G_FONT_SECTION("u8g_font_trixel_square"); |
| lixianyu | 0:d8f4c441e032 | 1984 | extern const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[] U8G_FONT_SECTION("u8g_font_trixel_squarer"); |
| lixianyu | 0:d8f4c441e032 | 1985 | extern const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[] U8G_FONT_SECTION("u8g_font_trixel_squaren"); |
| lixianyu | 0:d8f4c441e032 | 1986 | |
| lixianyu | 0:d8f4c441e032 | 1987 | extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[] U8G_FONT_SECTION("u8g_font_robot_de_niro"); |
| lixianyu | 0:d8f4c441e032 | 1988 | extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[] U8G_FONT_SECTION("u8g_font_robot_de_niror"); |
| lixianyu | 0:d8f4c441e032 | 1989 | extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[] U8G_FONT_SECTION("u8g_font_robot_de_niron"); |
| lixianyu | 0:d8f4c441e032 | 1990 | |
| lixianyu | 0:d8f4c441e032 | 1991 | extern const u8g_fntpgm_uint8_t u8g_font_baby[] U8G_FONT_SECTION("u8g_font_baby"); |
| lixianyu | 0:d8f4c441e032 | 1992 | extern const u8g_fntpgm_uint8_t u8g_font_babyr[] U8G_FONT_SECTION("u8g_font_babyr"); |
| lixianyu | 0:d8f4c441e032 | 1993 | extern const u8g_fntpgm_uint8_t u8g_font_babyn[] U8G_FONT_SECTION("u8g_font_babyn"); |
| lixianyu | 0:d8f4c441e032 | 1994 | |
| lixianyu | 0:d8f4c441e032 | 1995 | extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07[] U8G_FONT_SECTION("u8g_font_blipfest_07"); |
| lixianyu | 0:d8f4c441e032 | 1996 | extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[] U8G_FONT_SECTION("u8g_font_blipfest_07r"); |
| lixianyu | 0:d8f4c441e032 | 1997 | extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[] U8G_FONT_SECTION("u8g_font_blipfest_07n"); |
| lixianyu | 0:d8f4c441e032 | 1998 | |
| lixianyu | 0:d8f4c441e032 | 1999 | /* profont */ |
| lixianyu | 0:d8f4c441e032 | 2000 | |
| lixianyu | 0:d8f4c441e032 | 2001 | extern const u8g_fntpgm_uint8_t u8g_font_profont10[] U8G_FONT_SECTION("u8g_font_profont10"); |
| lixianyu | 0:d8f4c441e032 | 2002 | extern const u8g_fntpgm_uint8_t u8g_font_profont10r[] U8G_FONT_SECTION("u8g_font_profont10r"); |
| lixianyu | 0:d8f4c441e032 | 2003 | extern const u8g_fntpgm_uint8_t u8g_font_profont11[] U8G_FONT_SECTION("u8g_font_profont11"); |
| lixianyu | 0:d8f4c441e032 | 2004 | extern const u8g_fntpgm_uint8_t u8g_font_profont11r[] U8G_FONT_SECTION("u8g_font_profont11r"); |
| lixianyu | 0:d8f4c441e032 | 2005 | extern const u8g_fntpgm_uint8_t u8g_font_profont12[] U8G_FONT_SECTION("u8g_font_profont12"); |
| lixianyu | 0:d8f4c441e032 | 2006 | extern const u8g_fntpgm_uint8_t u8g_font_profont12r[] U8G_FONT_SECTION("u8g_font_profont12r"); |
| lixianyu | 0:d8f4c441e032 | 2007 | extern const u8g_fntpgm_uint8_t u8g_font_profont15[] U8G_FONT_SECTION("u8g_font_profont15"); |
| lixianyu | 0:d8f4c441e032 | 2008 | extern const u8g_fntpgm_uint8_t u8g_font_profont15r[] U8G_FONT_SECTION("u8g_font_profont15r"); |
| lixianyu | 0:d8f4c441e032 | 2009 | extern const u8g_fntpgm_uint8_t u8g_font_profont17[] U8G_FONT_SECTION("u8g_font_profont17"); |
| lixianyu | 0:d8f4c441e032 | 2010 | extern const u8g_fntpgm_uint8_t u8g_font_profont17r[] U8G_FONT_SECTION("u8g_font_profont17r"); |
| lixianyu | 0:d8f4c441e032 | 2011 | extern const u8g_fntpgm_uint8_t u8g_font_profont22[] U8G_FONT_SECTION("u8g_font_profont22"); |
| lixianyu | 0:d8f4c441e032 | 2012 | extern const u8g_fntpgm_uint8_t u8g_font_profont22r[] U8G_FONT_SECTION("u8g_font_profont22r"); |
| lixianyu | 0:d8f4c441e032 | 2013 | extern const u8g_fntpgm_uint8_t u8g_font_profont29[] U8G_FONT_SECTION("u8g_font_profont29"); |
| lixianyu | 0:d8f4c441e032 | 2014 | extern const u8g_fntpgm_uint8_t u8g_font_profont29r[] U8G_FONT_SECTION("u8g_font_profont29r"); |
| lixianyu | 0:d8f4c441e032 | 2015 | |
| lixianyu | 0:d8f4c441e032 | 2016 | |
| lixianyu | 0:d8f4c441e032 | 2017 | #ifdef __cplusplus |
| lixianyu | 0:d8f4c441e032 | 2018 | } |
| lixianyu | 0:d8f4c441e032 | 2019 | #endif |
| lixianyu | 0:d8f4c441e032 | 2020 | |
| lixianyu | 0:d8f4c441e032 | 2021 | #endif /* _U8G_H */ |
| lixianyu | 0:d8f4c441e032 | 2022 | |
| lixianyu | 0:d8f4c441e032 | 2023 |