34 extern uint16_t ssd1306_color;
37 static uint8_t s_rotation = 0x00;
38 static uint8_t s_rgb_bit = 0b00001000;
40 static const PROGMEM uint8_t s_oled128x128_initData[] =
59 0xC0, CMD_ARG, 0x0A, CMD_ARG, 0x02,
61 0xC5, CMD_ARG, 0x50, CMD_ARG, 0x5B,
65 0x36, CMD_ARG, 0b00101000,
69 static const PROGMEM uint8_t s_oled128x160_initData[] =
77 0xE0, CMD_ARG, 0x3F, CMD_ARG, 0x25, CMD_ARG, 0x1C,
78 CMD_ARG, 0x1E, CMD_ARG, 0x20, CMD_ARG, 0x12,
79 CMD_ARG, 0x2A, CMD_ARG, 0x90, CMD_ARG, 0x24,
80 CMD_ARG, 0x11, CMD_ARG, 0x00, CMD_ARG, 0x00,
81 CMD_ARG, 0x00, CMD_ARG, 0x00, CMD_ARG, 0x00,
82 0xE1, CMD_ARG, 0x20, CMD_ARG, 0x20, CMD_ARG, 0x20,
83 CMD_ARG, 0x20, CMD_ARG, 0x05, CMD_ARG, 0x00,
84 CMD_ARG, 0x15, CMD_ARG, 0xA7, CMD_ARG, 0x3D,
85 CMD_ARG, 0x18, CMD_ARG, 0x25, CMD_ARG, 0x2A,
86 CMD_ARG, 0x2B, CMD_ARG, 0x2B, CMD_ARG, 0x3A,
87 0xB1, CMD_ARG, 0x08, CMD_ARG, 0x08,
89 0xC0, CMD_ARG, 0x0A, CMD_ARG, 0x02,
91 0xC5, CMD_ARG, 0x50, CMD_ARG, 0x5B,
95 0x36, CMD_ARG, 0b00100000,
99 static uint8_t s_column;
100 static uint8_t s_page;
115 + (s_rotation == 3 ? 32 : 0));
123 + (s_rotation == 2 ? 32: 0));
140 + (s_rotation == 7 ? 32 : 0));
153 static void il9163_nextPage(
void)
175 s_rotation = mode ? 0x00 : 0x04;
178 static void il9163_sendPixels(uint8_t data)
180 for (uint8_t i=8; i>0; i--)
196 static void il9163_sendPixelsBuffer(
const uint8_t *buffer, uint16_t len)
200 il9163_sendPixels(*buffer);
205 static void il9163_sendPixel8(uint8_t data)
217 s_rgb_bit = 0b00001000;
231 pinMode(rstPin, OUTPUT);
232 digitalWrite(rstPin, HIGH);
236 digitalWrite(rstPin, LOW);
238 digitalWrite(rstPin, HIGH);
249 if ((rotation^s_rotation) & 0x01)
255 s_rotation = (rotation & 0x03) | (s_rotation & 0x04);
264 ram_mode = 0b00100000;
267 ram_mode = 0b01000000;
270 ram_mode = 0b11100000;
273 ram_mode = 0b10000000;
276 ram_mode = 0b00000000;
279 ram_mode = 0b01100000;
282 ram_mode = 0b11000000;
285 ram_mode = 0b10100000;
353 s_rgb_bit = 0b00000000;
367 pinMode(rstPin, OUTPUT);
368 digitalWrite(rstPin, HIGH);
372 digitalWrite(rstPin, LOW);
374 digitalWrite(rstPin, HIGH);
void st7735_128x160_init(void)
Inits 128x160 RGB OLED display (based on st7735 controller).
void ssd1306_configureSpiDisplay(const uint8_t *config, uint8_t configSize)
Sends configuration being passed to lcd display spi controller.
void st7735_128x160_spi_init(int8_t rstPin, int8_t cesPin, int8_t dcPin)
Inits 128x160 RGB TFT display over spi (based on st7735 controller).
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(* 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 il9163_128x128_init(void)
Inits 128x128 RGB OLED display (based on il9163 controller).
void ssd1306_spiInit(int8_t cesPin, int8_t dcPin)
ssd1306_lcd_t ssd1306_lcd
ssd1306_interface_t ssd1306_intf
void il9163_128x128_spi_init(int8_t rstPin, int8_t cesPin, int8_t dcPin)
Inits 128x128 RGB TFT display over spi (based on il9163 controller).
void il9163_setMode(lcd_mode_t mode)
Sets GDRAM autoincrement mode.
void(* set_mode)(lcd_mode_t mode)
Sets library display mode for direct draw functions.
void il9163_setRotation(uint8_t rotation)
Sets screen orientation (rotation)