33 #include "v2/lcd/base/display.h" 53 template <
typename... Args>
177 uint8_t m_startLine = 0;
232 void beginController();
237 void endController();
239 #ifdef CONFIG_LCDGFX_PLATFORM_SPI 253 explicit DisplaySSD1306_64x32_SPI(int8_t rstPin,
const SPlatformSpiConfig &config = {-1, {-1}, -1, 0U, -1, -1})
255 , m_spi(*
this, config.dc,
257 config.busId, {config.cs}, config.
dc, config.frequency ?: static_cast<uint32_t>(10000000), config.scl, config.sda})
264 void begin()
override;
291 template <
typename... Args>
294 , m_spi(*this, dcPin, data...)
319 #ifdef CONFIG_LCDGFX_PLATFORM_I2C 333 explicit DisplaySSD1306_64x32_I2C(int8_t rstPin,
const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0U})
337 config.frequency ?: 400000U})
344 void begin()
override;
370 template <
typename... Args>
373 , m_i2c(*this, -1, data...)
418 template <
typename... Args>
421 , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
467 void beginController();
472 void endController();
474 #ifdef CONFIG_LCDGFX_PLATFORM_SPI 488 explicit DisplaySSD1306_64x48_SPI(int8_t rstPin,
const SPlatformSpiConfig &config = {-1, {-1}, -1, 0U, -1, -1})
490 , m_spi(*
this, config.dc,
492 config.busId, {config.cs}, config.
dc, config.frequency ?: static_cast<uint32_t>(10000000), config.scl, config.sda})
499 void begin()
override;
526 template <
typename... Args>
529 , m_spi(*this, dcPin, data...)
554 #ifdef CONFIG_LCDGFX_PLATFORM_I2C 568 explicit DisplaySSD1306_64x48_I2C(int8_t rstPin,
const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0U})
572 config.frequency ?: 400000U})
579 void begin()
override;
605 template <
typename... Args>
608 , m_i2c(*this, -1, data...)
653 template <
typename... Args>
656 , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
702 void beginController();
707 void endController();
709 #ifdef CONFIG_LCDGFX_PLATFORM_SPI 723 explicit DisplaySSD1306_128x32_SPI(int8_t rstPin,
const SPlatformSpiConfig &config = {-1, {-1}, -1, 0U, -1, -1})
725 , m_spi(*
this, config.dc,
727 config.busId, {config.cs}, config.
dc, config.frequency ?: static_cast<uint32_t>(10000000), config.scl, config.sda})
734 void begin()
override;
761 template <
typename... Args>
764 , m_spi(*this, dcPin, data...)
789 #ifdef CONFIG_LCDGFX_PLATFORM_I2C 803 explicit DisplaySSD1306_128x32_I2C(int8_t rstPin,
const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0U})
807 config.frequency ?: 400000U})
814 void begin()
override;
840 template <
typename... Args>
843 , m_i2c(*this, -1, data...)
888 template <
typename... Args>
891 , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
937 void beginController();
942 void endController();
944 #ifdef CONFIG_LCDGFX_PLATFORM_SPI 958 explicit DisplaySSD1306_128x64_SPI(int8_t rstPin,
const SPlatformSpiConfig &config = {-1, {-1}, -1, 0U, -1, -1})
960 , m_spi(*
this, config.dc,
962 config.busId, {config.cs}, config.
dc, config.frequency ?: static_cast<uint32_t>(10000000), config.scl, config.sda})
969 void begin()
override;
996 template <
typename... Args>
999 , m_spi(*this, dcPin, data...)
1024 #ifdef CONFIG_LCDGFX_PLATFORM_I2C 1038 explicit DisplaySSD1306_128x64_I2C(int8_t rstPin,
const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0U})
1042 config.frequency ?: 400000U})
1049 void begin()
override;
1054 void end()
override;
1075 template <
typename... Args>
1078 , m_i2c(*this, -1, data...)
1123 template <
typename... Args>
1126 , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
1151 #include "lcd_ssd1306.inl" DisplaySSD1306_64x32_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 64x32 lcd display over spi (based on SSD1306 controller): 1-bit mode.
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
DisplaySSD1306_128x32_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 128x32 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
Template class implements SSD1306 64x48 lcd display in 1 bit mode over custom interface implementatio...
void setStartLine(uint8_t line)
Sets start line in GDRAM to begin display content with.
uint8_t lcduint_t
internal int type, used by the library.
DisplaySSD1306_64x48_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 64x48 lcd display over spi (based on SSD1306 controller): 1-bit mode.
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
Class implements basic functions for 1-bit mode of SSD1306-based displays.
DisplaySSD1306_128x64(I &intf, int8_t rstPin)
Creates instance of SSD1306 128x64 controller class for 1-bit mode.
void displayOff()
Turns off the display (enters sleep mode).
DisplaySSD1306_128x64_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 128x64 lcd display over spi (based on SSD1306 controller): 1-bit mode.
void flipVertical(uint8_t mode)
Performs vertical flip.
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
DisplaySSD1306(I &intf, int8_t rstPin)
Creates instance of SSD1306 controller class for 1-bit mode.
Template class implements SSD1306 128x64 lcd display in 1 bit mode over custom I2C implementation (us...
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
DisplaySSD1306_64x48_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 64x48 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
DisplaySSD1306_64x48_CustomI2C(int8_t rstPin, Args &&... data)
Inits 64x48 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
DisplaySSD1306_128x64_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 128x64 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
void end() override
Closes connection to display.
SSD1306 HAL IO communication functions.
DisplaySSD1306_64x32_CustomI2C(int8_t rstPin, Args &&... data)
Inits 64x32 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Template class implements SSD1306 128x32 lcd display in 1 bit mode over custom interface implementati...
DisplaySSD1306_128x32_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 128x32 lcd display over spi (based on SSD1306 controller): 1-bit mode.
void end() override
Closes connection to display.
uint8_t getStartLine()
Returns the current start line offset in GDRAM.
InterfaceSSD1306(NanoDisplayBase< InterfaceSSD1306< I >> &base, int8_t dc, Args &&... data)
Creates instance of interface to LCD display.
int8_t m_rstPin
indicates hardware reset pin used, -1 if it is not required
void nextBlock()
Switches to the start of next RAM page for the block, specified by startBlock().
void end() override
Closes connection to display.
void end() override
Closes connection to display.
void startBlock(lcduint_t x, lcduint_t y, lcduint_t w)
Sets block in RAM of lcd display controller to write data to.
void endBlock()
Closes data send operation to lcd display.
Template class implements SSD1306 64x32 lcd display in 1 bit mode over custom SPI implementation (use...
DisplaySSD1306_64x48(I &intf, int8_t rstPin)
Creates instance of SSD1306 64x48 controller class for 1-bit mode.
void end() override
Closes connection to display.
void flipHorizontal(uint8_t mode)
Performs horizontal flip.
void invertMode()
Switches display to inverted mode.
NanoDisplayOps1 is template class for 1-bit operations.
Class implements basic functions for 1-bit mode of SSD1306-based displays.
Template class implements SSD1306 64x32 lcd display in 1 bit mode over custom I2C implementation (use...
void end() override
Closes connection to display.
Template class implements SSD1306 64x48 lcd display in 1 bit mode over custom I2C implementation (use...
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
void end() override
Closes connection to display.
Class implements interface functions to SSD1306 displays.
void end() override
Closes connection to display.
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
DisplaySSD1306_64x32(I &intf, int8_t rstPin)
Creates instance of SSD1306 64x32 controller class for 1-bit mode.
DisplaySSD1306_128x32_CustomI2C(int8_t rstPin, Args &&... data)
Inits 128x32 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
void end() override
Closes connection to display.
void end() override
Closes connection to display.
Template class implements SSD1306 64x32 lcd display in 1 bit mode over custom interface implementatio...
void commandStart()
Starts communication with LCD display in command mode.
void setDataMode(uint8_t mode)
Enables either data or command mode on SPI bus.
DisplaySSD1306_128x64_CustomI2C(int8_t rstPin, Args &&... data)
Inits 128x64 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Template class implements SSD1306 128x64 lcd display in 1 bit mode over custom SPI implementation (us...
void setContrast(uint8_t contrast)
Sets display contrast (brightness level).
DisplaySSD1306_128x32(I &intf, int8_t rstPin)
Creates instance of SSD1306 128x32 controller class for 1-bit mode.
Template class implements SSD1306 128x64 lcd display in 1 bit mode over custom interface implementati...
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
void end() override
Closes connection to display.
void displayOn()
Turns on the display, resuming normal output.
Class implements basic functions for 1-bit mode of SSD1306-based displays.
Template class implements SSD1306 64x48 lcd display in 1 bit mode over custom SPI implementation (use...
Class implements basic functions for 1-bit mode of SSD1306-based displays.
NanoCanvasOps provides operations for drawing in memory buffer.
Class implements basic display operations for the library: It stores reference to communication inter...
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
void begin() override
Initializes SSD1306 lcd in 1-bit mode.
Template class implements SSD1306 128x32 lcd display in 1 bit mode over custom SPI implementation (us...
void normalMode()
Switches display back to normal (non-inverted) mode.
void end() override
Closes connection to display.
Class implements basic functions for 1-bit mode of SSD1306-based displays.
Template class implements SSD1306 128x32 lcd display in 1 bit mode over custom I2C implementation (us...
DisplaySSD1306_64x32_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 64x32 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
void begin() override
Initializes SSD1306 lcd in 1-bit mode.