Adafruit GFX Library
Adafruit_GrayOLED.h
Go to the documentation of this file.
1 
24 #ifndef _Adafruit_GRAYOLED_H_
25 #define _Adafruit_GRAYOLED_H_
26 
27 #if !defined(__AVR_ATtiny85__) // Not for ATtiny, at all
28 
29 #include <Adafruit_GFX.h>
30 #include <Adafruit_I2CDevice.h>
31 #include <Adafruit_SPIDevice.h>
32 #include <SPI.h>
33 #include <Wire.h>
34 
35 #define GRAYOLED_SETCONTRAST 0x81
36 #define GRAYOLED_NORMALDISPLAY 0xA6
37 #define GRAYOLED_INVERTDISPLAY 0xA7
38 
39 #define MONOOLED_BLACK 0
40 #define MONOOLED_WHITE 1
41 #define MONOOLED_INVERSE 2
42 
43 
48 public:
49  Adafruit_GrayOLED(uint8_t bpp, uint16_t w, uint16_t h, TwoWire *twi = &Wire,
50  int8_t rst_pin = -1, uint32_t preclk = 400000,
51  uint32_t postclk = 100000);
52  Adafruit_GrayOLED(uint8_t bpp, uint16_t w, uint16_t h, int8_t mosi_pin,
53  int8_t sclk_pin, int8_t dc_pin, int8_t rst_pin,
54  int8_t cs_pin);
55  Adafruit_GrayOLED(uint8_t bpp, uint16_t w, uint16_t h, SPIClass *spi,
56  int8_t dc_pin, int8_t rst_pin, int8_t cs_pin,
57  uint32_t bitrate = 8000000UL);
58 
59  ~Adafruit_GrayOLED(void);
60 
65  virtual void display(void) = 0;
66  void clearDisplay(void);
67  void invertDisplay(bool i);
68  void setContrast(uint8_t contrastlevel);
69  void drawPixel(int16_t x, int16_t y, uint16_t color);
70  bool getPixel(int16_t x, int16_t y);
71  uint8_t *getBuffer(void);
72 
73  void oled_command(uint8_t c);
74  bool oled_commandList(const uint8_t *c, uint8_t n);
75 
76 protected:
77  bool _init(uint8_t i2caddr = 0x3C, bool reset = true);
78 
79  Adafruit_SPIDevice *spi_dev = NULL;
80  Adafruit_I2CDevice *i2c_dev = NULL;
81  int32_t i2c_preclk = 400000,
82  i2c_postclk = 100000;
83  uint8_t *buffer = NULL;
84 
85  int16_t window_x1,
86  window_y1,
87  window_x2,
88  window_y2;
89 
90  int dcPin,
91  csPin,
92  rstPin;
93 
94  uint8_t _bpp = 1;
95 private:
96  TwoWire *_theWire = NULL;
97 };
98 
99 #endif // end __AVR_ATtiny85__
100 #endif // _Adafruit_GrayOLED_H_
uint8_t _bpp
Bits per pixel color for this display.
Definition: Adafruit_GrayOLED.h:94
int16_t window_x2
Dirty tracking window maximum x.
Definition: Adafruit_GrayOLED.h:85
int csPin
The Arduino pin connected to CS (for SPI)
Definition: Adafruit_GrayOLED.h:90
bool _init(uint8_t i2caddr=0x3C, bool reset=true)
Allocate RAM for image buffer, initialize peripherals and pins. Note that subclasses must call this b...
Definition: Adafruit_GrayOLED.cpp:224
Definition: Adafruit_GFX.h:18
virtual void display(void)=0
The function that sub-classes define that writes out the buffer to the display over I2C or SPI...
void drawPixel(int16_t x, int16_t y, uint16_t color)
Set/clear/invert a single pixel. This is also invoked by the Adafruit_GFX library in generating many ...
Definition: Adafruit_GrayOLED.cpp:285
int16_t window_y1
Dirty tracking window minimum y.
Definition: Adafruit_GrayOLED.h:85
Adafruit_SPIDevice * spi_dev
The SPI interface BusIO device.
Definition: Adafruit_GrayOLED.h:79
bool oled_commandList(const uint8_t *c, uint8_t n)
Issue multiple bytes of commands OLED, using I2C or hard/soft SPI as needed.
Definition: Adafruit_GrayOLED.cpp:187
int16_t window_y2
Dirty tracking window maximum y.
Definition: Adafruit_GrayOLED.h:85
int16_t window_x1
Dirty tracking window minimum x.
Definition: Adafruit_GrayOLED.h:85
Adafruit_GrayOLED(uint8_t bpp, uint16_t w, uint16_t h, TwoWire *twi=&Wire, int8_t rst_pin=-1, uint32_t preclk=400000, uint32_t postclk=100000)
Constructor for I2C-interfaced OLED displays.
Definition: Adafruit_GrayOLED.cpp:64
void invertDisplay(bool i)
Enable or disable display invert mode (white-on-black vs black-on-white). Handy for testing! ...
Definition: Adafruit_GrayOLED.cpp:407
void setContrast(uint8_t contrastlevel)
Adjust the display contrast.
Definition: Adafruit_GrayOLED.cpp:417
uint8_t * buffer
Internal 1:1 framebuffer of display mem.
Definition: Adafruit_GrayOLED.h:83
~Adafruit_GrayOLED(void)
Destructor for Adafruit_GrayOLED object.
Definition: Adafruit_GrayOLED.cpp:150
void clearDisplay(void)
Clear contents of display buffer (set all pixels to off).
Definition: Adafruit_GrayOLED.cpp:344
uint8_t * getBuffer(void)
Get base address of display buffer for direct reading or writing.
Definition: Adafruit_GrayOLED.cpp:391
int rstPin
The Arduino pin connected to reset (-1 if unused)
Definition: Adafruit_GrayOLED.h:90
int32_t i2c_preclk
Configurable &#39;high speed&#39; I2C rate.
Definition: Adafruit_GrayOLED.h:81
bool getPixel(int16_t x, int16_t y)
Return color of a single pixel in display buffer.
Definition: Adafruit_GrayOLED.cpp:364
Class that stores state and functions for interacting with generic grayscale OLED displays...
Definition: Adafruit_GrayOLED.h:47
int32_t i2c_postclk
Configurable &#39;low speed&#39; I2C rate.
Definition: Adafruit_GrayOLED.h:82
void oled_command(uint8_t c)
Issue single command byte to OLED, using I2C or hard/soft SPI as needed.
Definition: Adafruit_GrayOLED.cpp:168
int dcPin
The Arduino pin connected to D/C (for SPI)
Definition: Adafruit_GrayOLED.h:90
Adafruit_I2CDevice * i2c_dev
The I2C interface BusIO device.
Definition: Adafruit_GrayOLED.h:80