cancel
Showing results for 
Search instead for 
Did you mean: 

I have a working program running on a STM32F746NGH6, designed with TouchGFX version 4.14.0. Everything woks perfectly, except for these radio button. When pressing them, the screen keeps shaking or trembling, and I cant figure out what causes that.

ANigr.1
Associate II

https://streamable.com/7xet2b

Does anyone had a similar issue, or maybe know what can be causing this?

Thanks in advance!

4 REPLIES 4
MM..1
Chief III

Siply your code handling this event is in blocking mode and seems longer time as is possible in gui thread.

This is the handler:

void SettingsViewBase::radioButtonSelectedCallbackHandler(const touchgfx::AbstractButton& src)
{
    if (&src == &radioA)
    {
        //radiobtnselectA
        //When radioA selected call virtual function
        //Call radiobtnselectA
        radiobtnselectA();
    }
    else if (&src == &radioB)
    {
        //radiobtnselectB
        //When radioB selected call virtual function
        //Call radiobtnselectB
        radiobtnselectB();
    }
    else if (&src == &radioC)
    {
        //radiobtnselectC
        //When radioC selected call virtual function
        //Call radiobtnselectC
        radiobtnselectC();
    }
    else if (&src == &radioD)
    {
        //radiobtnselectD
        //When radioD selected call virtual function
        //Call radiobtnselectD
        radiobtnselectD();
    }
}

And the radio button selected:

void SettingsView::radiobtnselectD() { MainManager.temp.tip = 4; }
 
void SettingsView::radiobtnselectC() { MainManager.temp.tip = 3; }
 
void SettingsView::radiobtnselectB() { MainManager.temp.tip = 2; }
 
void SettingsView::radiobtnselectA() { MainManager.temp.tip = 1; }

Dont think that it takes that long to block gui thread.

Yes when your MainManager is handled in other RTOS thread and dont use some bus blocking, code seems ok.

Maybe latest 4.17 18 or older 4.13 need be compared...

I commented the line in all these radiobtnselectX(), so now they do nothing at all. Did not solved the problem.