Hello!
I'm trying to find a way how to update part of displayed screen (i.e. change only some values on displayed screen or status of displayed button). I don't want each time send whole display list. I found a document "APPLICATION NOTE AN_340 FT800_Optimising screen updates with Macro and Append" given by Bridgtech.
In my example I want change only values for displayed labels. Could you advise me if gives other possibility how to update choose parts of the showed screen ?
void showScreen ()
{
uint32_t coordinates = Gpu_Hal_Rd32(phost, REG_TOUCH_SCREEN_XY);
uint8_t Read_tag = Gpu_Hal_Rd8(phost, REG_TOUCH_TAG);
uint16_t x_coordinate, y_coordinate;
x_coordinate = (coordinates >> 16);
y_coordinate = coordinates;
Gpu_CoCmd_Dlstart(phost); //Start the display list
App_WrCoCmd_Buffer(phost, CLEAR(1, 1, 1)); //Command CLEAR is recommended to be used before any other drawing operation,
//in order to put the graphics engine in a known state.
//The end of the display list is always flagged with the command DISPLAY
Gpu_CoCmd_Gradient(phost,0, 0, 0x636363UL, 0, DispHeight, 0x222222UL);
Gpu_CoCmd_Number(phost, 20, 20, 28 , 0, coordinates);
Gpu_CoCmd_Number(phost, 20, 40, 28 , 0, x_coordinate);
Gpu_CoCmd_Number(phost, 20, 60, 28 , 0, y_coordinate);
Gpu_CoCmd_Number(phost, 20, 80, 28 , 0, Read_tag);
App_WrCoCmd_Buffer(phost, DISPLAY()); //instruct the graphics processor to show the list
Gpu_CoCmd_Swap(phost); //make this list active
App_Flush_Co_Buffer(phost);
Gpu_Hal_WaitCmdfifo_empty(phost);
}
Thank you in advance!