Question
Screen tearing in a fixed area, how to avoid it.
The screen tearing issue is as below. It looks always appear in the right area:
The screen is FMC16 bit parallel port, and the parameter is as below:
And the screen has TE signal, the TE Interrupt function is an below:
void TouchGFX_TickHandler(uint8_t PinStatus)
{
if (os_inited == true)
{
if (PinStatus) /* Raising edge : entering Active Area */
{
HAL::getInstance()->vSync();
OSWrappers::signalVSync();
// Swap frame buffers immediately instead of waiting for the task to be scheduled in.
// Note: task will also swap when it wakes up, but that operation is guarded and will not have
// any effect if already swapped.
HAL::getInstance()->swapFrameBuffers();
GPIO::set(GPIO::VSYNC_FREQ);
}
else /* Falling edge : exiting active area */
{
GPIO::clear(GPIO::VSYNC_FREQ);
HAL::getInstance()->frontPorchEntered();
}
}
}Can anyone tell me what caused the screen to tear? And can I avoid it by program.
