TR-mbed 1.0
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SSD1308 Class Reference

#include <SSD1308.h>

Inheritance diagram for SSD1308:

Public Member Functions

 SSD1308 (mbed::I2C *i2c, uint8_t address=SSD1308_DEF_SA)
 Constructor.
 
void initialize ()
 High level Init, most settings remain at Power-On reset value.
 
void clearDisplay ()
 clear the display
 
void fillDisplay (uint8_t pattern=0x00, uint8_t start_page=0, uint8_t end_page=MAX_PAGE, uint8_t start_col=0, uint8_t end_col=MAX_COL)
 fill the display
 
void writeBitmap (uint8_t *data, uint8_t start_page=0, uint8_t end_page=MAX_PAGE, uint8_t start_col=0, uint8_t end_col=MAX_COL)
 write a bitmap to the display
 
void writeProgressBar (uint8_t page, uint8_t col, int percentage)
 write a level meter to the display, Width is (PRG_MAX_SCALE + 2) pixels
 
void writeLevelBar (uint8_t page, uint8_t col, int percentage)
 write a level meter to the display, Width is (PRG_MAX_SCALE + 2) pixels
 
void setInverted (bool inverted)
 
int writeChar (char chr)
 Write single character to the display using the 8x8 fontable.
 
void writeBigChar (uint8_t row, uint8_t col, char chr)
 Write large character (16x24 font)
 
void writeString (uint8_t row, uint8_t col, const char *txt)
 Write a string to the display using the 8x8 font.
 
virtual int _putc (int value)
 
virtual int _getc ()
 
void setHorizontalAddressingMode ()
 Set Horizontal Addressing Mode (cursor incr left-to-right, top-to-bottom)
 
void setVerticalAddressingMode ()
 Set Vertical Addressing Mode (cursor incr top-to-bottom, left-to-right)
 
void setPageAddressingMode ()
 Set Page Addressing Mode (cursor incr left-to-right)
 
void setMemoryAddressingMode (uint8_t mode)
 Set Addressing Mode.
 
void setColumnStartForPageAddressingMode (uint8_t column)
 Set Column Start (for Page Addressing Mode only)
 
void setPageStartForPageAddressingMode (uint8_t page)
 Set Page Start (for Page Addressing Mode only)
 
void setColumnAddress (uint8_t start, uint8_t end)
 
void setPageAddress (uint8_t start, uint8_t end)
 
void setDisplayStartLine (uint8_t line)
 Set Display StartLine, takes one byte, 0x00-0x3F.
 
void setContrastControl (uint8_t contrast)
 Set Contrast.
 
void setEntireDisplayOn ()
 Shows All Pixels On.
 
void setEntireDisplayRAM ()
 Shows Pixels as RAM content.
 
void setEntireDisplay (bool on)
 Shows Pixels On or as RAM content.
 
void setMultiplexRatio (uint8_t lines)
 
void setInternalIref ()
 Sets Internal Iref.
 
void setExternalIref ()
 Sets External Iref (default)
 
void setDisplayOn ()
 Enable Display.
 
void setDisplayOff ()
 Disable Display.
 
void setDisplayPower (bool on)
 Enable or Disable Display.
 
void setDisplayNormal ()
 Show White pixels on Black background.
 
void setDisplayInverse ()
 Show Black pixels on White background.
 
void setDisplayBlink (bool on)
 Blink display by fading in and out over a set number of frames.
 
void setDisplayFade (bool on)
 Fade out display in set number of frames.
 
void setDisplayFlip (bool left, bool down)
 Display Flip (Left/Right, Up/Down)
 
void setDisplayOffset (uint8_t offset)
 
void setDisplayClock (uint8_t divideRatio, uint8_t oscFreq)
 
void setPrechargePeriod (uint8_t phase1, uint8_t phase2)
 
void setVcomhDeselectLevel (uint8_t level)
 
void nop ()
 
void setContinuousHorizontalScroll (bool left, uint8_t start_page, uint8_t end_page, uint8_t interval)
 Horizontal scroll by one column per interval.
 
void setContinuousVerticalAndHorizontalScroll (bool left, uint8_t start_page, uint8_t end_page, uint8_t offset, uint8_t interval)
 Horizontal and Vertical scroll by one column per interval.
 
void setDisplayScroll (bool on)
 Activate or Deactivate Horizontal and Vertical scroll.
 
void setVerticalScrollArea (uint8_t topRowsFixed, uint8_t scrollRows)
 Set Vertical scroll area.
 

Detailed Description

Class to control an SSD1308 based oled Display

Example:

#include "mbed.h"
#include "mbed_logo.h"
#include "SSD1308.h"
//Pin Defines for I2C Bus
#define D_SDA p28
#define D_SCL p27
I2C i2c(D_SDA, D_SCL);
// Host PC Communication channels
Serial pc(USBTX, USBRX); // tx, rx
// Instantiate OLED
int main() {
pc.printf("OLED test start\r");
oled.writeString(0, 0, "Hello World !");
// oled.printf("Hello World !");
oled.fillDisplay(0xAA);
oled.setDisplayOff();
wait(1);
oled.setDisplayOn();
oled.clearDisplay();
wait(0.5);
oled.writeBitmap((uint8_t*) mbed_logo);
pc.printf("OLED test done\r\n");
}
#define SSD1308_SA0
Definition SSD1308.h:54
int main()
Definition bench_move_semantics.cpp:51
Definition SSD1308.h:223
void setDisplayOn()
Enable Display.
Definition SSD1308.cpp:838
void setDisplayNormal()
Show White pixels on Black background.
Definition SSD1308.cpp:861
void setDisplayOff()
Disable Display.
Definition SSD1308.cpp:844
void setDisplayInverse()
Show Black pixels on White background.
Definition SSD1308.cpp:867
void fillDisplay(uint8_t pattern=0x00, uint8_t start_page=0, uint8_t end_page=MAX_PAGE, uint8_t start_col=0, uint8_t end_col=MAX_COL)
fill the display
Definition SSD1308.cpp:140
void writeString(uint8_t row, uint8_t col, const char *txt)
Write a string to the display using the 8x8 font.
Definition SSD1308.cpp:446
void writeBitmap(uint8_t *data, uint8_t start_page=0, uint8_t end_page=MAX_PAGE, uint8_t start_col=0, uint8_t end_col=MAX_COL)
write a bitmap to the display
Definition SSD1308.cpp:196
void clearDisplay()
clear the display
Definition SSD1308.cpp:91
I2C i2c(PB_9, PB_8)
int RealScalar int RealScalar int RealScalar * pc
Definition level1_cplx_impl.h:119
const uint8_t mbed_logo[]
Definition mbed_logo.h:7

Constructor & Destructor Documentation

◆ SSD1308()

SSD1308::SSD1308 ( mbed::I2C *  i2c,
uint8_t  address = SSD1308_DEF_SA 
)

Constructor.

Parameters
I2C&i2c reference to i2c,
uint8_tdeviceAddress slaveaddress (8bit to use for the controller (0x78 by default, assumes D/C# (pin 13) grounded)
I2C*i2c reference to i2c
uint8_tdeviceAddress slaveaddress

Member Function Documentation

◆ _getc()

virtual int SSD1308::_getc ( )
inlinevirtual

◆ _putc()

virtual int SSD1308::_putc ( int  value)
inlinevirtual

◆ clearDisplay()

void SSD1308::clearDisplay ( )

clear the display

◆ fillDisplay()

void SSD1308::fillDisplay ( uint8_t  pattern = 0x00,
uint8_t  start_page = 0,
uint8_t  end_page = MAX_PAGE,
uint8_t  start_col = 0,
uint8_t  end_col = MAX_COL 
)

fill the display

Parameters
uint8_tpattern fillpattern vertical patch or 8 bits
uint8_tstart_page begin page (0..MAX_PAGE)
uint8_tend_page end page (start_page..MAX_PAGE)
uint8_tstart_col begin column (0..MAX_COL)
uint8_tend_col end column (start_col..MAX_COL)

◆ initialize()

void SSD1308::initialize ( )

High level Init, most settings remain at Power-On reset value.

◆ nop()

void SSD1308::nop ( )

◆ setColumnAddress()

void SSD1308::setColumnAddress ( uint8_t  start,
uint8_t  end 
)
Parameters
uint8_tstart startcolumn (valid range 0..MAX_COL)
uint8_tend endcolumn (valid range start..MAX_COL)

◆ setColumnStartForPageAddressingMode()

void SSD1308::setColumnStartForPageAddressingMode ( uint8_t  column)

Set Column Start (for Page Addressing Mode only)

Parameters
uint8_tcolumn column start (valid range 0..MAX_COLS)
uint8_tcolumn column start (valid range 0..MAX_COL)

◆ setContinuousHorizontalScroll()

void SSD1308::setContinuousHorizontalScroll ( bool  left,
uint8_t  start_page,
uint8_t  end_page,
uint8_t  interval 
)

Horizontal scroll by one column per interval.

Parameters
boolleft select Left/Right scroll
uint8_tstart_page begin page (0..MAX_PAGE)
uint8_tend_page end page (start_page..MAX_PAGE)
uint8_tinterval scroll interval in frames (see codes above)

◆ setContinuousVerticalAndHorizontalScroll()

void SSD1308::setContinuousVerticalAndHorizontalScroll ( bool  left,
uint8_t  start_page,
uint8_t  end_page,
uint8_t  offset,
uint8_t  interval 
)

Horizontal and Vertical scroll by one column per interval.

Parameters
boolleft select Left/Right scroll
uint8_tstart_page begin page (0..MAX_PAGE)
uint8_tend_page end page (start_page..MAX_PAGE)
uint8_toffset vert offset (0x01..0x63)
uint8_tinterval scroll interval in frames (see codes above)

◆ setContrastControl()

void SSD1308::setContrastControl ( uint8_t  contrast)

Set Contrast.

Parameters
uint8_tcontrast (valid range 0x00 (lowest) - 0xFF (highest))

◆ setDisplayBlink()

void SSD1308::setDisplayBlink ( bool  on)

Blink display by fading in and out over a set number of frames.

Parameters
boolon

◆ setDisplayClock()

void SSD1308::setDisplayClock ( uint8_t  divideRatio,
uint8_t  oscFreq 
)

◆ setDisplayFade()

void SSD1308::setDisplayFade ( bool  on)

Fade out display in set number of frames.

Parameters
boolon

◆ setDisplayFlip()

void SSD1308::setDisplayFlip ( bool  left,
bool  down 
)

Display Flip (Left/Right, Up/Down)

Parameters
boolleft flip Left/Right
booldown flip Up/Down

◆ setDisplayInverse()

void SSD1308::setDisplayInverse ( )

Show Black pixels on White background.

◆ setDisplayNormal()

void SSD1308::setDisplayNormal ( )

Show White pixels on Black background.

◆ setDisplayOff()

void SSD1308::setDisplayOff ( )

Disable Display.

◆ setDisplayOffset()

void SSD1308::setDisplayOffset ( uint8_t  offset)

◆ setDisplayOn()

void SSD1308::setDisplayOn ( )

Enable Display.

◆ setDisplayPower()

void SSD1308::setDisplayPower ( bool  on)

Enable or Disable Display.

Parameters
boolon

◆ setDisplayScroll()

void SSD1308::setDisplayScroll ( bool  on)

Activate or Deactivate Horizontal and Vertical scroll.

Note: after deactivating scrolling, the RAM data needs to be rewritten

Parameters
boolon activate scroll

◆ setDisplayStartLine()

void SSD1308::setDisplayStartLine ( uint8_t  line)

Set Display StartLine, takes one byte, 0x00-0x3F.

Parameters
uint8_tline startline (valid range 0..MAX_ROWS)

◆ setEntireDisplay()

void SSD1308::setEntireDisplay ( bool  on)

Shows Pixels On or as RAM content.

Parameters
boolon (true is All on, false is RAM content)

◆ setEntireDisplayOn()

void SSD1308::setEntireDisplayOn ( )

Shows All Pixels On.

◆ setEntireDisplayRAM()

void SSD1308::setEntireDisplayRAM ( )

Shows Pixels as RAM content.

◆ setExternalIref()

void SSD1308::setExternalIref ( )

Sets External Iref (default)

◆ setHorizontalAddressingMode()

void SSD1308::setHorizontalAddressingMode ( )

Set Horizontal Addressing Mode (cursor incr left-to-right, top-to-bottom)

◆ setInternalIref()

void SSD1308::setInternalIref ( )

Sets Internal Iref.

◆ setInverted()

void SSD1308::setInverted ( bool  inverted)
inline

◆ setMemoryAddressingMode()

void SSD1308::setMemoryAddressingMode ( uint8_t  mode)

Set Addressing Mode.

Parameters
uint8_tmode

◆ setMultiplexRatio()

void SSD1308::setMultiplexRatio ( uint8_t  lines)

◆ setPageAddress()

void SSD1308::setPageAddress ( uint8_t  start,
uint8_t  end 
)
Parameters
uint8_tstart startpage (valid range 0..MAX_PAGE)
uint8_tend endpage (valid range start..MAX_PAGE)

◆ setPageAddressingMode()

void SSD1308::setPageAddressingMode ( )

Set Page Addressing Mode (cursor incr left-to-right)

◆ setPageStartForPageAddressingMode()

void SSD1308::setPageStartForPageAddressingMode ( uint8_t  page)

Set Page Start (for Page Addressing Mode only)

Parameters
uint8_tpage page start (valid range PAGE0 - PAGE7)

◆ setPrechargePeriod()

void SSD1308::setPrechargePeriod ( uint8_t  phase1,
uint8_t  phase2 
)

◆ setVcomhDeselectLevel()

void SSD1308::setVcomhDeselectLevel ( uint8_t  level)

◆ setVerticalAddressingMode()

void SSD1308::setVerticalAddressingMode ( )

Set Vertical Addressing Mode (cursor incr top-to-bottom, left-to-right)

◆ setVerticalScrollArea()

void SSD1308::setVerticalScrollArea ( uint8_t  topRowsFixed,
uint8_t  scrollRows 
)

Set Vertical scroll area.

Parameters
uint8_ttopRowsFixed fixed rows (0..MAX_ROW)
uint8_tscrollRowsoffset scroll rows (topRowsFixed..MAX_ROW)
uint8_ttopRowsFixed fixed rows (0..MAX_ROW)
uint8_tscrollRowsoffset scroll rows (topRowsFixed..ROWS)

◆ writeBigChar()

void SSD1308::writeBigChar ( uint8_t  row,
uint8_t  col,
char  chr 
)

Write large character (16x24 font)

Parameters
uint8_trow row number (0...MAX_ROW)
uint8_tcol column number (0...MAX_COL)
charchr Used for displaying numbers 0 - 9 and '+', '-', '.'

◆ writeBitmap()

void SSD1308::writeBitmap ( uint8_t *  data,
uint8_t  start_page = 0,
uint8_t  end_page = MAX_PAGE,
uint8_t  start_col = 0,
uint8_t  end_col = MAX_COL 
)

write a bitmap to the display

Parameters
uint8_t*data pointer to bitmap
uint8_tstart_page begin page (0..MAX_PAGE)
uint8_tend_page end page (start_page..MAX_PAGE)
uint8_tstart_col begin column (0..MAX_COL)
uint8_tend_col end column (start_col..MAX_COL)

◆ writeChar()

int SSD1308::writeChar ( char  chr)

Write single character to the display using the 8x8 fontable.

Start at current cursor location

Parameters
charchr character to write

◆ writeLevelBar()

void SSD1308::writeLevelBar ( uint8_t  page,
uint8_t  col,
int  percentage 
)

write a level meter to the display, Width is (PRG_MAX_SCALE + 2) pixels

Parameters
uint8_tpage begin page (0..MAX_PAGE)
uint8_tcol begin column (0..MAX_COL)
intpercentage value (0..100)

◆ writeProgressBar()

void SSD1308::writeProgressBar ( uint8_t  page,
uint8_t  col,
int  percentage 
)

write a level meter to the display, Width is (PRG_MAX_SCALE + 2) pixels

Parameters
uint8_tpage begin page (0..MAX_PAGE)
uint8_tcol begin column (0..MAX_COL)
intpercentage value (0..100)

◆ writeString()

void SSD1308::writeString ( uint8_t  row,
uint8_t  col,
const char *  text 
)

Write a string to the display using the 8x8 font.

Start at selected cursor location, text will wrap around until it is done

Parameters
uint8_trow row number (0...ROWS/FONT_HEIGHT)
uint8_tcol column number (0...COLUMNS/FONT_WIDTH)
constchar * text pointer to text

The documentation for this class was generated from the following files: