33 #include "freertos/FreeRTOS.h"
34 #include "freertos/task.h"
46 #define tag CONFIG_SSD1306_TAG
55 #if CONFIG_I2C_INTERFACE
59 #if CONFIG_SPI_INTERFACE
60 spi_master_init(
dev, CONFIG_MOSI_GPIO, CONFIG_SCLK_GPIO, CONFIG_CS_GPIO, CONFIG_DC_GPIO, CONFIG_RESET_GPIO);
67 #if CONFIG_SSD1306_128x64
70 #if CONFIG_SSD1306_128x32
83 #if CONFIG_SSD1306_128x64
88 #if CONFIG_SSD1306_128x32
116 int _text_len = text_len;
122 for (uint8_t i = 0; i < _text_len; i++)
124 memcpy(image, font8x8[(uint8_t)text[i]], 8);
178 memset(space, 0x20,
sizeof(space));
179 for (
int page = 0; page <
dev->
_pages; page++)
193 memset(space, 0x20,
sizeof(space));
220 ESP_LOGI(
tag,
"software_scroll start=%d end=%d _pages=%d", start, end,
dev->
_pages);
221 if (start < 0 || end < 0)
257 void (*func)(
SSD1306_t *
dev,
int page,
int seg, uint8_t *images,
int width);
271 ESP_LOGD(
tag,
"srcIndex=%d dstIndex=%d", srcIndex, dstIndex);
274 for (
int seg = 0; seg <
dev->
_width; seg++)
286 int _text_len = text_len;
292 for (uint8_t i = 0; i < _text_len; i++)
294 memcpy(image, font8x8[(uint8_t)text[i]], 8);
299 (*func)(
dev, srcIndex, seg, image, 8);
300 for (
int j = 0; j < 8; j++)
321 ESP_LOGD(
tag,
"srcIndex=%d dstIndex=%d", srcIndex, dstIndex);
370 for (
int i = 0; i < blen; i++)
385 for (
int i = 0; i < blen; i++)
401 for (
int j = 0; j < 8; j++)
403 ch2 = (ch2 << 1) + (ch1 & 0x01);
414 void (*func)(
SSD1306_t *
dev,
int page,
int seg, uint8_t *images,
int width);
425 for (
int page = 0; page <
dev->
_pages; page++)
428 for (
int line = 0; line < 8; line++)
432 image[0] = image[0] >> 1;
436 image[0] = image[0] << 1;
438 for (
int seg = 0; seg < 128; seg++)
440 (*func)(
dev, page, seg, image, 1);
basic font to use with an ssd1306 screen
a clean simple font to use with an ssd1306 screen
a clean simple font to use with an ssd1306 screen
SSD1306_t dev
device for oled
void ssd1306_contrast(SSD1306_t *dev, int contrast)
void ssd1306_software_scroll(SSD1306_t *dev, int start, int end)
int bottom
positions for oled
void ssd1306_hardware_scroll_line(SSD1306_t *dev, int page, ssd1306_scroll_type_t scroll)
void ssd1306_deinit(SSD1306_t *dev)
void ssd1306_wrapped_display_text(SSD1306_t *dev, int line, char *text)
void ssd1306_flip(uint8_t *buf, size_t blen)
void ssd1306_display_image(SSD1306_t *dev, int page, int seg, uint8_t *images, int width)
uint8_t ssd1306_rotate(uint8_t ch1)
void ssd1306_fadeout(SSD1306_t *dev)
void ssd1306_scroll_text(SSD1306_t *dev, char *text, int text_len, bool invert)
void ssd1306_invert(uint8_t *buf, size_t blen)
void ssd1306_hardware_scroll(SSD1306_t *dev, ssd1306_scroll_type_t scroll)
void ssd1306_init(SSD1306_t *dev)
void ssd1306_clear_line(SSD1306_t *dev, int page, bool invert)
void ssd1306_display_text(SSD1306_t *dev, int page, char *text, int text_len, bool invert)
void ssd1306_scroll_clear(SSD1306_t *dev)
void ssd1306_dump(SSD1306_t dev)
void ssd1306_clear_screen(SSD1306_t *dev, bool invert)
#define tag
tag for logging library
defininitions for setting up, interacting with and sending commands to an ssd1306 driven screen via i...
void i2c_contrast(SSD1306_t *dev, int contrast)
void spi_hardware_scroll(SSD1306_t *dev, ssd1306_scroll_type_t scroll)
void i2c_master_init(SSD1306_t *dev, int16_t sda, int16_t scl, int16_t reset)
void spi_display_image(SSD1306_t *dev, int page, int seg, uint8_t *images, int width)
void spi_master_init(SSD1306_t *dev, int16_t GPIO_MOSI, int16_t GPIO_SCLK, int16_t GPIO_CS, int16_t GPIO_DC, int16_t GPIO_RESET)
void spi_hardware_scroll_line(SSD1306_t *dev, int page, ssd1306_scroll_type_t scroll)
void spi_init(SSD1306_t *dev, int width, int height)
void i2c_init(SSD1306_t *dev, int width, int height)
void spi_contrast(SSD1306_t *dev, int contrast)
void i2c_hardware_scroll_line(SSD1306_t *dev, int page, ssd1306_scroll_type_t scroll)
void i2c_display_image(SSD1306_t *dev, int page, int seg, uint8_t *images, int width)
void i2c_hardware_scroll(SSD1306_t *dev, ssd1306_scroll_type_t scroll)