SSD1306 I2C Display Driver  1.1.0
This library is developed to control SSD1306 I2C OLED Display
ssd1306.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2016-2017 Alexey Dynda
3 
4  This file is part of SSD1306 library.
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
24 #ifndef _SSD1306_H_
25 #define _SSD1306_H_
26 
27 #include "nano_gfx_types.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
34 // DISPLAY CONTROL FUNCTIONS
36 
46 
51 
55 static inline void ssd1306_init() { ssd1306_128x64_i2c_init(); }
56 
60 void ssd1306_displayOff();
61 
65 void ssd1306_displayOn();
66 
71 void ssd1306_invertMode();
72 
76 void ssd1306_normalMode();
77 
81 uint8_t ssd1306_displayHeight();
82 
87 // DIRECT GRAPH FUNCTIONS
90 
101 void ssd1306_setPos(uint8_t x, uint8_t y);
102 
108 void ssd1306_sendData(uint8_t data);
109 
113 void ssd1306_fillScreen(uint8_t fill_Data);
114 
118 void ssd1306_clearScreen();
119 
124 void ssd1306_negativeMode();
125 
130 void ssd1306_positiveMode();
131 
139 void ssd1306_charF6x8(uint8_t x, uint8_t y,
140  const char ch[],
141  EFontStyle style
142 #ifdef __cplusplus
143  = STYLE_NORMAL
144 #endif
145  );
146 
157 void ssd1306_setFont6x8(const uint8_t * progmemFont);
158 
171 void ssd1306_putPixel(uint8_t x, uint8_t y);
172 
187 void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels);
188 
196 void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
197 
204 void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2);
205 
212 void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2);
213 
230 void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
231 
235 #define ssd1306_drawCanvas(x, y, w, h, buf) ssd1306_drawBuffer(x, y, w, h, buf)
236 
246 void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
247 
248 
257 void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h);
258 
259 
267 void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite);
268 
274 void ssd1306_drawSprite(SPRITE *sprite);
275 
280 void ssd1306_eraseSprite(SPRITE *sprite);
281 
286 void ssd1306_eraseTrace(SPRITE *sprite);
287 
296 SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data);
297 
304 void ssd1306_replaceSprite(SPRITE *sprite, const uint8_t *data);
305 
310 // HIGH-LEVEL GRAPH FUNCTIONS
313 
322 typedef struct
323 {
325  const char **items;
327  uint8_t count;
329  uint8_t selection;
331  uint8_t oldSelection;
333  uint8_t scrollPosition;
334 } SAppMenu;
335 
345 void ssd1306_createMenu(SAppMenu *menu, const char **items, uint8_t count);
346 
353 void ssd1306_showMenu(SAppMenu *menu);
354 
361 void ssd1306_updateMenu(SAppMenu *menu);
362 
363 
370 uint8_t ssd1306_menuSelection(SAppMenu *menu);
371 
372 
380 void ssd1306_menuDown(SAppMenu *menu);
381 
382 
390 void ssd1306_menuUp(SAppMenu *menu);
391 
396 #ifdef __cplusplus
397 }
398 #endif
399 
400 #endif // _SSD1306_H_
void ssd1306_showMenu(SAppMenu *menu)
Definition: ssd1306_menu.c:64
void ssd1306_charF6x8(uint8_t x, uint8_t y, const char ch[], EFontStyle style=STYLE_NORMAL)
Definition: ssd1306.cpp:140
void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:252
void ssd1306_negativeMode()
Definition: ssd1306.cpp:409
void ssd1306_displayOff()
Definition: ssd1306.cpp:129
void ssd1306_128x32_i2c_init()
Definition: ssd1306.cpp:57
uint8_t ssd1306_displayHeight()
Definition: ssd1306.cpp:33
void ssd1306_replaceSprite(SPRITE *sprite, const uint8_t *data)
Definition: ssd1306.cpp:394
void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2)
Definition: ssd1306.cpp:205
void ssd1306_setFont6x8(const uint8_t *progmemFont)
Definition: ssd1306.cpp:182
void ssd1306_displayOn()
Definition: ssd1306.cpp:135
static void ssd1306_init()
Definition: ssd1306.h:55
void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2)
Definition: ssd1306.cpp:216
void ssd1306_128x64_i2c_init()
Definition: ssd1306.cpp:46
void ssd1306_positiveMode()
Definition: ssd1306.cpp:414
void ssd1306_updateMenu(SAppMenu *menu)
Definition: ssd1306_menu.c:75
void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels)
Definition: ssd1306.cpp:196
SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data)
Definition: ssd1306.cpp:389
void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite)
Definition: ssd1306.cpp:284
void ssd1306_fillScreen(uint8_t fill_Data)
Definition: ssd1306.cpp:99
void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
Definition: ssd1306.cpp:229
uint8_t selection
currently selected item. Internally updated.
Definition: ssd1306.h:329
void ssd1306_createMenu(SAppMenu *menu, const char **items, uint8_t count)
Definition: ssd1306_menu.c:28
void ssd1306_clearScreen()
Definition: ssd1306.cpp:114
uint8_t scrollPosition
position of menu scrolling. Internally updated
Definition: ssd1306.h:333
void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
Definition: ssd1306.cpp:268
uint8_t count
count of menu items in the menu
Definition: ssd1306.h:327
void ssd1306_invertMode()
Definition: ssd1306.cpp:399
void ssd1306_drawSprite(SPRITE *sprite)
Definition: ssd1306.cpp:297
void ssd1306_eraseTrace(SPRITE *sprite)
Definition: ssd1306.cpp:350
void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:237
void ssd1306_eraseSprite(SPRITE *sprite)
Definition: ssd1306.cpp:326
void ssd1306_sendData(uint8_t data)
Definition: ssd1306.cpp:91
void ssd1306_setPos(uint8_t x, uint8_t y)
Definition: ssd1306.cpp:81
void ssd1306_normalMode()
Definition: ssd1306.cpp:404
void ssd1306_putPixel(uint8_t x, uint8_t y)
Definition: ssd1306.cpp:187
uint8_t ssd1306_menuSelection(SAppMenu *menu)
Definition: ssd1306_menu.c:94
void ssd1306_menuDown(SAppMenu *menu)
Definition: ssd1306_menu.c:99
EFontStyle
void ssd1306_menuUp(SAppMenu *menu)
Definition: ssd1306_menu.c:111
uint8_t oldSelection
selected item, when last redraw operation was performed. Internally updated.
Definition: ssd1306.h:331
const char ** items
list of menu items of the menu
Definition: ssd1306.h:325