SSD1306 OLED display driver  1.3.2
This library is developed to control SSD1306 i2c/spi OLED display
tiny_ssd1306.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 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 _TINY_SSD1306_H_
25 #define _TINY_SSD1306_H_
26 
27 #include "ssd1306.h"
28 #include "i2c/ssd1306_i2c.h"
29 #include "spi/ssd1306_spi.h"
30 #include <stdint.h>
31 #include "Print.h"
32 
33 
35 #define SSD1306_128x64 &ssd1306_128x64_init
36 
37 #define SSD1306_128x32 &ssd1306_128x32_init
38 
39 #define SH1106_128x64 &sh1106_128x64_init
40 
55 class TinySSD1306: public Print
56 {
57 public:
64  explicit TinySSD1306( InitFunction lcd ) { m_init = lcd; };
65 
70  void begin() { m_init(); };
71 
79  void beginI2C(int8_t scl = -1, int8_t sda = -1, uint8_t addr = 0) { ssd1306_i2cInitEx(scl, sda, addr); m_init(); };
80 
88  void beginSPI(int8_t csPin = -1, int8_t dcPin = -1) { ssd1306_spiInit(csPin, dcPin); m_init(); };
89 
93  void off() { ssd1306_displayOff(); };
94 
98  void on() { ssd1306_displayOn(); };
99 
105 
110 
114  uint8_t height() { ssd1306_displayHeight(); };
115 
119  uint8_t width() { ssd1306_displayWidth(); };
120 
126  void setCursor(uint8_t x, uint8_t y) { m_xpos = x; m_ypos = y; }
127 
132  void fill(uint8_t fill_Data) { ssd1306_fillScreen(fill_Data); };
133 
137  void clear() { ssd1306_clearScreen(); };
138 
144 
150 
159  uint8_t charF6x8(uint8_t x, uint8_t y,
160  const char ch[],
161  EFontStyle style = STYLE_NORMAL )
162  { ssd1306_charF6x8(x, y, ch, style); };
163 
172  uint8_t charF12x16(uint8_t xpos, uint8_t y,
173  const char ch[],
174  EFontStyle style = STYLE_NORMAL)
175  { ssd1306_charF12x16( xpos, y, ch, style ); };
176 
177 
190  uint8_t charF6x8_eol(uint8_t left, uint8_t y,
191  const char ch[],
192  EFontStyle style,
193  uint8_t right)
194  { ssd1306_charF6x8_eol(left, y, ch, style, right); };
195 
208  void putPixel(uint8_t x, uint8_t y) { ssd1306_putPixel(x,y); };
209 
224  void putPixels(uint8_t x, uint8_t y, uint8_t pixels) { ssd1306_putPixels(x,y,pixels); };
225 
233  void drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2) { ssd1306_drawRect(x1, y1, x2, y2); };
234 
241  void drawHLine(uint8_t x1, uint8_t y1, uint8_t x2) { ssd1306_drawHLine(x1, y1, x2); };
242 
249  void drawVLine(uint8_t x1, uint8_t y1, uint8_t y2) { ssd1306_drawVLine(x1, y1, y2); };
250 
267  void drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf) { ssd1306_drawBuffer(x,y,w,h,buf); };
268 
278  void drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf) { ssd1306_drawBitmap(x,y,w,h,buf); };
279 
288  void clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h) { ssd1306_clearBlock(x,y,w,h); };
289 
294  virtual size_t write(uint8_t ch);
295 private:
296 
298  InitFunction m_init;
299 
300  uint8_t m_xpos = 0;
301  uint8_t m_ypos = 0;
302 };
303 
304 #endif
305 
uint8_t height()
Definition: tiny_ssd1306.h:114
void drawHLine(uint8_t x1, uint8_t y1, uint8_t x2)
Definition: tiny_ssd1306.h:241
void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:294
void ssd1306_negativeMode()
Definition: ssd1306.cpp:453
void drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
Definition: tiny_ssd1306.h:233
uint8_t charF6x8_eol(uint8_t left, uint8_t y, const char ch[], EFontStyle style, uint8_t right)
Definition: tiny_ssd1306.h:190
void ssd1306_displayOff()
Definition: ssd1306.cpp:78
void begin()
Definition: tiny_ssd1306.h:70
uint8_t ssd1306_displayHeight()
Definition: ssd1306.cpp:36
void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2)
Definition: ssd1306.cpp:238
uint8_t ssd1306_charF6x8_eol(uint8_t left, uint8_t y, const char ch[], EFontStyle style, uint8_t right)
Definition: ssd1306.cpp:202
void ssd1306_displayOn()
Definition: ssd1306.cpp:84
void putPixel(uint8_t x, uint8_t y)
Definition: tiny_ssd1306.h:208
void putPixels(uint8_t x, uint8_t y, uint8_t pixels)
Definition: tiny_ssd1306.h:224
void clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
Definition: tiny_ssd1306.h:288
void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2)
Definition: ssd1306.cpp:249
void ssd1306_positiveMode()
Definition: ssd1306.cpp:458
TinySSD1306(InitFunction lcd)
Definition: tiny_ssd1306.h:64
void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels)
Definition: ssd1306.cpp:230
uint8_t width()
Definition: tiny_ssd1306.h:119
void ssd1306_i2cInitEx(int8_t scl, int8_t sda, int8_t sa)
void fill(uint8_t fill_Data)
Definition: tiny_ssd1306.h:132
void negativeMode()
Definition: tiny_ssd1306.h:143
void ssd1306_fillScreen(uint8_t fill_Data)
Definition: ssd1306.cpp:46
void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
Definition: ssd1306.cpp:270
void(* InitFunction)()
void ssd1306_clearScreen()
Definition: ssd1306.cpp:62
uint8_t charF6x8(uint8_t x, uint8_t y, const char ch[], EFontStyle style=STYLE_NORMAL)
Definition: tiny_ssd1306.h:159
uint8_t ssd1306_charF12x16(uint8_t xpos, uint8_t y, const char ch[], EFontStyle style)
Definition: ssd1306.cpp:131
uint8_t ssd1306_charF6x8(uint8_t x, uint8_t y, const char ch[], EFontStyle style)
Definition: ssd1306.cpp:89
void positiveMode()
Definition: tiny_ssd1306.h:149
void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
Definition: ssd1306.cpp:311
void beginSPI(int8_t csPin=-1, int8_t dcPin=-1)
Initializes default custom spi interface and lcd display.
Definition: tiny_ssd1306.h:88
void ssd1306_invertMode()
Definition: ssd1306.cpp:443
void normalMode()
Definition: tiny_ssd1306.h:109
uint8_t ssd1306_displayWidth()
Definition: ssd1306.cpp:41
void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:278
void setCursor(uint8_t x, uint8_t y)
Definition: tiny_ssd1306.h:126
void ssd1306_normalMode()
Definition: ssd1306.cpp:448
void drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: tiny_ssd1306.h:278
void ssd1306_putPixel(uint8_t x, uint8_t y)
Definition: ssd1306.cpp:222
uint8_t charF12x16(uint8_t xpos, uint8_t y, const char ch[], EFontStyle style=STYLE_NORMAL)
Definition: tiny_ssd1306.h:172
void clear()
Definition: tiny_ssd1306.h:137
EFontStyle
void ssd1306_spiInit(int8_t cesPin, int8_t dcPin)
Definition: ssd1306_spi.cpp:30
void off()
Definition: tiny_ssd1306.h:93
void beginI2C(int8_t scl=-1, int8_t sda=-1, uint8_t addr=0)
Definition: tiny_ssd1306.h:79
void drawVLine(uint8_t x1, uint8_t y1, uint8_t y2)
Definition: tiny_ssd1306.h:249
virtual size_t write(uint8_t ch)
void drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: tiny_ssd1306.h:267
void invertMode()
Definition: tiny_ssd1306.h:104