BRT Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome to the Bridgetek Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ Bridgetek Support

Please refer to our website for detailed information on all our products - Bridgetek - Bridging Technology

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - T.Pierret

Pages: [1]
1
Discussion - EVE / Image corruption
« on: June 23, 2020, 08:36:57 AM »
Hi,

I wrote a small application for tests of an EVE-controlled screen. The result was not too bad till I added a splash screen as a JPEG image. Afterwards all the icons just changed to garbage.
I'm doing something wrong !
Here is the canvas :
1°/ Load the JPEG image for the splash screen
Code: [Select]
uint16_t sentSize = 0u, len;
const uint16_t MaxLen = 512u;

cmdOffset = ft_wait4CoproReady()
ft_write32( RAM_CMD + cmdOffset, CMD_LOADIMAGE );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, RAM_G );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, OPT_NODL );
ft_incCmdOffset( 4u );
while ( sentSize < splash.data_size )
{
  len = splash.data_size - sentSize;
  if ( len > MaxLen ) len = MaxLen;
  /* Wait for space to write the next chunk */
  while ( !ft_checkFreeSpaceInFifo( len ) );
  ft_writeMem( RAM_CMD + cmdOffset, &splash.data[sentSize], len );
  ft_incCmdOffset( len );
  sentSize += len;
  ft_write16( REG_CMD_WRITE, cmdOffset );
}

2°/ Display the JPEG image
Code: [Select]
cmdOffset = ft_wait4CoproReady()
ft_write32( RAM_CMD + cmdOffset, CMD_DLSTART );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, SAVE_CONTEXT() );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, CMD_SETBITMAP );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, RAM_G );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset,
                    (((uint32_t) splash.width << 16) | ((uint32_t) RGB565 & 0xFFFFU)) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, (uint32_t) splash.height );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, BEGIN(BITMAPS) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, VERTEX2II(0, 0, 0, 0) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, END() );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, RESTORE_CONTEXT() );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, DISPLAY() );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, CMD_SWAP );
ft_incCmdOffset( 4u );
ft_write16( REG_CMD_WRITE, cmdOffset );

3°/ Load the icon (compressed ARGB2 image):
Code: [Select]
address = RAM_G + ( (uint32_t) splash.width * (uint32_t) splash.height * 2U );
cmdOffset = ft_wait4CoproReady()
ft_write32( RAM_CMD + cmdOffset, CMD_INFLATE );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, address );
ft_incCmdOffset( 4u );
while ( sentSize < icon.data_size )
{
  len = icon.data_size - sentSize;
  if ( len > MaxLen ) len = MaxLen;
  /* Wait for space to write the next chunk */
  while ( !ft_checkFreeSpaceInFifo( len ) );
  ft_writeMem( RAM_CMD + cmdOffset, &icon.data[sentSize], len );
  ft_incCmdOffset( len );
  sentSize += len;
  ft_write16( REG_CMD_WRITE, cmdOffset );
}
ft_wait4CoproReady();
ft_write32( RAM_CMD + cmdOffset, CMD_GETPTR );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, 0U );
ft_incCmdOffset( 4u );
ft_write16( REG_CMD_WRITE, cmdOffset );
ft_read32( RAM_CMD + cmdOffset - 4U, &address);

4°/ Display the icon:
Code: [Select]
ft_wait4CoproReady();
ft_write32( RAM_CMD + cmdOffset, CMD_DLSTART );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, CLEAR_COLOR_RGB(10, 10, 60) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, CLEAR(1 ,1 ,1) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, SAVE_CONTEXT() );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, BITMAP_SOURCE( address ) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, BITMAP_LAYOUT( ARGB2, icon.stride, icon.height ) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, BITMAP_SIZE( NEAREST, BORDER, BORDER, icon.width, icon.height ) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, BEGIN( BITMAPS ) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, VERTEX2F( x * 16, y * 16 ) );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, END() );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, DISPLAY() );
ft_incCmdOffset( 4u );
ft_write32( RAM_CMD + cmdOffset, CMD_SWAP );
ft_incCmdOffset( 4u );
ft_write16( REG_CMD_WRITE, cmdOffset );

If the step 2 (display splash) is not executed, the icon is correctly display. If displayed, the icon is changed into garbage.

Could someone explain this behaviour ?

Thanks in advance.
Regards.

2
Discussion - EVE / Tag value of an area with content
« on: June 17, 2020, 08:18:19 AM »
Hi,
In order to create a "slidable" area with texts and images content, I first drew the content:
Code: [Select]
CLEAR_COLOR_RGB()
CLEAR(1 ,1 ,1)
CLEAR_TAG( 0 )
...
BITMAP_SOURCE()
BITMAP_LAYOUT()
BITMAP_SIZE()
BEGIN( BITMAPS )
...
CMD_TEXT()
...
Then I defined the area where the touch shall be used for scrolling :
Code: [Select]
COLOR_MASK(0 ,0 ,0 ,0)
TAG( value )
BEGIN(RECTS)
...
Touching the scrolling area, I expected to get the defined tag value. However, if the touch happens on a text or an image, the tag value 0 is obtained.
Is there a way to not get the tag value 0 and obtain the tag of the content area ?

Thanks in advance for any support.
Best regards

3
Discussion - EVE / Capacitive touch screen calibration
« on: June 10, 2020, 04:22:24 PM »
Hi,

Am I wrong if I say that the Capacitive Touch Engine does not need a calibration in extended mode ?

Currently, we only own and tested resistive touch screens. The calibration process appears as a big constraint for a "mass" production.

Thanks in advance for any answer.

Regards.

4
Discussion - EVE / How to inflate large image
« on: June 05, 2020, 04:41:38 PM »
Hi,

I would like to inflate a compressed image (ARGB1555) larger than the circular buffer. Is there a way to do that ?

Thanks in advance for any support.

Regards.
Thierry Pierret

5
New Member Introductions / New to EVE2 controller
« on: June 05, 2020, 04:25:32 PM »
Hi,

I just connected to the forum, so here is a small introduction.

I'm currently evaluating the EVE2 controller abilities for future new products of my company. The test platform is made of a STM32 MCU development boards and some NewHaven boards.
The race is still opened, but the EVE2-based screen sounds to be a winning choice.

Regards.

Pages: [1]