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@0:5115e0080bd5, 2017-06-17 (annotated)
- Committer:
- kkado
- Date:
- Sat Jun 17 09:01:26 2017 +0000
- Revision:
- 0:5115e0080bd5
- Child:
- 1:ae4fe66e9c0e
Initial commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kkado | 0:5115e0080bd5 | 1 | #ifndef SSD1351_h |
| kkado | 0:5115e0080bd5 | 2 | #define SSD1351_h |
| kkado | 0:5115e0080bd5 | 3 | |
| kkado | 0:5115e0080bd5 | 4 | #include "mbed.h" |
| kkado | 0:5115e0080bd5 | 5 | #include "BurstSPI.h" |
| kkado | 0:5115e0080bd5 | 6 | |
| kkado | 0:5115e0080bd5 | 7 | #define SSD1351_CMD_SETCOLUMN 0x15 |
| kkado | 0:5115e0080bd5 | 8 | #define SSD1351_CMD_SETROW 0x75 |
| kkado | 0:5115e0080bd5 | 9 | #define SSD1351_CMD_WRITERAM 0x5C |
| kkado | 0:5115e0080bd5 | 10 | #define SSD1351_CMD_READRAM 0x5D |
| kkado | 0:5115e0080bd5 | 11 | #define SSD1351_CMD_SETREMAP 0xA0 |
| kkado | 0:5115e0080bd5 | 12 | #define SSD1351_CMD_STARTLINE 0xA1 |
| kkado | 0:5115e0080bd5 | 13 | #define SSD1351_CMD_DISPLAYOFFSET 0xA2 |
| kkado | 0:5115e0080bd5 | 14 | #define SSD1351_CMD_DISPLAYALLOFF 0xA4 |
| kkado | 0:5115e0080bd5 | 15 | #define SSD1351_CMD_DISPLAYALLON 0xA5 |
| kkado | 0:5115e0080bd5 | 16 | #define SSD1351_CMD_NORMALDISPLAY 0xA6 |
| kkado | 0:5115e0080bd5 | 17 | #define SSD1351_CMD_INVERTDISPLAY 0xA7 |
| kkado | 0:5115e0080bd5 | 18 | #define SSD1351_CMD_FUNCTIONSELECT 0xAB |
| kkado | 0:5115e0080bd5 | 19 | #define SSD1351_CMD_DISPLAYOFF 0xAE |
| kkado | 0:5115e0080bd5 | 20 | #define SSD1351_CMD_DISPLAYON 0xAF |
| kkado | 0:5115e0080bd5 | 21 | #define SSD1351_CMD_PRECHARGE 0xB1 |
| kkado | 0:5115e0080bd5 | 22 | #define SSD1351_CMD_DISPLAYENHANCE 0xB2 |
| kkado | 0:5115e0080bd5 | 23 | #define SSD1351_CMD_CLOCKDIV 0xB3 |
| kkado | 0:5115e0080bd5 | 24 | #define SSD1351_CMD_SETVSL 0xB4 |
| kkado | 0:5115e0080bd5 | 25 | #define SSD1351_CMD_SETGPIO 0xB5 |
| kkado | 0:5115e0080bd5 | 26 | #define SSD1351_CMD_PRECHARGE2 0xB6 |
| kkado | 0:5115e0080bd5 | 27 | #define SSD1351_CMD_SETGRAY 0xB8 |
| kkado | 0:5115e0080bd5 | 28 | #define SSD1351_CMD_USELUT 0xB9 |
| kkado | 0:5115e0080bd5 | 29 | #define SSD1351_CMD_PRECHARGELEVEL 0xBB |
| kkado | 0:5115e0080bd5 | 30 | #define SSD1351_CMD_VCOMH 0xBE |
| kkado | 0:5115e0080bd5 | 31 | #define SSD1351_CMD_CONTRASTABC 0xC1 |
| kkado | 0:5115e0080bd5 | 32 | #define SSD1351_CMD_CONTRASTMASTER 0xC7 |
| kkado | 0:5115e0080bd5 | 33 | #define SSD1351_CMD_MUXRATIO 0xCA |
| kkado | 0:5115e0080bd5 | 34 | #define SSD1351_CMD_COMMANDLOCK 0xFD |
| kkado | 0:5115e0080bd5 | 35 | #define SSD1351_CMD_HORIZSCROLL 0x96 |
| kkado | 0:5115e0080bd5 | 36 | #define SSD1351_CMD_STOPSCROLL 0x9E |
| kkado | 0:5115e0080bd5 | 37 | #define SSD1351_CMD_STARTSCROLL 0x9F |
| kkado | 0:5115e0080bd5 | 38 | |
| kkado | 0:5115e0080bd5 | 39 | class SSD1351{ |
| kkado | 0:5115e0080bd5 | 40 | public: |
| kkado | 0:5115e0080bd5 | 41 | SSD1351(PinName mosi_pin, PinName sclk_pin, PinName dc_pin, PinName cs_pin, PinName rst_pin); |
| kkado | 0:5115e0080bd5 | 42 | |
| kkado | 0:5115e0080bd5 | 43 | void begin(); |
| kkado | 0:5115e0080bd5 | 44 | //void fillRect(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t fillcolor); |
| kkado | 0:5115e0080bd5 | 45 | |
| kkado | 0:5115e0080bd5 | 46 | void enableWrite(); |
| kkado | 0:5115e0080bd5 | 47 | void fillBuf(uint16_t fillcolor); |
| kkado | 0:5115e0080bd5 | 48 | void writeBuf(); |
| kkado | 0:5115e0080bd5 | 49 | void drawSpritePtr(const uint16_t s[] ,int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t mask); |
| kkado | 0:5115e0080bd5 | 50 | void fillCMask(uint8_t state); |
| kkado | 0:5115e0080bd5 | 51 | void drawCMask(const uint16_t s[], int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t mask, uint8_t state); |
| kkado | 0:5115e0080bd5 | 52 | uint8_t checkCollision(const uint16_t s[], int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t mask); |
| kkado | 0:5115e0080bd5 | 53 | void drawChar(char c, int16_t x, int16_t y, uint16_t color, uint8_t zoom); |
| kkado | 0:5115e0080bd5 | 54 | void printText(const char c[], int16_t x, int16_t y, uint16_t color, uint8_t zoom); |
| kkado | 0:5115e0080bd5 | 55 | void setBuf(uint8_t* _buf); |
| kkado | 0:5115e0080bd5 | 56 | void setCMask(uint8_t* _cmask); |
| kkado | 0:5115e0080bd5 | 57 | |
| kkado | 0:5115e0080bd5 | 58 | void fillRect(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t color); |
| kkado | 0:5115e0080bd5 | 59 | void openRect(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t color); |
| kkado | 0:5115e0080bd5 | 60 | void drawHLine(int16_t x, int16_t y, int16_t length, uint16_t color); |
| kkado | 0:5115e0080bd5 | 61 | void drawVLine(int16_t x, int16_t y, int16_t length, uint16_t color); |
| kkado | 0:5115e0080bd5 | 62 | void drawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color); |
| kkado | 0:5115e0080bd5 | 63 | void openCircle(int16_t x0, int16_t y0, uint16_t radius, uint16_t color); |
| kkado | 0:5115e0080bd5 | 64 | void fillCircle(int16_t x0, int16_t y0, uint16_t radius, uint16_t color); |
| kkado | 0:5115e0080bd5 | 65 | |
| kkado | 0:5115e0080bd5 | 66 | private: |
| kkado | 0:5115e0080bd5 | 67 | void spiwrite(uint8_t c); |
| kkado | 0:5115e0080bd5 | 68 | void writeCommand(uint8_t c); |
| kkado | 0:5115e0080bd5 | 69 | void writeData(uint8_t c); |
| kkado | 0:5115e0080bd5 | 70 | DigitalOut cs, dc, rst; |
| kkado | 0:5115e0080bd5 | 71 | BurstSPI spi; |
| kkado | 0:5115e0080bd5 | 72 | uint8_t *buf, *collisionmask; |
| kkado | 0:5115e0080bd5 | 73 | }; |
| kkado | 0:5115e0080bd5 | 74 | |
| kkado | 0:5115e0080bd5 | 75 | #endif |