diff options
author | inmarket <andrewh@inmarket.com.au> | 2015-09-18 11:17:19 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2015-09-18 11:18:01 +1000 |
commit | 0ab22283645c819dc6228356ed1b608904a6ba9a (patch) | |
tree | b6e8f3b91b96e1c23d47c18db0b0628bc198ac89 /drivers/gdisp/SSD1306 | |
parent | 4eb0dbb1e3b8be7eb85c8830ef350d4dae021f87 (diff) | |
download | uGFX-0ab22283645c819dc6228356ed1b608904a6ba9a.tar.gz uGFX-0ab22283645c819dc6228356ed1b608904a6ba9a.tar.bz2 uGFX-0ab22283645c819dc6228356ed1b608904a6ba9a.zip |
Add support for SH1106 in the SSD1306 driver
Diffstat (limited to 'drivers/gdisp/SSD1306')
-rw-r--r-- | drivers/gdisp/SSD1306/SSD1306.h | 3 | ||||
-rw-r--r-- | drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gdisp/SSD1306/SSD1306.h b/drivers/gdisp/SSD1306/SSD1306.h index 7d7010e8..8ec8b3ad 100644 --- a/drivers/gdisp/SSD1306/SSD1306.h +++ b/drivers/gdisp/SSD1306/SSD1306.h @@ -44,6 +44,9 @@ #define SSD1306_EXTERNALVCC 0x1
#define SSD1306_SWITCHCAPVCC 0x2
+#define SSD1306_SETLOWCOLUMN 0x00
+#define SSD1306_SETHIGHCOLUMN 0x10
+
// Scrolling #defines
#define SSD1306_SCROLL_ACTIVATE 0x2F
#define SSD1306_SCROLL_DEACTIVATE 0x2E
diff --git a/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c b/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c index 2313e765..5a950b0d 100644 --- a/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c +++ b/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c @@ -150,6 +150,12 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { write_cmd(g, SSD1306_SETSTARTLINE | 0); while (pages--) { + #if SSD1306_SH1106 + write_cmd(g, SSD1306_PAM_PAGE_START + (7 - pages)); + write_cmd(g, SSD1306_SETLOWCOLUMN + 2); + write_cmd(g, SSD1306_SETHIGHCOLUMN); + #endif + write_data(g, ram, SSD1306_PAGE_WIDTH); ram += SSD1306_PAGE_WIDTH; } |