Author | Rob Jansen, Copyright © 2020..2022, all rights reserved. |
Adapted-by | |
Compiler | 2.5r6 |
Text and graphics library for the graphic display module using the SSD1306 display controller. The library supports displays with a resolution of 128 x 32 or 128 x 64 (default).
Library glcd_nokia_5110.jal used as starting point. SS1306 Data Sheet Revision 1.1 (April 2008) Adafruit_SSD1306 library and some others.
This library supports the control of the display via one of two interfaces IIC or 4-wire SPI which depends om the module that is used. The default is hardware IIC control but this can be overruled using software IIC control by defining the following constant: -) const SSD1306_SOFTWARE_IIC = TRUE
No dependency found
const byte _SSD1306_SCROLL_HOR_LEFT = 0x27
const bit _SSD1306_DATA_TRANSMISSION = 1
const byte _SSD1306_SET_MULTIPLEX = 0xA8
const byte _SSD1306_SET_CHARGEPUMP = 0x8D
const byte GLCD_COLOR_BITS = 1
const byte _SSD1306_DISPLAY_INVERSE = 0xA7
const byte _SSD1306_SET_CONTRAST = 0x81
const bit _SSD1306_COMMAND_TRANSMISSION = 0
const byte _SSD1306_DISPLAY_RESUME = 0xA4
var byte glcd_background_color = GLCD_WHITE
const GLCD_WHITE = 0xFF
const byte _SSD1306_STOP_SCROLL = 0x2E
const byte _SSD1306_SET_SEGMENTREMAP = 0xA1
const byte _SSD1306_PAGE_ADDRESS = 0x22
const byte _SSD1306_SET_VCOMDETECT = 0xDB
const byte _SSD1306_MEM_ADDRESS_MODE = 0x20
const byte _SSD1306_SET_DISPLAY_CLOCKDIV = 0xD5
const GLCD_XOR = 0x01
const byte _SSD1306_DISPLAY_OFF = 0xAE
const byte SSD1306_MAX_X_PIXELS = 128
const byte _SSD1306_SCROLL_VER_HOR_LEFT = 0x2A
const byte _SSD1306_SET_PRECHARGE = 0xD9
const byte _SSD1306_SET_VER_SCROLL_AREA = 0xA3
const byte _SSD1306_COLUMN_ADDRESS = 0x21
const byte _SSD1306_DISPLAY_ON = 0xAF
const byte _SSD1306_SET_DISPLAY_OFFSET = 0xD3
const byte _SSD1306_SET_STARTLINE = 0x40
const byte _SSD1306_COMSCANDEC = 0xC8
const byte GLCD_Y_PIXELS = SSD1306_MAX_Y_PIXELS
const byte _SSD1306_SET_COMPINS = 0xDA
const byte _SSD1306_DISPLAY_ALL_ON = 0xA5
const byte _SSD1306_SCROLL_VER_HOR_RIGHT = 0x29
const byte GLCD_X_PIXELS = SSD1306_MAX_X_PIXELS
const byte _SSD1306_START_SCROLL = 0x2F
const GLCD_BLACK = 0x00
const byte _SSD1306_SCROLL_HOR_RIGHT = 0x26
var byte glcd_pen_color = GLCD_BLACK
const byte _SSD1306_DISPLAY_NORMAL = 0xA6
ssd1306_display_inverse()
ssd1306_start_scroll_diagonal_left(byte in start, byte in stop)
ssd1306_display_all_on()
ssd1306_start_scroll_diagonal_right(byte in start, byte in stop)
ssd1306_goto(byte in x, byte in y)
ssd1306_stop_scroll()
ssd1306_display_resume()
ssd1306_display_normal()
ssd1306_display_on()
ssd1306_clear_screen()
ssd1306_display_off()
ssd1306_start_scroll_right(byte in start, byte in stop)
ssd1306_set_start_line(byte in start_line)
ssd1306_init()
ssd1306_set_contrast(byte in contrast)
ssd1306_send_command_parameter(byte in command, byte in parameter)
ssd1306_start_scroll_left(byte in start, byte in stop)
ssd1306_send_command(byte in command)
_ssd1306_stop_transmission()
_ssd1306_write_byte(byte in data)
_ssd1306_start_transmission(bit in data_transmission)
const byte _SSD1306_SCROLL_HOR_LEFT = 0x27
No documentation found
const bit _SSD1306_DATA_TRANSMISSION = 1
No documentation found
const byte _SSD1306_SET_MULTIPLEX = 0xA8
No documentation found
const byte _SSD1306_SET_CHARGEPUMP = 0x8D
No documentation found
const byte GLCD_COLOR_BITS = 1
Monochrome display.
const byte _SSD1306_DISPLAY_INVERSE = 0xA7
No documentation found
const byte _SSD1306_SET_CONTRAST = 0x81
No documentation found
const bit _SSD1306_COMMAND_TRANSMISSION = 0
No documentation found
const byte _SSD1306_DISPLAY_RESUME = 0xA4
No documentation found
var byte glcd_background_color = GLCD_WHITE
Default background color.
const GLCD_WHITE = 0xFF
No documentation found
const byte _SSD1306_STOP_SCROLL = 0x2E
No documentation found
const byte _SSD1306_SET_SEGMENTREMAP = 0xA1
No documentation found
const byte _SSD1306_PAGE_ADDRESS = 0x22
No documentation found
const byte _SSD1306_SET_VCOMDETECT = 0xDB
No documentation found
const byte _SSD1306_MEM_ADDRESS_MODE = 0x20
SSD1306 commands.
const byte _SSD1306_SET_DISPLAY_CLOCKDIV = 0xD5
No documentation found
const GLCD_XOR = 0x01
This color is a special, internal to this library (not part of the controller specs). When using this color, what's black becomes white (off), what's white becomes black (on)
const byte _SSD1306_DISPLAY_OFF = 0xAE
No documentation found
const byte SSD1306_MAX_X_PIXELS = 128
Number of pixels on the screen. Number of Y pixels is default 64 but can be changed to 32 pixels.
const byte _SSD1306_SCROLL_VER_HOR_LEFT = 0x2A
No documentation found
const byte _SSD1306_SET_PRECHARGE = 0xD9
No documentation found
const byte _SSD1306_SET_VER_SCROLL_AREA = 0xA3
No documentation found
const byte _SSD1306_COLUMN_ADDRESS = 0x21
No documentation found
const byte _SSD1306_DISPLAY_ON = 0xAF
No documentation found
const byte _SSD1306_SET_DISPLAY_OFFSET = 0xD3
No documentation found
const byte _SSD1306_SET_STARTLINE = 0x40
No documentation found
const byte _SSD1306_COMSCANDEC = 0xC8
No documentation found
const byte GLCD_Y_PIXELS = SSD1306_MAX_Y_PIXELS
No documentation found
const byte _SSD1306_SET_COMPINS = 0xDA
No documentation found
const byte _SSD1306_DISPLAY_ALL_ON = 0xA5
No documentation found
const byte _SSD1306_SCROLL_VER_HOR_RIGHT = 0x29
No documentation found
const byte GLCD_X_PIXELS = SSD1306_MAX_X_PIXELS
GLCD specifications.
const byte _SSD1306_START_SCROLL = 0x2F
No documentation found
const GLCD_BLACK = 0x00
Colors constants. Black & white are official value for display controller.
const byte _SSD1306_SCROLL_HOR_RIGHT = 0x26
No documentation found
var byte glcd_pen_color = GLCD_BLACK
Default pen color.
const byte _SSD1306_DISPLAY_NORMAL = 0xA6
No documentation found
ssd1306_display_inverse()
Put the display in inverse mode.
ssd1306_start_scroll_diagonal_left(byte in start, byte in stop)
Scroll the whole display diagonal left. For scrolling the whole display 'start' must be 0x00 and 'stop' must be 0x07.
ssd1306_display_all_on()
Put all segments of the display on.
ssd1306_start_scroll_diagonal_right(byte in start, byte in stop)
Scroll the whole display diagonal right. For scrolling the whole display 'start' must be 0x00 and 'stop' must be 0x07.
ssd1306_goto(byte in x, byte in y)
Set the current position for the data to be written, x = 0->127, y = 0->7.
ssd1306_stop_scroll()
Stop the scroll feature.
ssd1306_display_resume()
Resume the display.
ssd1306_display_normal()
Put the display in normal (non-inverse) mode.
ssd1306_display_on()
Put the display on.
ssd1306_clear_screen()
Clear the screen and move the cursor to position 0,0.
ssd1306_display_off()
Switch the display off.
ssd1306_start_scroll_right(byte in start, byte in stop)
Scroll the whole display right. For scrolling the whole display 'start' must be 0x00 and 'stop' must be 0x07.
ssd1306_set_start_line(byte in start_line)
Set the display start line. The procedure can be used to implement a vertical scroll feature. Start line is in range 0..(SSD1306_MAX_Y_PIXELS - 1)
ssd1306_init()
Initialize the control pins, the IIC or SPI interface and the initialize the SSD1306 module. When SPI is used and the reset pin is defined then the module will also be hardware reset.
ssd1306_set_contrast(byte in contrast)
Set display contrast, value from 0x00 to 0xFF.
ssd1306_send_command_parameter(byte in command, byte in parameter)
Send a command to the ssd1306 with a paramater. It is up to the user to set the correct command and parameter as described in the datasheet.
ssd1306_start_scroll_left(byte in start, byte in stop)
Scroll the whole display left. For scrolling the whole display 'start' must be 0x00 and 'stop' must be 0x07.
ssd1306_send_command(byte in command)
Send a command to the ssd1306 without paramater. It is up to the user to set the correct command as described in the datasheet.
_ssd1306_stop_transmission()
Stop an IIC or SPI transmission.
_ssd1306_write_byte(byte in data)
Write a byte to the SSD1306.
_ssd1306_start_transmission(bit in data_transmission)
Start an IIC or SPI data or command transmission. SPI uses 4 wires.