#ifndef __BSP_OLED_SH1106_H
#define __BSP_OLED_SH1106_H

#include <main.h>

#define BSP_OLED_I2C_ADDRESS 0x3C
#define BSP_OLED_I2C_TIMEOUT 20

#define BSP_OLED_CONTROLLER_SH1106

#define BSP_OLED_X 128
#define BSP_OLED_Y (64/8)

HAL_StatusTypeDef bsp_oled_init(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef bsp_oled_update(void);
void bsp_oled_clear_fb(void);
void bsp_oled_6x8(uint8_t x, uint8_t y, const char* str);
void bsp_oled_8x16(uint8_t x, uint8_t y, const char* str);

BaseType_t bsp_oled_i2c_tx_done_cb(I2C_HandleTypeDef *hi2c);

#endif
