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.
Diff: ssd1306.h
- Revision:
- 0:21cb91208386
- Child:
- 1:1d58d378221c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ssd1306.h Tue Feb 05 09:46:58 2013 +0000
@@ -0,0 +1,85 @@
+#ifndef __SSD1306_H__
+#define __SSD1306_H__
+
+#define FONT_HEIGHT_OFFSET 0 /* Character pixel height (in multiples of 8) at this position */
+#define FONT_SIZE_OFFSET 1 /* Character data size (in bytes) at this position */
+#define FONT_DATA_OFFSET 2 /* Data starts at this position */
+#define FONT_START ' ' /* First character value in the font table */
+
+class SSD1306
+{
+public:
+ SSD1306(PinName cs, PinName rs, PinName dc, PinName clk, PinName data);
+
+ void initialise();
+ void update();
+
+ void off();
+ void on();
+
+ void invert(int i);
+
+ void set_low_column(int value);
+ void set_high_column(int value);
+ void set_start_line(int value);
+
+ void set_display_offset(int value);
+
+ void clear();
+ void set_pixel(int x, int y);
+ void clear_pixel(int x, int y);
+ void line(int x0, int y0, int x1, int y1);
+
+ void draw_string(char *font, int x, int y, const char *string);
+ void draw_char(char *font, int x, int y, char c);
+
+private:
+ SPI _spi;
+ DigitalOut _cs, _reset, _dc;
+ char _screen[1024];
+
+ int _cursor_x, _cursor_y;
+
+ void _send_command(int code);
+ void _send_data(int value);
+};
+
+#define SSD1306_LCDWIDTH 128
+#define SSD1306_LCDHEIGHT 64
+
+#define SSD1306_SETCONTRAST 0x81
+#define SSD1306_DISPLAYALLON_RESUME 0xA4
+#define SSD1306_DISPLAYALLON 0xA5
+#define SSD1306_NORMALDISPLAY 0xA6
+#define SSD1306_INVERTDISPLAY 0xA7
+#define SSD1306_DISPLAYOFF 0xAE
+#define SSD1306_DISPLAYON 0xAF
+
+#define SSD1306_SETDISPLAYOFFSET 0xD3
+#define SSD1306_SETCOMPINS 0xDA
+
+#define SSD1306_SETVCOMDETECT 0xDB
+
+#define SSD1306_SETDISPLAYCLOCKDIV 0xD5
+#define SSD1306_SETPRECHARGE 0xD9
+
+#define SSD1306_SETMULTIPLEX 0xA8
+
+#define SSD1306_SETLOWCOLUMN 0x00
+#define SSD1306_SETHIGHCOLUMN 0x10
+
+#define SSD1306_SETSTARTLINE 0x40
+
+#define SSD1306_MEMORYMODE 0x20
+
+#define SSD1306_COMSCANINC 0xC0
+#define SSD1306_COMSCANDEC 0xC8
+
+#define SSD1306_SEGREMAP 0xA0
+
+#define SSD1306_CHARGEPUMP 0x8D
+
+#define SSD1306_EXTERNALVCC 0x1
+#define SSD1306_SWITCHCAPVCC 0x2
+
+#endif