#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 AddSymbol(uint8_t symbol); void DelSymbol(); void SetPage(uint8_t p); #ifdef __cplusplus } #endif #endif