Electronics
DIT Software Library for the SSD1306 display controller IC
The source code can be found on GitHub.
The SSD1306 is a graphical display controller IC, that is used in a number of small size OLED displays.
This library provides a hardware driver implementation for low level work with the SSD1306 IC.
Global Type Declarations
Controller Codes
All the controller commands codes and values have been given named constant definitions.
Please see SSD1306.h
file for details.
Configuration data structure
struct SSD1306 { struct Com_Driver com_driver ; //< a driver that knows how to talk to this SSD1306 uint16_t address ; //< bus address of this SSD1306 enum SSD1306_Geometry geometry ; //< geometry of AMOLED screen attached to this SSD1306 enum SSD1306_Charge_Pump_Source charge_pump_source; //< charge pump power source configuration of this SSD1306 bool flip_horizontal ; //< flip the rows bool flip_vertical ; //< flip the columns };
Functions
ssd1306_init() |
Initialize the controller using the most basic configuration for Horizontal Addressing Mode. |
ssd1306_command_sequence_write() |
Write a raw command sequence to the controller. |
ssd1306_data_sequence_write() |
Write a raw data sequence to the controller. |
ssd1306_display_on() |
Write the command sequence to switch the display ON or OFF to the controller. |
ssd1306_display_update() |
Update the display connected to this SSD1306 with the content of the framebuffer. This function uses differential update, unless the number of pixels changed is so large, that a complete update is more efficient. |
ssd1306_display_update_all() |
Update the display connected to this SSD1306 with the content of the framebuffer. Always updates the entire display. |
ssd1306_display_update_differential() |
Update the display connected to this SSD1306 with the content of the framebuffer. Updates only tiles that have changed since the last update. |
ssd1306_set_column_range() |
Specify the column start and end address of the display data RAM. |
ssd1306_set_page_range() |
Specify the page start and end address of the display data RAM. |
Files in this library
SSD1306.h |
Global declarations for the SSD1306 library |
SSD1306.c |
Implementation of the SSD1306 library |
Notes
This library is currently implemented for the Atmel Software Foundation only.
You can get rid of this dependency by
- removing
#include <asf.h>
- defining your own
enum status_code