SSD1327 SeeedStudio OLED display

Dependents:   drive drive1 drive213 drive123213

Committer:
vart
Date:
Tue Oct 11 08:33:26 2016 +0000
Revision:
0:dae0ebfc0852
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vart 0:dae0ebfc0852 1 #ifndef SSD1327_H
vart 0:dae0ebfc0852 2 #define SSD1327_H
vart 0:dae0ebfc0852 3
vart 0:dae0ebfc0852 4 #include "mbed.h"
vart 0:dae0ebfc0852 5
vart 0:dae0ebfc0852 6 /** 96x96 pixel SSD1327 SeeedStudio 1.12" OLED display
vart 0:dae0ebfc0852 7
vart 0:dae0ebfc0852 8 based on https://github.com/blitz/mbed-arch-pro
vart 0:dae0ebfc0852 9
vart 0:dae0ebfc0852 10 Example:
vart 0:dae0ebfc0852 11 @code
vart 0:dae0ebfc0852 12 #include "mbed.h"
vart 0:dae0ebfc0852 13 #include "SSD1327.h"
vart 0:dae0ebfc0852 14 #include "defaultfont.h"
vart 0:dae0ebfc0852 15
vart 0:dae0ebfc0852 16 //Pin Defines for I2C Bus
vart 0:dae0ebfc0852 17 #define D_SDA D3
vart 0:dae0ebfc0852 18 #define D_SCL D6
vart 0:dae0ebfc0852 19 I2C i2c(D_SDA, D_SCL);
vart 0:dae0ebfc0852 20
vart 0:dae0ebfc0852 21 // Instantiate OLED
vart 0:dae0ebfc0852 22 static SSD1327 oled { i2c };
vart 0:dae0ebfc0852 23
vart 0:dae0ebfc0852 24
vart 0:dae0ebfc0852 25 int main() {
vart 0:dae0ebfc0852 26 oled.set_font(default_font,8,8);
vart 0:dae0ebfc0852 27 oled.set_text_rc(0,0);
vart 0:dae0ebfc0852 28 oled.puts("Hello world!");
vart 0:dae0ebfc0852 29 while (1) {wait(0.1);}
vart 0:dae0ebfc0852 30 }
vart 0:dae0ebfc0852 31 @endcode
vart 0:dae0ebfc0852 32 */
vart 0:dae0ebfc0852 33
vart 0:dae0ebfc0852 34 class SSD1327 {
vart 0:dae0ebfc0852 35 I2C &i2c;
vart 0:dae0ebfc0852 36
vart 0:dae0ebfc0852 37
vart 0:dae0ebfc0852 38 public:
vart 0:dae0ebfc0852 39 /* Create SSD1327 object
vart 0:dae0ebfc0852 40 */
vart 0:dae0ebfc0852 41 SSD1327(I2C &i2c);
vart 0:dae0ebfc0852 42
vart 0:dae0ebfc0852 43 const static uint8_t address = 0x3c << 1;
vart 0:dae0ebfc0852 44 const static uint8_t cmd_mode = 0x80;
vart 0:dae0ebfc0852 45 const static uint8_t data_mode = 0x40;
vart 0:dae0ebfc0852 46
vart 0:dae0ebfc0852 47 const static uint8_t PIXELS = 96;
vart 0:dae0ebfc0852 48 const static uint8_t PIXEL_PER_CHAR = 8; // if default font used
vart 0:dae0ebfc0852 49
vart 0:dae0ebfc0852 50 const static uint8_t ROWS = PIXELS / PIXEL_PER_CHAR;
vart 0:dae0ebfc0852 51 const static uint8_t COLS = PIXELS / PIXEL_PER_CHAR;
vart 0:dae0ebfc0852 52
vart 0:dae0ebfc0852 53 /** Set Gray Level
vart 0:dae0ebfc0852 54 * @param level - new gray level (0..0xF)
vart 0:dae0ebfc0852 55 */
vart 0:dae0ebfc0852 56 void set_gray_level(unsigned char level);
vart 0:dae0ebfc0852 57
vart 0:dae0ebfc0852 58 /** Set text font
vart 0:dae0ebfc0852 59 * @param Font - font array
vart 0:dae0ebfc0852 60 * @param width - font width (only 8, 16, 24 or 32)
vart 0:dae0ebfc0852 61 * @param height - font height
vart 0:dae0ebfc0852 62 */
vart 0:dae0ebfc0852 63 void set_font(const uint8_t *Font, int width, int height);
vart 0:dae0ebfc0852 64
vart 0:dae0ebfc0852 65 /** Set new Row and Column
vart 0:dae0ebfc0852 66 * @param row - new row (0..95)
vart 0:dae0ebfc0852 67 * @param column - new column (0..95)
vart 0:dae0ebfc0852 68 */
vart 0:dae0ebfc0852 69 void set_rc(unsigned char row, unsigned char column);
vart 0:dae0ebfc0852 70
vart 0:dae0ebfc0852 71 /** Set new text Row and Column
vart 0:dae0ebfc0852 72 * Used after set_font
vart 0:dae0ebfc0852 73 * @param row - new row (0..96/font_height-1)
vart 0:dae0ebfc0852 74 * @param column - new column (0..96/font_width-1)
vart 0:dae0ebfc0852 75 */
vart 0:dae0ebfc0852 76 void set_text_rc(unsigned char row, unsigned char column);
vart 0:dae0ebfc0852 77
vart 0:dae0ebfc0852 78 /** Put char into display using current font
vart 0:dae0ebfc0852 79 * @param C - printed char
vart 0:dae0ebfc0852 80 */
vart 0:dae0ebfc0852 81 void putc(unsigned char C);
vart 0:dae0ebfc0852 82
vart 0:dae0ebfc0852 83 /** Put string into display using current font
vart 0:dae0ebfc0852 84 * @param str - printed string
vart 0:dae0ebfc0852 85 */
vart 0:dae0ebfc0852 86 void puts(const char *str);
vart 0:dae0ebfc0852 87
vart 0:dae0ebfc0852 88 /** Clear display
vart 0:dae0ebfc0852 89 */
vart 0:dae0ebfc0852 90 void clear();
vart 0:dae0ebfc0852 91
vart 0:dae0ebfc0852 92 // Service low-level functions
vart 0:dae0ebfc0852 93
vart 0:dae0ebfc0852 94 bool send(char mode, const char data[], size_t len);
vart 0:dae0ebfc0852 95
vart 0:dae0ebfc0852 96 void tribyte_cmd(uint8_t a, uint8_t b, uint8_t c);
vart 0:dae0ebfc0852 97
vart 0:dae0ebfc0852 98 void set_column_address(uint8_t start, uint8_t end);
vart 0:dae0ebfc0852 99
vart 0:dae0ebfc0852 100 void set_row_address(uint8_t start, uint8_t end);
vart 0:dae0ebfc0852 101
vart 0:dae0ebfc0852 102 //bool sendf(char mode, char data[], size_t len);
vart 0:dae0ebfc0852 103
vart 0:dae0ebfc0852 104 bool sendx(char mode, char data[], size_t len);
vart 0:dae0ebfc0852 105
vart 0:dae0ebfc0852 106
vart 0:dae0ebfc0852 107 };
vart 0:dae0ebfc0852 108
vart 0:dae0ebfc0852 109 #endif // SSD1327_H
vart 0:dae0ebfc0852 110
vart 0:dae0ebfc0852 111 // EOF