32 extern uint16_t ssd1306_color;
34 static const PROGMEM uint8_t s_oled96x64_initData[] =
37 SSD1331_SEGREMAP, 0x00 | 0x20 | 0x10 | 0x02 | 0x01,
38 SSD1331_SETSTARTLINE, 0x00,
39 SSD1331_SETDISPLAYOFFSET, 0x00,
40 SSD1331_NORMALDISPLAY,
41 SSD1331_SETMULTIPLEX, 63,
42 SSD1331_SETMASTER, 0x8E,
43 SSD1331_POWERMODE, 0x0B,
44 SSD1331_SETPRECHARGE, 0x31,
45 SSD1331_CLOCKDIV, 0xF0,
46 SSD1331_PRECHARGEA, 0x64,
47 SSD1331_PRECHARGEB, 0x78,
48 SSD1331_PRECHARGELEVEL, 0x3A,
50 SSD1331_MASTERCURRENT, 0x09,
51 SSD1331_CONTRASTA, 0x91,
52 SSD1331_CONTRASTB, 0x50,
53 SSD1331_CONTRASTC, 0x7D,
57 static uint8_t s_column;
58 static uint8_t s_page;
59 static uint8_t s_rotation = 0x04;
61 static void ssd1331_setBlock(lcduint_t x, lcduint_t y, lcduint_t w)
77 static void ssd1331_setBlock2(lcduint_t x, lcduint_t y, lcduint_t w)
91 static void ssd1331_nextPage(
void)
94 ssd1331_setBlock(s_column,s_page+1,0);
97 static void ssd1331_nextPage2(
void)
101 static void ssd1331_sendPixels(uint8_t data)
103 for (uint8_t i=8; i>0; i--)
117 static void ssd1331_sendPixelsBuffer(
const uint8_t *buffer, uint16_t len)
121 ssd1331_sendPixels(*buffer);
147 if ((rotation^s_rotation) & 0x01)
153 s_rotation = (rotation & 0x03) | (s_rotation & 0x04);
161 ram_mode = 0b00110010;
164 ram_mode = 0b00110001;
167 ram_mode = 0b00100000;
170 ram_mode = 0b00100011;
174 ram_mode = 0b00110011;
177 ram_mode = 0b00110000;
180 ram_mode = 0b00100001;
183 ram_mode = 0b00100010;
186 ram_mode = 0b00100000;
206 for( uint8_t i=0; i<
sizeof(s_oled96x64_initData); i++)
216 pinMode(rstPin, OUTPUT);
217 digitalWrite(rstPin, HIGH);
221 digitalWrite(rstPin, LOW);
223 digitalWrite(rstPin, HIGH);
void(* send)(uint8_t data)
void ssd1331_setMode(lcd_mode_t mode)
Sets GDRAM autoincrement mode.
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 ssd1306_spiInit(int8_t cesPin, int8_t dcPin)
ssd1306_lcd_t ssd1306_lcd
ssd1306_interface_t ssd1306_intf
void ssd1306_sendCommand(uint8_t command)
void ssd1331_setRotation(uint8_t rotation)
Sets screen orientation (rotation)
void ssd1331_96x64_spi_init(int8_t rstPin, int8_t cesPin, int8_t dcPin)
Inits 96x64 RGB OLED display over spi (based on SSD1331 controller).
void(* set_mode)(lcd_mode_t mode)
Sets library display mode for direct draw functions.
void ssd1331_96x64_init(void)
Inits 96x64 RGB OLED display (based on SSD1331 controller).