#define LCD_W 320 #define LCD_H 480 void LCD_direction(u8 direction) { lcddev.setxcmd=0x2A; lcddev.setycmd=0x2B; lcddev.wramcmd=0x2C; lcddev.rramcmd=0x2E; lcddev.dir = direction%4; switch(lcddev.dir){ case 0: lcddev.width=LCD_W; lcddev.height=LCD_H; LCD_WriteReg(0x36,(1<<3)|(0<<6)|(0<<7));//BGR==1,MY==0,MX==0,MV==0 break; case 1: lcddev.width=LCD_H; lcddev.height=LCD_W; LCD_WriteReg(0x36,(1<<3)|(0<<7)|(1<<6)|(1<<5));//BGR==1,MY==1,MX==0,MV==1 break; case 2: lcddev.width=LCD_W; lcddev.height=LCD_H; LCD_WriteReg(0x36,(1<<3)|(1<<6)|(1<<7));//BGR==1,MY==0,MX==0,MV==0 break; case 3: lcddev.width=LCD_H; lcddev.height=LCD_W; LCD_WriteReg(0x36,(1<<3)|(1<<7)|(1<<5));//BGR==1,MY==1,MX==0,MV==1 break; default:break; } } void LCD_Init(void) { //*************4.0 ST7796 IPS**********// LCD_Write_Reg(0xF0); LCD_Write_Data_8Bit(0xC3); LCD_Write_Reg(0xF0); LCD_Write_Data_8Bit(0x96); LCD_Write_Reg(0x36); LCD_Write_Data_8Bit(0x48); LCD_Write_Reg(0x3A); LCD_Write_Data_8Bit(0x05); LCD_Write_Reg(0xB0); LCD_Write_Data_8Bit(0x80); LCD_Write_Reg(0xB6); LCD_Write_Data_8Bit(0x00); LCD_Write_Data_8Bit(0x02); LCD_Write_Reg(0xB5); LCD_Write_Data_8Bit(0x02); LCD_Write_Data_8Bit(0x03); LCD_Write_Data_8Bit(0x00); LCD_Write_Data_8Bit(0x04); LCD_Write_Reg(0xB1); LCD_Write_Data_8Bit(0x80); LCD_Write_Data_8Bit(0x10); LCD_Write_Reg(0xB4); LCD_Write_Data_8Bit(0x00); LCD_Write_Reg(0xB7); LCD_Write_Data_8Bit(0xC6); LCD_Write_Reg(0xC5); LCD_Write_Data_8Bit(0x1C); LCD_Write_Reg(0xE4); LCD_Write_Data_8Bit(0x31); LCD_Write_Reg(0xE8); LCD_Write_Data_8Bit(0x40); LCD_Write_Data_8Bit(0x8A); LCD_Write_Data_8Bit(0x00); LCD_Write_Data_8Bit(0x00); LCD_Write_Data_8Bit(0x29); LCD_Write_Data_8Bit(0x19); LCD_Write_Data_8Bit(0xA5); LCD_Write_Data_8Bit(0x33); LCD_Write_Reg(0xC2); LCD_Write_Reg(0xA7); LCD_Write_Reg(0xE0); LCD_Write_Data_8Bit(0xF0); LCD_Write_Data_8Bit(0x09); LCD_Write_Data_8Bit(0x13); LCD_Write_Data_8Bit(0x12); LCD_Write_Data_8Bit(0x12); LCD_Write_Data_8Bit(0x2B); LCD_Write_Data_8Bit(0x3C); LCD_Write_Data_8Bit(0x44); LCD_Write_Data_8Bit(0x4B); LCD_Write_Data_8Bit(0x1B); LCD_Write_Data_8Bit(0x18); LCD_Write_Data_8Bit(0x17); LCD_Write_Data_8Bit(0x1D); LCD_Write_Data_8Bit(0x21); LCD_Write_Reg(0XE1); LCD_Write_Data_8Bit(0xF0); LCD_Write_Data_8Bit(0x09); LCD_Write_Data_8Bit(0x13); LCD_Write_Data_8Bit(0x0C); LCD_Write_Data_8Bit(0x0D); LCD_Write_Data_8Bit(0x27); LCD_Write_Data_8Bit(0x3B); LCD_Write_Data_8Bit(0x44); LCD_Write_Data_8Bit(0x4D); LCD_Write_Data_8Bit(0x0B); LCD_Write_Data_8Bit(0x17); LCD_Write_Data_8Bit(0x17); LCD_Write_Data_8Bit(0x1D); LCD_Write_Data_8Bit(0x21); LCD_Write_Reg(0X21); LCD_Write_Reg(0xF0); LCD_Write_Data_8Bit(0x3C); LCD_Write_Reg(0xF0); LCD_Write_Data_8Bit(0x69); LCD_Write_Reg(0X13); LCD_Write_Reg(0X11); LCD_Write_Reg(0X29); LCD_direction(USE_HORIZONTAL);// LCD ΚΎ }