void Display_SSD_Init() { // Power on and initialize controller Display_SSD_isPowerOn = 1; if(Display_GetType() == DISPLAY_SSD1327) { Display_SSD1327_PowerOn(); Display_SSD1327_SendInitCmds(); } else { Display_SSD1306_PowerOn(); Display_SSD1306_SendInitCmds(); } if(Display_IsFlipped()) { Display_SSD_Flip(); } // Update GDDRAM Display_Update(); // Display ON Display_SSD_SetOn(1); // Delay 20ms Timer_DelayUs(20000); }
void Display_SSD_Init() { // Reset display controller // TODO: figure out PA.1 and PC.4 PA1 = 1; PC4 = 1; Timer_DelayUs(1000); DISPLAY_SSD_RESET = 0; Timer_DelayUs(1000); DISPLAY_SSD_RESET = 1; Timer_DelayUs(1000); if(Display_GetType() == DISPLAY_SSD1327) { Display_SSD1327_SendInitCmds(); } else { Display_SSD1306_SendInitCmds(); } if(Display_IsFlipped()) { Display_SSD_Flip(); } // Update GDDRAM Display_Update(); // Display ON Display_SSD_SetOn(1); // Delay 20ms Timer_DelayUs(20000); }
void Display_SSD_Update(const uint8_t *framebuf) { if(Display_GetType() == DISPLAY_SSD1327) { Display_SSD1327_Update(framebuf); } else { Display_SSD1306_Update(framebuf); } }
void Display_SSD_SetInverted(bool invert) { if(Display_GetType() == DISPLAY_SSD1327) { Display_SSD1327_SetInverted(invert); } else { Display_SSD1306_SetInverted(invert); } }
void Display_SSD_Flip() { if(Display_GetType() == DISPLAY_SSD1327) { Display_SSD1327_Flip(); } else { Display_SSD1306_Flip(); } }
void Display_SSD_SetPowerOn(uint8_t isPowerOn) { if(!isPowerOn == !Display_SSD_isPowerOn) { return; } if(isPowerOn) { Display_SSD_Init(); return; } Display_SSD_isPowerOn = 0; if(Display_GetType() == DISPLAY_SSD1327) { Display_SSD1327_PowerOff(); } else { Display_SSD1306_PowerOff(); } }
int main() { int hwVerMajor, hwVerMinor; char buffer[100]; // Separate major/minor version hwVerMajor = Dataflash_info.hwVersion / 100; hwVerMinor = Dataflash_info.hwVersion % 100; // Build and blit text siprintf(buffer, "Hw: %d.%02d\n%s\nFlip: %d\nBoot: %s", hwVerMajor, hwVerMinor, Display_GetType() == DISPLAY_SSD1327 ? "SSD1327" : "SSD1306", Display_IsFlipped(), Dataflash_info.bootFlag == DATAFLASH_BOOTFLAG_LDROM ? "LD" : "AP"); Display_PutText(0, 0, buffer, FONT_DEJAVU_8PT); // Update display Display_Update(); }