35 extern uint16_t ssd1306_color;
38 static const PROGMEM uint8_t s_oled128x128_initData[] =
40 SSD1351_UNLOCK, CMD_ARG, 0x12,
41 SSD1351_UNLOCK, CMD_ARG, 0xB1,
43 SSD1351_CLOCKDIV, CMD_ARG, 0xF1,
44 SSD1351_SETMULTIPLEX, CMD_ARG, 127,
45 SSD1351_SEGREMAP, CMD_ARG, 0B00110101,
46 SSD1351_SETSTARTLINE, CMD_ARG, 0x00,
47 SSD1351_SETDISPLAYOFFSET, CMD_ARG, 0x00,
48 SSD1351_SETGPIO, CMD_ARG, 0x00,
49 SSD1351_SETFUNCTION, CMD_ARG, 0x01,
50 SSD1351_SETPRECHARGE, CMD_ARG, 0x32,
51 SSD1351_VCOMH, CMD_ARG, 0x05,
52 SSD1351_PRECHARGELEVEL, CMD_ARG, 0x17,
53 SSD1351_NORMALDISPLAY,
54 SSD1351_CONTRAST, CMD_ARG, 0xC8,
57 SSD1351_MASTERCURRENT, CMD_ARG, 0x0F,
58 SSD1351_EXTVSL, CMD_ARG, 0xA0, CMD_ARG, 0xB5, CMD_ARG, 0x55,
59 SSD1351_PRECHARGESECOND, CMD_ARG, 0x01,
61 SSD1351_NORMALDISPLAY,
64 static uint8_t s_column;
65 static uint8_t s_page;
107 static void ssd1351_nextPage(
void)
110 ssd1351_setBlock(s_column,s_page+1,0);
113 static void ssd1351_nextPage2(
void)
137 static void ssd1351_sendPixels(uint8_t data)
139 for (uint8_t i=8; i>0; i--)
155 static void ssd1351_sendPixelsBuffer(
const uint8_t *buffer, uint16_t len)
159 ssd1351_sendPixels(*buffer);
164 static void ssd1351_sendPixel8(uint8_t data)
184 for( uint8_t i=0; i<
sizeof(s_oled128x128_initData); i++)
186 uint8_t data = pgm_read_byte(&s_oled128x128_initData[i]);
189 data = pgm_read_byte(&s_oled128x128_initData[++i]);
206 pinMode(rstPin, OUTPUT);
207 digitalWrite(rstPin, HIGH);
211 digitalWrite(rstPin, LOW);
213 digitalWrite(rstPin, HIGH);
void ssd1351_setMode(lcd_mode_t mode)
Sets GDRAM autoincrement mode.
void(* send)(uint8_t data)
uint32_t s_ssd1306_spi_clock
void(* set_block)(lcduint_t x, lcduint_t y, lcduint_t w)
Sets block in RAM of lcd display controller to write data to.
void ssd1351_128x128_init(void)
Inits 128x128 RGB OLED display (based on SSD1351 controller).
void(* send_pixels8)(uint8_t data)
Sends RGB pixel encoded in 3-3-2 format to OLED driver. Sends RGB pixel encoded in 3-3-2 format to OL...
void ssd1306_spiDataMode(uint8_t mode)
void(* send_pixels_buffer1)(const uint8_t *buffer, uint16_t len)
void(* send_pixels1)(uint8_t data)
void ssd1306_spiInit(int8_t cesPin, int8_t dcPin)
ssd1306_lcd_t ssd1306_lcd
void ssd1351_128x128_spi_init(int8_t rstPin, int8_t cesPin, int8_t dcPin)
Inits 128x128 RGB OLED display over spi (based on SSD1351 controller).
ssd1306_interface_t ssd1306_intf
void(* set_mode)(lcd_mode_t mode)
Sets library display mode for direct draw functions.