---------------------------------------------------------------------
char cCharBuffer[8]; // 8 Character, 1 Byte per Character
leChar fastLegatoCharBuffer[8]  = {0}; // 8 Character, 2 Bytes per Character
leChar easyLegatoCharBuffer[8]  = {0}; // 8 Character, 2 Bytes per Character
leChar smartLegatoCharBuffer[8] = {0}; // 8 Character, 2 Bytes per Character
leFixedString fastValString;
leFixedString easyValString;
leFixedString smartValString;

---------------------------------------------------------------------
void DynamicStringInitFont( leFixedString* String, uint32_t StringFontID  )
{
    String->fn->setFont( String, leStringTable_GetStringFont(leGetStringTable(), StringFontID, Language) );
}

void DynamicStringInit( leChar* leBuffer, uint32_t size, leFixedString* String, uint32_t StringFontID  )
{
    leFixedString_Constructor( String, leBuffer, size );

    DynamicStringInitFont( String, StringFontID );
}

---------------------------------------------------------------------
    DynamicStringInit( fastLegatoCharBuffer,  sizeof(fastLegatoCharBuffer),  &fastValString,  stringID_FastVal );
    DynamicStringInit( easyLegatoCharBuffer,  sizeof(easyLegatoCharBuffer),  &easyValString,  stringID_EasyVal );
    DynamicStringInit( smartLegatoCharBuffer, sizeof(smartLegatoCharBuffer), &smartValString, stringID_SmartVal );

---------------------------------------------------------------------
void DynamicStringUpdate( char* cBuffer, leFixedString* String, leLabelWidget* Label )
{
    String->fn->setFromCStr( String, cBuffer );

    Label->fn->setString( Label, (leString*)String );
}

---------------------------------------------------------------------
        sprintf( cCharBuffer, "Name" );
        DynamicStringUpdate( cCharBuffer, &smartValString, Screen0_smartValLabel );

---------------------------------------------------------------------
        sprintf( cCharBuffer, "Pause" );
        DynamicStringUpdate( cCharBuffer, &smartValString, Screen0_smartValLabel );

---------------------------------------------------------------------
    DynamicStringInitFont( &fastValString,  stringID_FastVal );
    DynamicStringInitFont( &easyValString,  stringID_EasyVal );
    DynamicStringInitFont( &smartValString, stringID_SmartVal );

---------------------------------------------------------------------
volatile bool UpdateFlag = false;
volatile uint32_t Counter = 0;

---------------------------------------------------------------------
void TimerCallback( uintptr_t context )
{
    if( StartStop )
    {
        Counter  = (Counter +1)%100000;

        UpdateFlag = true;
    }
}

---------------------------------------------------------------------
    SYS_TIME_CallbackRegisterMS( TimerCallback, 0, 200, SYS_TIME_PERIODIC );

---------------------------------------------------------------------
void UpdateScreen( void )
{
    if( UpdateFlag )
    {
        UpdateFlag = false;

        sprintf(cCharBuffer, "%u", Counter);
        DynamicStringUpdate( cCharBuffer, &fastValString, Screen0_fastValLabel );

        sprintf(cCharBuffer, "%c%c%c%c%c", 32 + ((Counter+0)%(126-32+1)),
                                           32 + ((Counter+1)%(126-32+1)),
                                           32 + ((Counter+2)%(126-32+1)),
                                           32 + ((Counter+3)%(126-32+1)),
                                           32 + ((Counter+4)%(126-32+1)));
        DynamicStringUpdate( cCharBuffer, &easyValString, Screen0_easyValLabel );
    }
}

---------------------------------------------------------------------
        UpdateScreen();

---------------------------------------------------------------------
