Хорошо, что у людей есть чувство юмора... Есть код инициализации дисплея с контроллером ILI9325:
//инициализация XT240374PQ controller ILI9325, шина 8бит
void Driver_LCD_Init(void)
{
LCD_FSMCConfig(); //инициализируем FSMC
//сброс
SET_RESET delay(5000); //задержка в мкс
CLR_RESET delay(5000); //задержка в мкс
SET_RESET delay(5000); //задержка в мкс
//--------------- Start Initial Sequence -----------------------
TFT_WR_CMD_DATA(0x00E5, 0x78F0); // set SRAM internal timing
TFT_WR_CMD_DATA(0x0001, 0x0100); // set SS and SM bit
TFT_WR_CMD_DATA(0x0002, 0x0700); // set 1 line inversion
// TFT_WR_CMD_DATA(0x0003, 0x1030); // вертикальная ориентация
TFT_WR_CMD_DATA(0x0003, 0x1018); // горизонтальная ориентация
TFT_WR_CMD_DATA(0x0004, 0x0000); // Resize register
TFT_WR_CMD_DATA(0x0008, 0x0207); // set the back porch and front porch
TFT_WR_CMD_DATA(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0]
TFT_WR_CMD_DATA(0x000A, 0x0000); // FMARK function
TFT_WR_CMD_DATA(0x000C, 0x0000); // RGB interface setting
TFT_WR_CMD_DATA(0x000D, 0x0000); // Frame marker Position
TFT_WR_CMD_DATA(0x000F, 0x0000); // RGB interface polarity
//------------------- Power On sequence --------------------------
TFT_WR_CMD_DATA(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
TFT_WR_CMD_DATA(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
TFT_WR_CMD_DATA(0x0012, 0x0000); // VREG1OUT voltage
TFT_WR_CMD_DATA(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
TFT_WR_CMD_DATA(0x0007, 0x0001);
delay(200); // Dis-charge capacitor power voltage
TFT_WR_CMD_DATA(0x0010, 0x1590); // 1490//// SAP, BT[3:0], AP, DSTB, SLP, STB
TFT_WR_CMD_DATA(0x0011, 0x0227); // DC1[2:0], DC0[2:0], VC[2:0]
delay(50); // Delay 50ms
TFT_WR_CMD_DATA(0x0012, 0x009C); //001C// Internal reference voltage= Vci;
delay(50); // Delay 50ms
TFT_WR_CMD_DATA(0x0013, 0x1900); // VDV[4:0] for VCOM amplitude
TFT_WR_CMD_DATA(0x0029, 0x0023); // 04 VCM[5:0] for VCOMH
TFT_WR_CMD_DATA(0x002B, 0x000E); // Set Frame Rate
delay(50); // Delay 50ms
TFT_WR_CMD_DATA(0x0020, 0x0000); // GRAM horizontal Address
TFT_WR_CMD_DATA(0x0021, 0x0000); // GRAM Vertical Address
//----------------- Adjust the Gamma Curve --------------------------
TFT_WR_CMD_DATA(0x0030, 0x0000);
TFT_WR_CMD_DATA(0x0031, 0x0707);
TFT_WR_CMD_DATA(0x0032, 0x0307);
TFT_WR_CMD_DATA(0x0035, 0x0200);
TFT_WR_CMD_DATA(0x0036, 0x0008); //0207
TFT_WR_CMD_DATA(0x0037, 0x0004); //0306
TFT_WR_CMD_DATA(0x0038, 0x0000); //0102
TFT_WR_CMD_DATA(0x0039, 0x0707); //0707
TFT_WR_CMD_DATA(0x003C, 0x0002); //0702
TFT_WR_CMD_DATA(0x003D, 0x1D04); //1604
//------------------ Set GRAM area ----------------------------------
TFT_WR_CMD_DATA(0x0050, 0x0000); // Horizontal GRAM Start Address
TFT_WR_CMD_DATA(0x0051, 0x00EF); // Horizontal GRAM End Address
TFT_WR_CMD_DATA(0x0052, 0x0000); // Vertical GRAM Start Address
TFT_WR_CMD_DATA(0x0053, 0x013F); // Vertical GRAM Start Address
TFT_WR_CMD_DATA(0x0060, 0xA700); // Gate Scan Line
TFT_WR_CMD_DATA(0x0061, 0x0001); // NDL,VLE, REV
TFT_WR_CMD_DATA(0x006A, 0x0000); // set scrolling line
//---------------- Partial Display Control ---------------------------
TFT_WR_CMD_DATA(0x0080, 0x0000);
TFT_WR_CMD_DATA(0x0081, 0x0000);
TFT_WR_CMD_DATA(0x0082, 0x0000);
TFT_WR_CMD_DATA(0x0083, 0x0000);
TFT_WR_CMD_DATA(0x0084, 0x0000);
TFT_WR_CMD_DATA(0x0085, 0x0000);
//----------------- Panel Control ----------------------------------
TFT_WR_CMD_DATA(0x0090, 0x0010);
TFT_WR_CMD_DATA(0x0092, 0x0600);
TFT_WR_CMD_DATA(0x0007, 0x0133); // 262K color and display ON
return;
}
Есть код установки рабочего окна:
void LCD_SetWindow(uint16_t StartX, uint16_t StartY, uint16_t EndX, uint16_t EndY)
{
//поддержка горизонтальной ориентации (перестановка границ)
int tmp;
tmp = StartX;
StartX = StartY;
StartY = LCD_PIXEL_WIDTH - 1 - tmp;
tmp = EndX;
EndX = EndY;
EndY = LCD_PIXEL_WIDTH - 1 - tmp;
tmp = StartY;
StartY = EndY;
EndY = tmp;
//определение рабочей области
TFT_WR_CMD_DATA(0x0020, StartX);
TFT_WR_CMD_DATA(0x0021, StartY);
TFT_WR_CMD_DATA(0x0050, StartX);
TFT_WR_CMD_DATA(0x0052, StartY);
TFT_WR_CMD_DATA(0x0051, EndX);
TFT_WR_CMD_DATA(0x0053, EndY);
TFT_WR_CMD(0x0022);
}
Как избавиться от выделенного кода???