BRT Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome to the Bridgetek Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ Bridgetek Support

Please refer to our website for detailed information on all our products - Bridgetek - Bridging Technology

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Khtos

Pages: [1]
1
Discussion - EVE / Is it possible to display several lists on one screen
« on: September 20, 2019, 01:49:05 PM »
Hello, community!
I am only new in EVE, now I am connecting the first my screen with FT813.
Can someone explain me, how to display several coprocessor display lists on one screen. Unfortunately, I couldn’t understand this from the EVE FT81x programming guide.
I need to displays many text data and draw couple diagrams. And I came to the fact that everything I want to display does not fit in one display list. When I try to execute one display list, and then without giving the CMD_SWAP command, load and execute the second display list, I get a completely broken image on the screen.
Here is a display function that is called every 20 ms (I simplified it). Please tell me what's wrong with it!
Code: [Select]
void TFT_loop(void)
{
   uint8_t temp_c;
uint16_t temp_16;
// uint32_t temp_32;
uint16_t Y;
static uint8_t Data[128];

if(tft_active != 0) {

      for (temp_c = 3;temp_c < 77;temp_c++) {Data[temp_c] = temp_c;}
Data[0]++;
Data[1] += 2;
Data[2] += 3;

Data[77] += 3;
Data[78] += 2;
Data[79] += 1;

  //------
//FT813_StartDisplayList();
EVE_start_cmd_burst(); /* start writing to the cmd-fifo as one stream of bytes, only sending the address once */
   EVE_cmd_dl(CMD_DLSTART); /* start the display list */
   EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */
   EVE_cmd_dl(TAG(0));
//------
//FT813_ClearScreen(0x00505050);
EVE_cmd_dl(CLEAR_COLOR_RGB(0x50,0x50,0x50));
    EVE_cmd_dl(SCISSOR_XY(0,0));
   EVE_cmd_dl(SCISSOR_SIZE(2048,2048) );
      EVE_cmd_dl(CLEAR(1,1,1));
//------
EVE_cmd_append(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */
//------
Y = 50;
//------
//for (temp_c = 0;temp_c < 9; temp_c ++) { FT813_ShowLine(0,temp_c*40 + Y,749,temp_c*40 + Y,16,WHITE);}
EVE_cmd_dl(LINE_WIDTH(16));
EVE_cmd_dl(DL_COLOR_RGB | WHITE);
EVE_cmd_dl(DL_BEGIN | EVE_LINES);
for (temp_16 = 0;temp_16 < 9; temp_16 ++) {
EVE_cmd_dl(VERTEX2F(11, Y + temp_16*40));
EVE_cmd_dl(VERTEX2F(759,Y + temp_16*40));
}
EVE_cmd_dl(DL_END);
//------
//for (temp_c = 0;temp_c < 11; temp_c ++) { FT813_ShowLine(temp_c * 75,Y,temp_c * 75,Y + 320,16,WHITE);}
EVE_cmd_dl(LINE_WIDTH(16));
EVE_cmd_dl(DL_COLOR_RGB | WHITE);
EVE_cmd_dl(DL_BEGIN | EVE_LINES);
for (temp_16 = 0;temp_16 < 11; temp_16 ++) {
EVE_cmd_dl(VERTEX2F(10+temp_16*75,Y+1));
EVE_cmd_dl(VERTEX2F(10+temp_16*75,Y + 320));
}
EVE_cmd_dl(DL_END);
//--------------------------------------------------
Y += 8;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[temp_c],     2,28,0,ORANGE);}
Y += 40;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[10 + temp_c],2,28,0,ORANGE);}
Y += 40;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[20 + temp_c],2,28,0,ORANGE);}
Y += 40;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[30 + temp_c],2,28,0,ORANGE);}
Y += 40;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[40 + temp_c],2,28,0,ORANGE);}
Y += 40;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[50 + temp_c],2,28,0,ORANGE);}
Y += 40;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[60 + temp_c],2,28,0,ORANGE);}
Y += 40;
for (temp_c = 0;temp_c < 10; temp_c ++) {FT813_ShowHex(30 + temp_c*75, Y, Data[70 + temp_c],2,28,0,ORANGE);}
Y += 40;
//==================================================

//------
EVE_cmd_dl(DL_DISPLAY); /* instruct the graphics processor to show the list */
   EVE_cmd_dl(CMD_SWAP); /* make this list active */
   EVE_end_cmd_burst(); /* stop writing to the cmd-fifo */
   EVE_cmd_start(); /* order the command co-processor to start processing its FIFO queue but do not wait for completion */
while (EVE_busy()) {;}

//---------------------------------------------------
EVE_start_cmd_burst();
EVE_cmd_dl(CMD_DLSTART); /* start the display list */
   EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */
   EVE_cmd_dl(TAG(0));
//------
EVE_cmd_dl(CLEAR_COLOR_RGB(0x50,0x50,0x50));
    EVE_cmd_dl(SCISSOR_XY(0,0));
   EVE_cmd_dl(SCISSOR_SIZE(2048,2048) );
      //EVE_cmd_dl(CLEAR(1,1,1));
//==================================================

EVE_cmd_dl(DL_COLOR_RGB | GREEN);
EVE_cmd_text(10,390,23,0,"Font 23: Quick brown fox jumps over a lazy dog 0123456789");
EVE_cmd_dl(DL_COLOR_RGB | BLUE);
EVE_cmd_text(10,410,24,0,"Font 24: Quick brown fox jumps over a lazy dog 0123456789");
EVE_cmd_dl(DL_COLOR_RGB | YELLOW);
EVE_cmd_text(10,440,25,0,"Font 25: Quick brown fox jumps over a lazy dog 0123456789");
//--------------------------------------------------
EVE_cmd_dl(DL_DISPLAY); /* instruct the graphics processor to show the list */
EVE_cmd_dl(CMD_SWAP); /* make this list active */
EVE_end_cmd_burst(); /* stop writing to the cmd-fifo */
EVE_cmd_start(); /* order the command co-processor to start processing its FIFO queue but do not wait for completion */
//=======================================================================================
while (EVE_busy()) {;}
}

}


And here is what I want it to display:


And what I get, instead:


Pages: [1]