01-13-2023, 02:14 PM
Radio sam sa sličnim 160x128pix, evo rutine za inicijalizaciju:
Code:
// Initialize the oled screen
void sh1108_Init(void) {
// Reset OLED
ssd1306_Reset();
// Wait for the screen to boot
HAL_Delay(100);
// Inicijalizacija displeja WEA160128AWPP3N00000 sa SH1108 kontrolerom
ssd1306_WriteCommand(0xAE); // Display OFF
ssd1306_WriteCommand(0x20); // Set Memory addressing mode
ssd1306_WriteCommand(0x81); // Set contrast control
ssd1306_WriteCommand(0x0F);
ssd1306_WriteCommand(0xA0); // Segment remap
ssd1306_WriteCommand(0xA6); // A6 Normal display, A7 invert display
ssd1306_WriteCommand(0xA9); // Set Display Resolution
ssd1306_WriteCommand(0x02); // 160*128
ssd1306_WriteCommand(0xAD); // Set DC-DC setting
ssd1306_WriteCommand(0x80); // DC-DC is disable.
ssd1306_WriteCommand(0xC0); // Set Common scan direction
ssd1306_WriteCommand(0xD5); // Divide Ratio/Oscillator Frequency Mode Set
ssd1306_WriteCommand(0xF1);
ssd1306_WriteCommand(0xD9); // Set Dis-charge/Pre-charge Period
ssd1306_WriteCommand(0x1F);
ssd1306_WriteCommand(0xDB); // Set Vcomh voltage
ssd1306_WriteCommand(0x2B);
ssd1306_WriteCommand(0xDC); // Set VSEGM Deselect Level
ssd1306_WriteCommand(0x35);
ssd1306_WriteCommand(0x30); // Set Discharge VSL Level
ssd1306_WriteCommand(0xAF); // Display ON
// Clear screen
ssd1306_Fill(Black);
// Flush buffer to screen
ssd1306_UpdateScreen();
// Set default values for screen object
SSD1306.CurrentX = 0;
SSD1306.CurrentY = 0;
SSD1306.Initialized = 1;
}