85 lines
2.1 KiB
C
85 lines
2.1 KiB
C
#ifndef head_oled_i2c
|
|
#define head_oled_i2c
|
|
|
|
#define OLED_HEIGHT_64 0x12
|
|
#define OLED_64 0x3F
|
|
|
|
#define OLED_DISPLAY_OFF 0xAE
|
|
#define OLED_DISPLAY_ON 0xAF
|
|
|
|
#define OLED_COMMAND_MODE 0x00
|
|
#define OLED_ONE_COMMAND_MODE 0x80
|
|
#define OLED_DATA_MODE 0x40
|
|
|
|
#define OLED_ADDRESSING_MODE 0x20
|
|
#define OLED_VERTICAL 0x01
|
|
|
|
#define OLED_NORMAL_V 0xC8
|
|
#define OLED_NORMAL_H 0xA1
|
|
|
|
#define OLED_CONTRAST 0x81
|
|
#define OLED_SETCOMPINS 0xDA
|
|
#define OLED_SETVCOMDETECT 0xDB
|
|
#define OLED_CLOCKDIV 0xD5
|
|
#define OLED_SETMULTIPLEX 0xA8
|
|
#define OLED_COLUMNADDR 0x21
|
|
#define OLED_PAGEADDR 0x22
|
|
#define OLED_CHARGEPUMP 0x8D
|
|
|
|
#define OLED_NORMALDISPLAY 0xA6
|
|
|
|
#define OLED_BUFSIZE (128*64/8)
|
|
|
|
#define OLED_MAX_X 127
|
|
#define OLED_MAX_Y 63
|
|
#define OLED_MAX_ROW 7
|
|
|
|
#define OLED_ADDR 0x3C
|
|
#define OLED_I2C_FREQ 100000UL
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void i2c_begin(uint8_t address);
|
|
void i2c_endTransaction();
|
|
void i2c_beginTransmission(uint8_t address);
|
|
void i2c_write(uint8_t data);
|
|
|
|
void endTransm();
|
|
void sendByteRaw(uint8_t data);
|
|
void startTransm();
|
|
void beginData();
|
|
void sendByte(uint8_t data);
|
|
|
|
void sendCommand(uint8_t cmd1);
|
|
void sendCommandData(uint8_t cmd1, uint8_t cmd2);
|
|
uint8_t constrainValue(uint8_t value, uint8_t min, uint8_t max);
|
|
void setWindow(int x0, int y0, int x1, int y1);
|
|
|
|
void beginCommand();
|
|
void beginOneCommand();
|
|
|
|
void initialization();
|
|
|
|
void setBit(uint8_t *value, uint8_t bitIndex, uint8_t bitValue);
|
|
void DrawPixel(uint8_t x, uint8_t y, uint8_t fill);
|
|
void DrawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color);
|
|
void DrawRect(uint8_t x, uint8_t y, uint8_t width, uint8_t height, uint8_t color, uint8_t fill);
|
|
void DrawCircle(uint8_t x0, uint8_t y0, uint8_t radius, uint8_t color, uint8_t fill);
|
|
void Fill(uint8_t fill);
|
|
void update();
|
|
|
|
void DrawChar(uint8_t x, uint8_t y, uint8_t charIndex, uint8_t fill);
|
|
void ClearPages();
|
|
void AddSymbol(uint8_t symbol);
|
|
void DelSymbol();
|
|
void SetPage(uint8_t p);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif |