SHIELD-Malb41k1/slave/head_oled_i2c.h

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