Color OLED module library
v0.5
Library for the WaveShare 0.96-inch color OLED (SSD1331) module
|
#include "simplegfx.h"
#include "simpletools.h"
Go to the source code of this file.
Macros | |
#define | WHITE 0xFFFF |
#define | PINK 0xFD59 |
#define | MAGENTA 0xC9D4 |
#define | RED 0xC082 |
#define | DARKRED 0xA000 |
#define | REDORANGE 0xD261 |
#define | LIGHTORANGE 0xDDB2 |
#define | ORANGE 0xFC00 |
#define | YELLOWORANGE 0xFCE0 |
#define | GOLD 0xF704 |
#define | YELLOW 0xF744 |
#define | LEMON 0xD6CF |
#define | YELLOWGREEN 0x5600 |
#define | GREEN 0x1C62 |
#define | DARKGREEN 0x02C0 |
#define | GREENBLUE 0x0C75 |
#define | CYAN 0x5E97 |
#define | LIGHTBLUE 0x857B |
#define | SKYBLUE 0x0E3E |
#define | BLUE 0x2B16 |
#define | NAVYBLUE 0x0009 |
#define | VIOLET 0x7817 |
#define | PURPLE 0xA017 |
#define | RASPBERRY 0x902A |
#define | TAN 0xCC2A |
#define | LIGHTBROWN 0xBB44 |
#define | BRONZE 0xA440 |
#define | BROWN 0x9201 |
#define | DARKBROWN 0x51E7 |
#define | LIGHTGRAY 0xBDD7 |
#define | GRAY 0x8410 |
#define | DARKGRAY 0x3186 |
#define | BLACK 0x0000 |
#define | SSD1331_CMD_DRAWLINE 0x21 |
#define | SSD1331_CMD_DRAWRECT 0x22 |
#define | SSD1331_CMD_COPY 0x23 |
#define | SSD1331_CMD_CLEAR 0x25 |
#define | SSD1331_CMD_FILL 0x26 |
#define | SSD1331_CMD_SCROLLSETUP 0x27 |
#define | SSD1331_CMD_SCROLLSTOP 0x2E |
#define | SSD1331_CMD_SCROLLSTART 0x2F |
#define | SSD1331_CMD_SETCOLUMN 0x15 |
#define | SSD1331_CMD_SETROW 0x75 |
#define | SSD1331_CMD_CONTRASTA 0x81 |
#define | SSD1331_CMD_CONTRASTB 0x82 |
#define | SSD1331_CMD_CONTRASTC 0x83 |
#define | SSD1331_CMD_MASTERCURRENT 0x87 |
#define | SSD1331_CMD_SETREMAP 0xA0 |
#define | SSD1331_CMD_STARTLINE 0xA1 |
#define | SSD1331_CMD_DISPLAYOFFSET 0xA2 |
#define | SSD1331_CMD_NORMALDISPLAY 0xA4 |
#define | SSD1331_CMD_DISPLAYALLON 0xA5 |
#define | SSD1331_CMD_DISPLAYALLOFF 0xA6 |
#define | SSD1331_CMD_INVERTDISPLAY 0xA7 |
#define | SSD1331_CMD_SETMULTIPLEX 0xA8 |
#define | SSD1331_CMD_SETMASTER 0xAD |
#define | SSD1331_CMD_DISPLAYOFF 0xAE |
#define | SSD1331_CMD_DISPLAYON 0xAF |
#define | SSD1331_CMD_POWERMODE 0xB0 |
#define | SSD1331_CMD_PRECHARGE 0xB1 |
#define | SSD1331_CMD_CLOCKDIV 0xB3 |
#define | SSD1331_CMD_PRECHARGEA 0x8A |
#define | SSD1331_CMD_PRECHARGEB 0x8B |
#define | SSD1331_CMD_PRECHARGEC 0x8C |
#define | SSD1331_CMD_PRECHARGELEVEL 0xBB |
#define | SSD1331_CMD_VCOMH 0xBE |
Functions | |
screen_t * | ssd1331_init (char sdi, char sclk, char cs, char rs, char rst, int _width, int _height) |
void | ssd1331_drawPixel (screen_t *dev, int x, int y, int color) |
Draws a single pixel on the screen in the specified color. No checking. More... | |
void | ssd1331_drawLine (screen_t *dev, int x0, int y0, int x1, int y1, int color) |
Draws a line on the screen in the specified color. More... | |
void | ssd1331_drawFastVLine (screen_t *dev, int x, int y, int w, int color) |
Draws a vertical line on the screen in the specified color. No bounds checking (used by other functions that do the bounds checking first) More... | |
void | ssd1331_drawFastHLine (screen_t *dev, int x, int y, int h, int color) |
Draws a horizontal line on the screen in the specified color. No bounds checking (used by other functions that do the bounds checking first) More... | |
void | ssd1331_fillRect (screen_t *dev, int x0, int y0, int x1, int y1, int color) |
Draws a filled rectangle on the screen in the specified color. More... | |
void | ssd1331_clearDisplay (screen_t *dev) |
Clears the screen by setting the full area of the display to black. More... | |
void | ssd1331_resetDisplay (screen_t *dev) |
Resets the display. More... | |
void | ssd1331_writeByte (int mask_cs, int mask_sdi, int mask_clk, int mask_dc, char c, char dc) |
Low level function that transfers bytes to the screen. More... | |
char | ssd1331_writeLock () |
Returns the status of the SPI communication lockout so multiple cogs don't try to write to it at the same time. More... | |
void | ssd1331_writeLockSet (char devId) |
Sets the SPI communication lockout. More... | |
void | ssd1331_writeLockClear (char devId) |
Clears the SPI communication lockout. More... | |
void | ssd1331_copy (screen_t *dev, int x0, int y0, int w, int h, int x2, int y2) |
Creates a copy a rectangular area of the screen at another position on the screen. More... | |
void | ssd1331_scrollDisplay (screen_t *dev, int h, int v) |
Starts scrolling the entire image on the screen horizontally, vertically, or both. More... | |
void | ssd1331_invertDisplay (screen_t *dev, char i) |
Inverts the screen. More... | |
void | ssd1331_sleepWakeDisplay (screen_t *dev, char i) |
Sleeps or Wakes the display. More... | |
#define BLACK 0x0000 |
#define BLUE 0x2B16 |
#define BRONZE 0xA440 |
#define BROWN 0x9201 |
#define CYAN 0x5E97 |
#define DARKBROWN 0x51E7 |
#define DARKGRAY 0x3186 |
#define DARKGREEN 0x02C0 |
#define DARKRED 0xA000 |
#define GOLD 0xF704 |
#define GRAY 0x8410 |
#define GREEN 0x1C62 |
#define GREENBLUE 0x0C75 |
#define LEMON 0xD6CF |
#define LIGHTBLUE 0x857B |
#define LIGHTBROWN 0xBB44 |
#define LIGHTGRAY 0xBDD7 |
#define LIGHTORANGE 0xDDB2 |
#define MAGENTA 0xC9D4 |
#define NAVYBLUE 0x0009 |
#define ORANGE 0xFC00 |
#define PINK 0xFD59 |
#define PURPLE 0xA017 |
#define RASPBERRY 0x902A |
#define RED 0xC082 |
#define REDORANGE 0xD261 |
#define SKYBLUE 0x0E3E |
#define SSD1331_CMD_CLEAR 0x25 |
#define SSD1331_CMD_CLOCKDIV 0xB3 |
#define SSD1331_CMD_CONTRASTA 0x81 |
#define SSD1331_CMD_CONTRASTB 0x82 |
#define SSD1331_CMD_CONTRASTC 0x83 |
#define SSD1331_CMD_COPY 0x23 |
#define SSD1331_CMD_DISPLAYALLOFF 0xA6 |
#define SSD1331_CMD_DISPLAYALLON 0xA5 |
#define SSD1331_CMD_DISPLAYOFF 0xAE |
#define SSD1331_CMD_DISPLAYOFFSET 0xA2 |
#define SSD1331_CMD_DISPLAYON 0xAF |
#define SSD1331_CMD_DRAWLINE 0x21 |
#define SSD1331_CMD_DRAWRECT 0x22 |
#define SSD1331_CMD_FILL 0x26 |
#define SSD1331_CMD_INVERTDISPLAY 0xA7 |
#define SSD1331_CMD_MASTERCURRENT 0x87 |
#define SSD1331_CMD_NORMALDISPLAY 0xA4 |
#define SSD1331_CMD_POWERMODE 0xB0 |
#define SSD1331_CMD_PRECHARGE 0xB1 |
#define SSD1331_CMD_PRECHARGEA 0x8A |
#define SSD1331_CMD_PRECHARGEB 0x8B |
#define SSD1331_CMD_PRECHARGEC 0x8C |
#define SSD1331_CMD_PRECHARGELEVEL 0xBB |
#define SSD1331_CMD_SCROLLSETUP 0x27 |
#define SSD1331_CMD_SCROLLSTART 0x2F |
#define SSD1331_CMD_SCROLLSTOP 0x2E |
#define SSD1331_CMD_SETCOLUMN 0x15 |
#define SSD1331_CMD_SETMASTER 0xAD |
#define SSD1331_CMD_SETMULTIPLEX 0xA8 |
#define SSD1331_CMD_SETREMAP 0xA0 |
#define SSD1331_CMD_SETROW 0x75 |
#define SSD1331_CMD_STARTLINE 0xA1 |
#define SSD1331_CMD_VCOMH 0xBE |
#define TAN 0xCC2A |
#define VIOLET 0x7817 |
#define WHITE 0xFFFF |
#define YELLOW 0xF744 |
#define YELLOWGREEN 0x5600 |
#define YELLOWORANGE 0xFCE0 |
void ssd1331_clearDisplay | ( | screen_t * | dev | ) |
Clears the screen by setting the full area of the display to black.
dev | Pointer to the display's device structure returned by the initialization function. |
void ssd1331_copy | ( | screen_t * | dev, |
int | x0, | ||
int | y0, | ||
int | w, | ||
int | h, | ||
int | x2, | ||
int | y2 | ||
) |
Creates a copy a rectangular area of the screen at another position on the screen.
dev | Pointer to the display's device structure returned by the initialization function. |
x0 | Starting horizontal coordinate of the box to be copied, counted from the left side of the screen. |
y0 | Starting vertical coordinate of the box to be copied, counted down from the top of the screen. |
w | Width of the box to be copied. |
h | Height of the box to be copied. |
x2 | Horizontal coordinate where the copied box is to be pasted. |
y2 | Vertical coordinate where the copied box is to be pasted. |
void ssd1331_drawFastHLine | ( | screen_t * | dev, |
int | x, | ||
int | y, | ||
int | h, | ||
int | color | ||
) |
Draws a horizontal line on the screen in the specified color. No bounds checking (used by other functions that do the bounds checking first)
dev | Pointer to the display's device structure returned by the initialization function. |
x | Horizontal coordinate of the line, counted from the left side of the screen. |
y | Vertical coordinate of the line. |
h | Length of the line in pixels. |
color | Color of the line. |
void ssd1331_drawFastVLine | ( | screen_t * | dev, |
int | x, | ||
int | y, | ||
int | w, | ||
int | color | ||
) |
Draws a vertical line on the screen in the specified color. No bounds checking (used by other functions that do the bounds checking first)
dev | Pointer to the display's device structure returned by the initialization function. |
x | Horizontal coordinate of the line. |
y | Vertical coordinate of the line, counted down from the top of the screen. |
w | Length of the line in pixels. |
color | Color of the line. |
void ssd1331_drawLine | ( | screen_t * | dev, |
int | x0, | ||
int | y0, | ||
int | x1, | ||
int | y1, | ||
int | color | ||
) |
Draws a line on the screen in the specified color.
dev | Pointer to the display's device structure returned by the initialization function. |
x0 | Starting horizontal coordinate of the line, counted from the left side of the screen. |
y0 | Starting vertical coordinate of the line, counted down from the top of the screen. |
x1 | Ending horizontal coordinate of the line. |
y1 | Ending vertical coordinate of the line. |
color | Color of the pixel, in r5g6b5 format. |
void ssd1331_drawPixel | ( | screen_t * | dev, |
int | x, | ||
int | y, | ||
int | color | ||
) |
Draws a single pixel on the screen in the specified color. No checking.
dev | Pointer to the display's device structure returned by the initialization function. |
x | Horizontal coordinate of the pixel, counted from the left side of the screen. |
y | Vertical coordinate of the pixel, counted down from the top of the screen. |
color | Color of the pixel. |
void ssd1331_fillRect | ( | screen_t * | dev, |
int | x0, | ||
int | y0, | ||
int | x1, | ||
int | y1, | ||
int | color | ||
) |
Draws a filled rectangle on the screen in the specified color.
dev | Pointer to the display's device structure returned by the initialization function. |
x0 | Starting horizontal coordinate of the rectangle, counted from the left side of the screen. |
y0 | Starting vertical coordinate of the rectangle, counted down from the top of the screen. |
x1 | Ending horizontal coordinate of the rectangle, counted from the left side of the screen. |
y1 | Ending vertical coordinate of the rectangle, counted down from the top of the screen. |
color | Color of the rectangle, in r5g6b5 format. |
screen_t* ssd1331_init | ( | char | sdi, |
char | sclk, | ||
char | cs, | ||
char | rs, | ||
char | rst, | ||
int | _width, | ||
int | _height | ||
) |
void ssd1331_invertDisplay | ( | screen_t * | dev, |
char | i | ||
) |
Inverts the screen.
dev | Pointer to the display's device structure returned by the initialization function. |
i | Mode to set the inversion to: (0) sets the display to normal and (1) inverts the colors of the display. |
void ssd1331_resetDisplay | ( | screen_t * | dev | ) |
Resets the display.
dev | Pointer to the display's device structure returned by the initialization function. |
void ssd1331_scrollDisplay | ( | screen_t * | dev, |
int | h, | ||
int | v | ||
) |
Starts scrolling the entire image on the screen horizontally, vertically, or both.
dev | Pointer to the display's device structure returned by the initialization function. |
h | Horizontal scrolling in rows per interval. (0) turns off horizontal scrolling, negative integers scroll to the left and positive integers scroll to the right. |
v | Vertical scrolling columns per interval. (0) turns off vertical scrolling, negative integers scroll down and positive integers scroll up. |
void ssd1331_sleepWakeDisplay | ( | screen_t * | dev, |
char | i | ||
) |
Sleeps or Wakes the display.
dev | Pointer to the display's device structure returned by the initialization function. |
i | Mode to set the display to: (0) wakes the display (1) sleeps the display. |
void ssd1331_writeByte | ( | int | mask_cs, |
int | mask_sdi, | ||
int | mask_clk, | ||
int | mask_dc, | ||
char | c, | ||
char | dc | ||
) |
Low level function that transfers bytes to the screen.
mask_cs | Pin mask for the display's chip select pin. |
mask_sdi | Pin mask for the display's serial data in pin. |
mask_clk | Pin mask for the display's clock pin. |
mask_dc | Pin mask for the display's data/command pin. |
c | Byte to be transferred. |
dc | Toggle whether the byte is a command or data. |
char ssd1331_writeLock | ( | ) |
Returns the status of the SPI communication lockout so multiple cogs don't try to write to it at the same time.
void ssd1331_writeLockClear | ( | char | devId | ) |
Clears the SPI communication lockout.
devId | The ID of the device (usually the chip select pin). |
void ssd1331_writeLockSet | ( | char | devId | ) |
Sets the SPI communication lockout.
devId | The ID of the device (usually the chip select pin). |