Skip to main content
BParh.1
Senior III
August 2, 2021
Question

Screen slide transition works in simulator but not in hardware

  • August 2, 2021
  • 2 replies
  • 828 views

Hi,

I setup screen transition to slide from one screen to another from e.g East direction, it works on simulator but not in hardware. In hardware the transition occurred immediately.

I am using TouchGFX designer v4.17 and hardware is DISCO board STM32F769 Discovery board.

Please help!

This topic has been closed for replies.

2 replies

Tuoman
Senior II
August 2, 2021

Have you setup animationStorage?

For example in my project:

Animation storage not enabled (most screen transitions do not work):

namespace
{
 // Use the section "TouchGFX_Framebuffer" in the linker to specify the placement of the buffer
 LOCATION_PRAGMA("TouchGFX_Framebuffer")
 uint32_t frameBuf[(240 * 320 * 2 + 3) / 4 * 2] LOCATION_ATTRIBUTE("TouchGFX_Framebuffer");
 static uint16_t lcd_int_active_line;
 static uint16_t lcd_int_porch_line;
}
 
void TouchGFXGeneratedHAL::initialize()
{
 HAL::initialize();
 registerEventListener(*(Application::getInstance()));
 setFrameBufferStartAddresses((void*)frameBuf, (void*)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) * 2)), (void*)0);
}

Animation storage enabled:

namespace
{
 // Use the section "TouchGFX_Framebuffer" in the linker to specify the placement of the buffer
 LOCATION_PRAGMA("TouchGFX_Framebuffer")
 uint32_t frameBuf[(240 * 320 * 2 + 3) / 4 * 3] LOCATION_ATTRIBUTE("TouchGFX_Framebuffer");
 static uint16_t lcd_int_active_line;
 static uint16_t lcd_int_porch_line;
}
 
void TouchGFXGeneratedHAL::initialize()
{
 HAL::initialize();
 registerEventListener(*(Application::getInstance()));
 setFrameBufferStartAddresses(
 (void*)frameBuf,
 (void*)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) * 3)),
 (void*)(frameBuf + 2 *sizeof(frameBuf) / (sizeof(uint32_t) * 3)));
}

BParh.1
BParh.1Author
Senior III
August 4, 2021

Thank you @Tuoman​ , could you elaborate how this animation storage relevant to this issue?