56 lines
2.6 KiB
C
56 lines
2.6 KiB
C
#ifndef DISPLAY_H_INCLUDED
|
|
#define DISPLAY_H_INCLUDED
|
|
#include <stdint.h>
|
|
|
|
#define WIDTH 128
|
|
#define PIXEL_HEIGHT 64
|
|
#define HEIGHT (PIXEL_HEIGHT / 8)
|
|
extern const unsigned char fb_font[256][8];
|
|
#define SSD1306_MEMORYMODE 0x20
|
|
#define SSD1306_COLUMNADDR 0x21
|
|
#define SSD1306_PAGEADDR 0x22
|
|
#define SSD1306_SETCONTRAST 0x81
|
|
#define SSD1306_CHARGEPUMP 0x8D
|
|
#define SSD1306_SEGREMAP 0xA0
|
|
#define SSD1306_DISPLAYALLON_RESUME 0xA4
|
|
#define SSD1306_DISPLAYALLON 0xA5
|
|
#define SSD1306_NORMALDISPLAY 0xA6
|
|
#define SSD1306_INVERTDISPLAY 0xA7
|
|
#define SSD1306_SETMULTIPLEX 0xA8
|
|
#define SSD1306_DISPLAYOFF 0xAE
|
|
#define SSD1306_DISPLAYON 0xAF
|
|
#define SSD1306_COMSCANINC 0xC0
|
|
#define SSD1306_COMSCANDEC 0xC8
|
|
#define SSD1306_SETDISPLAYOFFSET 0xD3
|
|
#define SSD1306_SETDISPLAYCLOCKDIV 0xD5
|
|
#define SSD1306_SETPRECHARGE 0xD9
|
|
#define SSD1306_SETCOMPINS 0xDA
|
|
#define SSD1306_SETVCOMDETECT 0xDB
|
|
#define SSD1306_SETLOWCOLUMN 0x00
|
|
#define SSD1306_SETHIGHCOLUMN 0x10
|
|
#define SSD1306_SETSTARTLINE 0x40
|
|
#define SSD1306_RIGHT_HORIZONTAL_SCROLL 0x26
|
|
#define SSD1306_LEFT_HORIZONTAL_SCROLL 0x27
|
|
#define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29
|
|
#define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A
|
|
#define SSD1306_DEACTIVATE_SCROLL 0x2E
|
|
#define SSD1306_ACTIVATE_SCROLL 0x2F
|
|
#define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3
|
|
|
|
|
|
|
|
/* driver module plug-in (SPI or I2C) */
|
|
void display_send_data(void *priv, const uint8_t *buf, int len);
|
|
void display_send_cmd(void *priv, uint8_t cmd);
|
|
void display_send_cmd1(void *priv, uint8_t cmd, uint8_t arg1);
|
|
void display_send_cmd2(void *priv, uint8_t cmd, uint8_t arg1, uint8_t arg2);
|
|
|
|
int display_init(void *priv);
|
|
void display_text(int row, const char *text);
|
|
void display_text_inverse(int row, const char *text);
|
|
void display_scroll(void *priv, uint8_t line);
|
|
void display_setcontrast(void *priv, uint8_t c);
|
|
uint8_t display_getcontrast(void *priv);
|
|
void display_clear(void *priv);
|
|
|
|
#endif
|