2021-04-19 09:44 AM
Hey!
I've been struggling to understand TouchGFX engine. I tried Discovery board and examples provided by TouchGFX Designer - everything works out of the box.
However playing with high level app software on discovery boards won't help me on the product boards, so I tried build project from scratch and failed. After that I reduced my task to pick small I2C B/W display, working LCD driver and draw a square on it with TouchGFX framework. Just to see that engine "ticks" as expected. Still no luck.
Things I tried so far:
Maybe anyone saw EXACT steps on how connect TouchGFX framework to hardware. Like what signals/interrupts framework needs, which file to put it (ex. step 1: you should provide this instruction here for this and this flag there for that). I guess I'm talking about "Touch AL" layer which seems to be the hardest part. Theoretically I kinda understand what is rendering, when flushing buffer takes place and such things, yet no able to run it.
For now I always stuck at
virtual void backPorchExited()
{
swapFrameBuffers();
tick(); // <- here
}
Worth mention that tried I provide Vsync flag with Timer interrupt. I tried different timer rates and different places to start it, also tried to emulate Vsync flag.
extern "C" void touchgfx_signalVSyncTimer(void)
{
HAL::getInstance()->vSync();
touchgfx::OSWrappers::signalVSync();
}
Any suggestions appreciated! Thanks
Solved! Go to Solution.
2021-05-07 02:44 AM
Ok, thx
Any idea why flushFrameBuffer() called twice?
Of course it doesn't matter on my B/W display, but on colored high-res SPI interface display this can unnecessarily load MCU and reduce achievable FPS.
If I manage to solve this I can provide instructions on how set-up touchGFX on SPI display, similar to what I did with DISCO-F429 (if by any chance anyone would need it :))