Esempio n. 1
0
void TM_LCD_Init(void) {
	/* Initialize pins used */
	TM_LCD_InitPins();
	/* Init SDRAM */
	TM_SDRAM_Init();
	/* Initialize LTDC */
	TM_LCD_InitLTDC();
	/* Initialize LTDC layers */
	TM_LCD_InitLayers();
	/* Enable LCD */
	TM_LCD_DisplayOn();
}
TM_LCD_Result_t TM_LCD_Init(void) {
	TM_DMA2DGRAPHIC_INT_Conf_t DMA2DConf;
	
	/* Init SDRAM */
	if (!TM_SDRAM_Init()) {
		/* Return error */
		return TM_LCD_Result_SDRAM_Error;
	}
	
	/* Fill default structure */
	LCD.Width = LCD_PIXEL_WIDTH;
	LCD.Height = LCD_PIXEL_HEIGHT;
	LCD.CurrentFrameBuffer = LCD_FRAME_BUFFER;
	LCD.FrameStart = LCD_FRAME_BUFFER;
	LCD.FrameOffset = LCD_BUFFER_OFFSET;
	LCD.CurrentFont = &TM_Font_11x18;
	LCD.ForegroundColor = 0x0000;
	LCD.BackgroundColor = 0xFFFF;
	
	/* Set configrations for DMA2D */
	DMA2DConf.BufferStart = LCD_FRAME_BUFFER;
	DMA2DConf.BufferOffset = LCD_BUFFER_OFFSET;
	DMA2DConf.BytesPerPixel = 2;
	DMA2DConf.Height = LCD_PIXEL_HEIGHT;
	DMA2DConf.Width = LCD_PIXEL_WIDTH;
	DMA2DConf.Orientation = 1;
	
	/* Init LCD pins */
	TM_LCD_INT_InitPins();
	
	/* Init LTDC peripheral */
	TM_LCD_INT_InitLTDC();
	
	/* Init LTDC layers */
	TM_LCD_INT_InitLayers();
	
	/* Init LCD dependant settings */
	TM_LCD_INT_InitLCD();
	
	/* Init DMA2D graphics */
	TM_DMA2DGRAPHIC_Init();
	
	/* Set settings */
	TM_INT_DMA2DGRAPHIC_SetConf(&DMA2DConf);
	
	/* Enable LCD */
	TM_LCD_DisplayOn();
	
	TM_LCD_SetLayer1();
	
	/* Return OK */
	return TM_LCD_Result_Ok;
}