28 #ifndef _LCD_COMMON_H_ 29 #define _LCD_COMMON_H_ 114 void (*set_block)(lcduint_t x, lcduint_t y, lcduint_t w);
122 void (*next_page)(void);
128 void (*send_pixels1)(uint8_t data);
135 void (*send_pixels_buffer1)(
const uint8_t *buffer, uint16_t len);
142 void (*send_pixels8)(uint8_t data);
169 #define s_displayHeight ssd1306_lcd.height 175 #define s_displayWidth ssd1306_lcd.width 181 #define g_lcd_type ssd1306_lcd.type 208 #define ssd1306_setRamBlock ssd1306_lcd.set_block 217 #define ssd1306_nextRamPage ssd1306_lcd.next_page 224 #define ssd1306_sendPixels ssd1306_lcd.send_pixels1 232 #define ssd1306_sendPixelsBuffer ssd1306_lcd.send_pixels_buffer1 240 #define ssd1306_sendPixel8 ssd1306_lcd.send_pixels8 309 #define SSD1306_COMPAT_SPI_BLOCK_8BIT_CMDS(column_cmd, row_cmd) \ 310 static uint8_t __s_column; \ 311 static uint8_t __s_page; \ 312 static void set_block_compat(lcduint_t x, lcduint_t y, lcduint_t w) \ 314 uint8_t rx = w ? (x + w - 1) : (ssd1306_lcd.width - 1); \ 317 ssd1306_intf.start(); \ 318 ssd1306_spiDataMode(0); \ 319 ssd1306_intf.send(column_cmd); \ 320 ssd1306_intf.send(x); \ 321 ssd1306_intf.send(rx < ssd1306_lcd.width ? rx : (ssd1306_lcd.width - 1)); \ 322 ssd1306_intf.send(row_cmd); \ 323 ssd1306_intf.send(y<<3); \ 324 ssd1306_intf.send(((y<<3) + 7) < ssd1306_lcd.height ? ((y<<3) + 7) : (ssd1306_lcd.height - 1)); \ 325 ssd1306_spiDataMode(1); \ 327 static void next_page_compat() \ 329 ssd1306_intf.stop(); \ 330 set_block_compat(__s_column,__s_page+1,0); \ 345 #define CONTROLLER_NATIVE_SPI_BLOCK_8BIT_CMDS(column_cmd, row_cmd) \ 346 static void set_block_native(lcduint_t x, lcduint_t y, lcduint_t w) \ 348 uint8_t rx = w ? (x + w - 1) : (ssd1306_lcd.width - 1); \ 349 ssd1306_intf.start(); \ 350 ssd1306_spiDataMode(0); \ 351 ssd1306_intf.send(column_cmd); \ 352 ssd1306_intf.send(x); \ 353 ssd1306_intf.send(rx < ssd1306_lcd.width ? rx : (ssd1306_lcd.width - 1)); \ 354 ssd1306_intf.send(row_cmd); \ 355 ssd1306_intf.send(y); \ 356 ssd1306_intf.send(ssd1306_lcd.height - 1); \ 357 ssd1306_spiDataMode(1); \ 359 static void next_page_native() \ 369 #define SSD1306_COMPAT_SEND_PIXELS_RGB8_CMDS() \ 370 extern uint16_t ssd1306_color; \ 371 static void send_pixels_compat(uint8_t data) \ 373 for (uint8_t i=8; i>0; i--) \ 377 ssd1306_intf.send( (uint8_t)ssd1306_color ); \ 381 ssd1306_intf.send( 0B00000000 ); \ 386 static void send_pixels_buffer_compat(const uint8_t *buffer, uint16_t len) \ 390 send_pixels_compat(*buffer); \ void ssd1306_setMode(lcd_mode_t mode)
Sets library display mode for direct draw functions.
void ssd1306_configureSpiDisplay(const uint8_t *config, uint8_t configSize)
Sends configuration being passed to lcd display spi controller.
void ssd1306_configureI2cDisplay(const uint8_t *config, uint8_t configSize)
Sends configuration being passed to lcd display i2c/spi controller.
void ssd1306_resetController(int8_t rstPin, uint8_t delayMs)
Does hardware reset for oled controller.
ssd1306_lcd_t ssd1306_lcd
void ssd1306_sendData(uint8_t data) __attribute__((deprecated))