Hello,
drawing graphs with a high refresh rate on embedded systems is always a critical task...
In your case, you want to draw two overlapping graphs containing 200 coordinates on a 800x480 display using an STM32F429 with 168 MHz. I assume (or I hope) that the SDRAM is connected with 32bit and not with 16bit.
First of all, it is important to know that the Charts::Graph class is drawing all lines by using a warp operation in order to draw anti-aliased line segments. This operation is done by software and costs a lot of CPU power. This is also the reason, why the drawing speed depends on the number of coordinates. The more line segments are stored within the graph, the longer it takes to redraw the screen.
In principle there are several solutions - depending on the use case:
1. You can use the class Charts::LineChart and set the LineWidth to 1. In this case all lines of the graph are drawn by using a simple 'DrawLine' operation instead of a 'Warp' operation. In this case the lines are not anti-aliased and you will see noticeable steps within the single lines. But the drawing performance will be much higher.
2. Since version 9.00 of Embedded Wizard, we support vector graphics. Building a graph by using vector graphics is faster than using the Charts::Graph class. The graphical result looks perfect with anti-aliased lines. Nevertheless, vector graphics is processed by CPU - there is no hardware acceleration.
3. In case you want to make some 'data plotter', that shifts the graph to the left and feeds the new data from the right side, it will be not sufficient to redraw the entire graph every 50 ms. In this case you need a more advanced solution that stores the graph in a separate bitmap (canvas). Within this canvas only the new data are drawn and then the final graph is copied (hardware accelerated) on the screen. You can find an example for that within the example SolarDemo.
I hope this gives you some ideas how to speed up your graphs.
In case you have further questions, please let us know more detaild what you finally want to achieve, e.g. how your graph screen should appear and behave.
Best regards,
Manfred.