I am working on a project which requires to interface TFT display with ILI9325 driver. I have successfully initialized the display but I am not able to rotate the display. Please suggest me the register and value to inserted in that to set the display in portrait or landscape mode.
Here is my LCD initialization code.
void LCD_ILI9325_Init(void)
{
unsigned char i;
unsigned int f;
LCD_Port_Init();
LCD_REST_L; //??
_delay_ms(50);
LCD_REST_H;
_delay_ms(50);
LCD_WriteReg(0x0001,0x0000);//зеркально вертикаль (0x0100)
LCD_WriteReg(0x0002,0x0700);
LCD_WriteReg(0x0003,0x1030);//преобразования RGB в GBR, строчной развертки
LCD_WriteReg(0x0004,0x0000);//зеркально вертикаль (0x0000)
LCD_WriteReg(0x0008,0x0207);
LCD_WriteReg(0x0009,0x0000);
LCD_WriteReg(0x000A,0x0000);
LCD_WriteReg(0x000C,0x0000);
LCD_WriteReg(0x000D,0x0000);
LCD_WriteReg(0x000F,0x0000);
//power on sequence VGHVGL
//Питания на последовательности VGHVGL
LCD_WriteReg(0x0010,0x0000);
LCD_WriteReg(0x0011,0x0007);
LCD_WriteReg(0x0012,0x0000);
LCD_WriteReg(0x0013,0x0000);
//vgh
LCD_WriteReg(0x0010,0x1290);
LCD_WriteReg(0x0011,0x0227);
//vregiout
LCD_WriteReg(0x0012,0x001d);//0x001b
//vom amplitude
// По амплитуде
LCD_WriteReg(0x0013,0x1500);
//vom H
LCD_WriteReg(0x0029,0x0018);
LCD_WriteReg(0x002B,0x000D);
//gamma
// Диапазон
LCD_WriteReg(0x0030,0x0004);
LCD_WriteReg(0x0031,0x0307);
LCD_WriteReg(0x0032,0x0002);//0006
LCD_WriteReg(0x0035,0x0206);
LCD_WriteReg(0x0036,0x0408);
LCD_WriteReg(0x0037,0x0507);
LCD_WriteReg(0x0038,0x0204);//0200
LCD_WriteReg(0x0039,0x0707);
LCD_WriteReg(0x003C,0x0405);//0504
LCD_WriteReg(0x003D,0x0F02);
//ram
LCD_WriteReg(0x0050,0x0000);
LCD_WriteReg(0x0051,0x00EF);
LCD_WriteReg(0x0052,0x0000);
LCD_WriteReg(0x0053,0x013F);
LCD_WriteReg(0x0060,0x2700);//зеркально горизонталь (0xA700)
LCD_WriteReg(0x0061,0x0001);
LCD_WriteReg(0x006A,0x0000);
//
LCD_WriteReg(0x0080,0x0000);
LCD_WriteReg(0x0081,0x0000);
LCD_WriteReg(0x0082,0x0000);
LCD_WriteReg(0x0083,0x0000);
LCD_WriteReg(0x0084,0x0000);
LCD_WriteReg(0x0085,0x0000);
//
LCD_WriteReg(0x0090,0x0010);
LCD_WriteReg(0x0092,0x0600);
LCD_WriteReg(0x0093,0x0003);
LCD_WriteReg(0x0095,0x0110);
LCD_WriteReg(0x0097,0x0000);
LCD_WriteReg(0x0098,0x0000);
LCD_WriteReg(0x0007,0x0133);
LCD_WriteComand(0x0022);//Start to write to display RAM
//paint screen black
for(i=0;i<2;i++)
{
for(f=0;f<38400;f++)
{
LCD_WriteData(WHITE);
}
}
}
Please suggest me what to update in this code to rotate the display.
Thank You