2021-05-12 04:20 AM
Now, using Dynamic Graph Widget in Touch 4.15. We only draw 4 lines, but somtimes picture does not smooth.It looks like it blocked somewhere, button action is delayed. At last we find render time become biger as line draws more. hoping for some help to make performance better.
here is our trys:
Solved! Go to Solution.
2021-05-12 05:11 AM
Hi,
The line elements rely heavily on the MCU for rendering, so it might be difficult to overcome hardware limitations. Which Dynamic Behavior are you using ? "Wrap and Clear" would be the least demanding one. When you run the simulator, press F2 to see what parts of the display are being updated. This might help you see if you are not invalidating something that is not necessary.
I dont know if it will help that much but if you have enough space you could try to also enable the animation storage in addition to the double framebuffer. You need to manually do this in user code in the setFrameBufferStartAddresses() function in TouchGFXHAL.cpp in the initialize function:
void TouchGFXHAL::initialize()
{
// Calling parent implementation of initialize().
//
// To overwrite the generated implementation, omit call to parent function
// and implemented needed functionality here.
// Please note, HAL::initialize() must be called to initialize the framework.
TouchGFXGeneratedHAL::initialize();
setFrameBufferStartAddresses((void*)firstFrameBufferAddress, (void*)(firstFrameBufferAddress+ sizeFrameBuffer), (void*)(firstFrameBufferAddress+ 2 * sizeFrameBuffer));
}
/Romain
2021-05-12 05:11 AM
Hi,
The line elements rely heavily on the MCU for rendering, so it might be difficult to overcome hardware limitations. Which Dynamic Behavior are you using ? "Wrap and Clear" would be the least demanding one. When you run the simulator, press F2 to see what parts of the display are being updated. This might help you see if you are not invalidating something that is not necessary.
I dont know if it will help that much but if you have enough space you could try to also enable the animation storage in addition to the double framebuffer. You need to manually do this in user code in the setFrameBufferStartAddresses() function in TouchGFXHAL.cpp in the initialize function:
void TouchGFXHAL::initialize()
{
// Calling parent implementation of initialize().
//
// To overwrite the generated implementation, omit call to parent function
// and implemented needed functionality here.
// Please note, HAL::initialize() must be called to initialize the framework.
TouchGFXGeneratedHAL::initialize();
setFrameBufferStartAddresses((void*)firstFrameBufferAddress, (void*)(firstFrameBufferAddress+ sizeFrameBuffer), (void*)(firstFrameBufferAddress+ 2 * sizeFrameBuffer));
}
/Romain
2021-05-17 01:00 AM
Thanks for your help.
1.I am using "Wrap and Clear" .
2.I tried enable the animation storage, looks like no help.
I tried to resize datapoint from 400 to 200, much better. Thanks again for you help
2021-05-17 02:48 AM
Interesting topics...
What is your color depth? Would reducing it help and acceptable?
2021-05-18 10:53 PM
16bit, RGB565. not acceptable