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);
149 void (*send_pixels16)(uint16_t data);
176 #define s_displayHeight ssd1306_lcd.height 182 #define s_displayWidth ssd1306_lcd.width 188 #define g_lcd_type ssd1306_lcd.type 215 #define ssd1306_setRamBlock ssd1306_lcd.set_block 224 #define ssd1306_nextRamPage ssd1306_lcd.next_page 231 #define ssd1306_sendPixels ssd1306_lcd.send_pixels1 239 #define ssd1306_sendPixelsBuffer ssd1306_lcd.send_pixels_buffer1 247 #define ssd1306_sendPixel8 ssd1306_lcd.send_pixels8 330 #define SSD1306_COMPAT_SPI_BLOCK_8BIT_CMDS(column_cmd, row_cmd) \ 331 static uint8_t __s_column; \ 332 static uint8_t __s_page; \ 333 static void set_block_compat(lcduint_t x, lcduint_t y, lcduint_t w) \ 335 uint8_t rx = w ? (x + w - 1) : (ssd1306_lcd.width - 1); \ 338 ssd1306_intf.start(); \ 339 ssd1306_spiDataMode(0); \ 340 ssd1306_intf.send(column_cmd); \ 341 ssd1306_intf.send(x); \ 342 ssd1306_intf.send(rx < ssd1306_lcd.width ? rx : (ssd1306_lcd.width - 1)); \ 343 ssd1306_intf.send(row_cmd); \ 344 ssd1306_intf.send(y<<3); \ 345 ssd1306_intf.send(((y<<3) + 7) < ssd1306_lcd.height ? ((y<<3) + 7) : (ssd1306_lcd.height - 1)); \ 346 ssd1306_spiDataMode(1); \ 348 static void next_page_compat(void) \ 350 ssd1306_intf.stop(); \ 351 set_block_compat(__s_column,__s_page+1,0); \ 366 #define CONTROLLER_NATIVE_SPI_BLOCK_8BIT_CMDS(column_cmd, row_cmd) \ 367 static void set_block_native(lcduint_t x, lcduint_t y, lcduint_t w) \ 369 uint8_t rx = w ? (x + w - 1) : (ssd1306_lcd.width - 1); \ 370 ssd1306_intf.start(); \ 371 ssd1306_spiDataMode(0); \ 372 ssd1306_intf.send(column_cmd); \ 373 ssd1306_intf.send(x); \ 374 ssd1306_intf.send(rx < ssd1306_lcd.width ? rx : (ssd1306_lcd.width - 1)); \ 375 ssd1306_intf.send(row_cmd); \ 376 ssd1306_intf.send(y); \ 377 ssd1306_intf.send(ssd1306_lcd.height - 1); \ 378 ssd1306_spiDataMode(1); \ 380 static void next_page_native(void) \ 390 #define SSD1306_COMPAT_SEND_PIXELS_RGB8_CMDS() \ 391 extern uint16_t ssd1306_color; \ 392 static void send_pixels_compat(uint8_t data) \ 394 for (uint8_t i=8; i>0; i--) \ 398 ssd1306_intf.send( (uint8_t)ssd1306_color ); \ 402 ssd1306_intf.send( 0B00000000 ); \ 407 static void send_pixels_buffer_compat(const uint8_t *buffer, uint16_t len) \ 411 send_pixels_compat(*buffer); \ 422 #define SSD1306_COMPAT_SEND_PIXELS_RGB16_CMDS() \ 423 extern uint16_t ssd1306_color; \ 424 static void send_pixels_compat16(uint8_t data) \ 426 for (uint8_t i=8; i>0; i--) \ 430 ssd1306_intf.send( (uint8_t)(ssd1306_color >> 8 ) ); \ 431 ssd1306_intf.send( (uint8_t)(ssd1306_color & 0xFF) ); \ 435 ssd1306_intf.send( 0B00000000 ); \ 436 ssd1306_intf.send( 0B00000000 ); \ 441 static void send_pixels_buffer_compat16(const uint8_t *buffer, uint16_t len) \ 445 send_pixels_compat16(*buffer); \ void ssd1306_configureSpiDisplay2(const uint8_t *config, uint8_t configSize)
Sends configuration being passed to lcd display spi controller.
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))