Hi Segger team and users,
I have a problem with colors while running stemwin with ili9488 controller on a 320*480 TFT,
the colors are ok while running static images or colors , I run the
COLOR_ShowColorBar demo and I see that colors are correct.
but the problem starts to appear when I run videos , I always see the yellow
color turned to blue.
this problem only happens when running videos , I used the MOVIE_ShowFeatures Demo as a test.
I use those settings as suggested by segger.
color conversion : GUICC_565
flex color driver : GUIDRV_FLEXCOLOR_F66709
pfmode : GUIDRV_FLEXCOLOR_M16C0B16
I am doing the interface with stm32f407 processor while defining memory like that
#define GUI_NUMBYTES (1024) * 100
my heap and stack are configured to be 2000 byte each.
and I tried several initialization sequences from forums and also from the TFT supplier , but
got same output.
Heres' the current initialization sequence.
Display All
-------------------------------------------------------------------------------
my read and write functions
Display All
I tried to minimize the memory seen by stemwin so that I would minimize the memory requirements ,but I got same results
just smaller screen
#define XSIZE_PHYS 200
#define YSIZE_PHYS 200
please if you need any more information to help me out solving this problem let me know,
Thanks a lot.
Amr.
I have a problem with colors while running stemwin with ili9488 controller on a 320*480 TFT,
the colors are ok while running static images or colors , I run the
COLOR_ShowColorBar demo and I see that colors are correct.
but the problem starts to appear when I run videos , I always see the yellow
color turned to blue.
this problem only happens when running videos , I used the MOVIE_ShowFeatures Demo as a test.
I use those settings as suggested by segger.
color conversion : GUICC_565
flex color driver : GUIDRV_FLEXCOLOR_F66709
pfmode : GUIDRV_FLEXCOLOR_M16C0B16
I am doing the interface with stm32f407 processor while defining memory like that
#define GUI_NUMBYTES (1024) * 100
my heap and stack are configured to be 2000 byte each.
and I tried several initialization sequences from forums and also from the TFT supplier , but
got same output.
Heres' the current initialization sequence.
C Source Code
- /* PGAMCTRL (Positive Gamma Control) (E0h) */
- LCD_WriteReg(0xE0);
- LCD_WriteData(0x00);
- LCD_WriteData(0x07);
- LCD_WriteData(0x0f);
- LCD_WriteData(0x0D);
- LCD_WriteData(0x1B);
- LCD_WriteData(0x0A);
- LCD_WriteData(0x3c);
- LCD_WriteData(0x78);
- LCD_WriteData(0x4A);
- LCD_WriteData(0x07);
- LCD_WriteData(0x0E);
- LCD_WriteData(0x09);
- LCD_WriteData(0x1B);
- LCD_WriteData(0x1e);
- LCD_WriteData(0x0f);
- /* NGAMCTRL (Negative Gamma Control) (E1h) */
- LCD_WriteReg(0xE1);
- LCD_WriteData(0x00);
- LCD_WriteData(0x22);
- LCD_WriteData(0x24);
- LCD_WriteData(0x06);
- LCD_WriteData(0x12);
- LCD_WriteData(0x07);
- LCD_WriteData(0x36);
- LCD_WriteData(0x47);
- LCD_WriteData(0x47);
- LCD_WriteData(0x06);
- LCD_WriteData(0x0a);
- LCD_WriteData(0x07);
- LCD_WriteData(0x30);
- LCD_WriteData(0x37);
- LCD_WriteData(0x0f);
- /* Power Control 1 (C0h) */
- LCD_WriteReg(0xC0);
- LCD_WriteData(0x10);
- LCD_WriteData(0x10);
- /* Power Control 2 (C1h) */
- LCD_WriteReg(0xC1);
- LCD_WriteData(0x41);
- /* VCOM Control (C5h) */
- LCD_WriteReg(0xC5);
- LCD_WriteData(0x00);
- LCD_WriteData(0x2c); // VCOM
- LCD_WriteData(0x80);
- /* Memory Access Control (36h) */
- LCD_WriteReg(0x36);
- LCD_WriteData(0x08);
- /* Interface Pixel Format (3Ah) */
- LCD_WriteReg(0x3A); //Interface Mode Control
- LCD_WriteData(0x55);
- LCD_WriteReg(0xB0); //Interface Mode Control
- LCD_WriteData(0x00);
- LCD_WriteReg(0xB1); //Frame rate 70HZ
- LCD_WriteData(0xB0);
- /* Display Inversion Control (B4h) */
- LCD_WriteReg(0xB4);
- LCD_WriteData(0x02);
- /* Display Function Control (B6h) */
- LCD_WriteReg(0xB6); //RGB/MCU Interface Control
- LCD_WriteData(0x02);
- LCD_WriteData(0x22);
- /* Set Image Function (E9h) */
- LCD_WriteReg(0xE9);
- LCD_WriteData(0x00);
- /* Adjust Control 3 (F7h) */
- LCD_WriteReg(0XF7);
- LCD_WriteData(0xA9);
- LCD_WriteData(0x51);
- LCD_WriteData(0x2C);
- LCD_WriteData(0x82);
- /* Sleep Out (11h) */
- LCD_WriteReg(0x11);
- HAL_Delay(150);
- /* Display ON (29h) */
- LCD_WriteReg(0x29);
- ili9488_SetPos(0,0,0,0);
-------------------------------------------------------------------------------
my read and write functions
C Source Code
- static void LcdWriteReg(U16 Data)
- {
- LCD_CMD = Data;
- }
- static void LcdWriteData(U16 Data)
- {
- LCD_Data = Data;
- }
- static void LcdWriteDataMultiple(U16 * pData, int NumItems)
- {
- while (NumItems--)
- {
- LcdWriteData (*pData++);
- }
- }
- uint16_t ili9488_ReadData()
- {
- return LCD_Data;
- }
- static void LcdReadDataMultiple(U16 * pData, int NumItems)
- {
- while (NumItems--)
- {
- *pData++ = ili9488_ReadData();
- }
- }
I tried to minimize the memory seen by stemwin so that I would minimize the memory requirements ,but I got same results
just smaller screen
#define XSIZE_PHYS 200
#define YSIZE_PHYS 200
please if you need any more information to help me out solving this problem let me know,
Thanks a lot.
Amr.