Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SSD1351.h
- Committer:
- kkado
- Date:
- 2017-06-17
- Revision:
- 0:5115e0080bd5
- Child:
- 1:ae4fe66e9c0e
File content as of revision 0:5115e0080bd5:
#ifndef SSD1351_h
#define SSD1351_h
#include "mbed.h"
#include "BurstSPI.h"
#define SSD1351_CMD_SETCOLUMN 0x15
#define SSD1351_CMD_SETROW 0x75
#define SSD1351_CMD_WRITERAM 0x5C
#define SSD1351_CMD_READRAM 0x5D
#define SSD1351_CMD_SETREMAP 0xA0
#define SSD1351_CMD_STARTLINE 0xA1
#define SSD1351_CMD_DISPLAYOFFSET 0xA2
#define SSD1351_CMD_DISPLAYALLOFF 0xA4
#define SSD1351_CMD_DISPLAYALLON 0xA5
#define SSD1351_CMD_NORMALDISPLAY 0xA6
#define SSD1351_CMD_INVERTDISPLAY 0xA7
#define SSD1351_CMD_FUNCTIONSELECT 0xAB
#define SSD1351_CMD_DISPLAYOFF 0xAE
#define SSD1351_CMD_DISPLAYON 0xAF
#define SSD1351_CMD_PRECHARGE 0xB1
#define SSD1351_CMD_DISPLAYENHANCE 0xB2
#define SSD1351_CMD_CLOCKDIV 0xB3
#define SSD1351_CMD_SETVSL 0xB4
#define SSD1351_CMD_SETGPIO 0xB5
#define SSD1351_CMD_PRECHARGE2 0xB6
#define SSD1351_CMD_SETGRAY 0xB8
#define SSD1351_CMD_USELUT 0xB9
#define SSD1351_CMD_PRECHARGELEVEL 0xBB
#define SSD1351_CMD_VCOMH 0xBE
#define SSD1351_CMD_CONTRASTABC 0xC1
#define SSD1351_CMD_CONTRASTMASTER 0xC7
#define SSD1351_CMD_MUXRATIO 0xCA
#define SSD1351_CMD_COMMANDLOCK 0xFD
#define SSD1351_CMD_HORIZSCROLL 0x96
#define SSD1351_CMD_STOPSCROLL 0x9E
#define SSD1351_CMD_STARTSCROLL 0x9F
class SSD1351{
public:
SSD1351(PinName mosi_pin, PinName sclk_pin, PinName dc_pin, PinName cs_pin, PinName rst_pin);
void begin();
//void fillRect(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t fillcolor);
void enableWrite();
void fillBuf(uint16_t fillcolor);
void writeBuf();
void drawSpritePtr(const uint16_t s[] ,int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t mask);
void fillCMask(uint8_t state);
void drawCMask(const uint16_t s[], int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t mask, uint8_t state);
uint8_t checkCollision(const uint16_t s[], int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t mask);
void drawChar(char c, int16_t x, int16_t y, uint16_t color, uint8_t zoom);
void printText(const char c[], int16_t x, int16_t y, uint16_t color, uint8_t zoom);
void setBuf(uint8_t* _buf);
void setCMask(uint8_t* _cmask);
void fillRect(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t color);
void openRect(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t color);
void drawHLine(int16_t x, int16_t y, int16_t length, uint16_t color);
void drawVLine(int16_t x, int16_t y, int16_t length, uint16_t color);
void drawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color);
void openCircle(int16_t x0, int16_t y0, uint16_t radius, uint16_t color);
void fillCircle(int16_t x0, int16_t y0, uint16_t radius, uint16_t color);
private:
void spiwrite(uint8_t c);
void writeCommand(uint8_t c);
void writeData(uint8_t c);
DigitalOut cs, dc, rst;
BurstSPI spi;
uint8_t *buf, *collisionmask;
};
#endif