SSD1306 OLED display driver  1.3.5
This library is developed to control SSD1306 i2c/spi OLED display
ssd1306_i2c_conf.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 */
19 
24 #ifndef _SSD1306_I2C_CONF_H_
25 #define _SSD1306_I2C_CONF_H_
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
36 #ifndef SSD1306_SA
37 
43  #define SSD1306_SA 0x3C // Slave address
44 #endif
45 
46 
47 #if defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
48 
52  #define SSD1306_EMBEDDED_I2C
53 
55  #define SSD1306_I2C_SW_SUPPORTED
56 
57  #if defined(ARDUINO_AVR_DIGISPARK)
58 
59  #define SSD1306_WIRE_SUPPORTED
60  #endif
61 #else
62 
63  #define SSD1306_WIRE_SUPPORTED
64 
65  #if defined(ARDUINO_AVR_DIGISPARKPRO)
66  /* Wire.setClock() is not supported by Digispark PRO */
67  #else
68  #define SSD1306_WIRE_CLOCK_CONFIGURABLE
69  #endif
70  #if defined(ESP8266) || defined(ESP32) || defined(ESP31B)
71  /* SW implementation of i2c isn't supported on ESP platforms */
72  #elif defined(ARDUINO_AVR_DIGISPARKPRO)
73  /* SW implementation of i2c isn't supported on Digispark PRO */
74  #elif defined(ARDUINO_ARCH_SAMD)
75  /* SW implementation of i2c isn't supported for SAMD architecture */
76  #else
77 
78  #define SSD1306_I2C_SW_SUPPORTED
79  #endif
80 #endif
81 
82 #if defined(__AVR_ATtiny25__) | defined(__AVR_ATtiny45__) | defined(__AVR_ATtiny85__)
83  #ifndef SSD1306_SCL
84  #define SSD1306_SCL 3
85  #endif
86  #ifndef SSD1306_SDA
87  #define SSD1306_SDA 4
88  #endif
89 #else
90  #ifndef SSD1306_SCL
91  #define SSD1306_SCL 5 // SCL, Pin A5 on SSD1306 Board
92  #endif
93  #ifndef SSD1306_SDA
94  #define SSD1306_SDA 4 // SDA, Pin A4 on SSD1306 Board
95  #endif
96 #endif
97 
102 #ifdef __cplusplus
103 }
104 #endif
105 
106 #endif