This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C129XNCZAD:小工具磁通

Guru**** 2391415 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1024222/tm4c129xnczad-widget-fluctating

器件型号:TM4C129XNCZAD

我制作了以下小部件。它包含持续更新价值。

但是当这个小工具处于静止状态时,它看起来是波动的。  

E、P 和 Err 的值看起来是波动的。 它看起来不是很顺利。

我们如何解决?

char g_pRunningError[10];
画布(g_sRunningError、g_psPanel + 4、0、0、
g_sKentec320x240x16_SSD2119、195、131、110、28、
canva_style_fill | canva_style_text | canva_style_text_left |
canva_style_text_不透明、ClrBlack、ClrBlack、ClrWhite、
G_psFontCmss28、g_pcRunningError、0、0);

char g_pRunningPulse [10];
画布(g_sRunningPulse、g_psPanel + 4、&g_sRunningError、0、
&g_sKentec320x240x16_SSD2119、235、60、80、18、
canva_style_fill | canva_style_text | canva_style_text_left |
canva_style_text_不透明、ClrBlack、ClrBlack、ClrWhite、
G_psFontCms18、g_pcRunningPulse、0、0);

char g_pRunningEnergy [15];
画布(g_sRunnigEnergy、g_psPanel + 4、&g_sRunningPulse、0、
g_sKentec320x240x16_SSD2119、95、60、120、18、
canva_style_fill | canva_style_text | canva_style_text_left |
canva_style_text_不透明、ClrBlack、ClrBlack、ClrWhite、
G_psFontCms18、g_pcRunningEnergy、0、0);
画布(g_sProgressBar、g_psPanel + 4、&g_sRunnigEnergy、0、
&g_sKentec320x240x16_SSD2119、ANIM_LEFT、ANIM_TOP_ERROR、ANIM_width、ANIM_HEIGHT - 5、
canva_style_Outline,0,ClrGreen,0,0, 0、
0、0);
复选框(g_psCheckBox、g_psPanel + 4、&g_sProgressBar、0、
&g_sKentec320x240x16_SSD2119、20、114、50、
CB_Style_IMG、16、0、ClrRed、0、 0、0、0、
OnCheckChange);//
RectangularButton (g_sPushBtn、g_psPanel + 4、&g_psCheckBox、0、//脉冲源
&g_sKentec320x240x16_SSD2119、110、170、100、30、
PB_style_fill | PB_style_text | PB_style_text、ClrForestGreen、
ClrGray、ClrGray、ClrSilver、g_psFontCm22、
"start"、0、0、0、0、OnButtonPress);

画布(g_sErrorMeasurement、g_psPanel + 4、0、&g_sPushBtn、&g_sKentec320x240x16_SSD2119、
X_OFFSET、Y_OFFSET、(320 -(X_OFFSET*2))、205、
canva_style_app_eld_绘图、0、0、0、0、 0、0、OnErrorMeasurmentPaint);

下面是 while 循环中调用的函数  

无效
UpdateError (float Accumuled_Energy、unsigned int Pulse、float 错误)

bool bIntDisabled;


bIntDisabled = IntMasterDisable();

if (Flag.N_Actual_Ready)

flag.N_actual_Ready=0;
calculate_error();
flag.Error_Displyed_Once = 1;



sprintf (g_pcRunningEnergy、"%0.2f"、累加能量);
sprintf (g_pcRunningPulse、"%d"的%d、Scanner Pulse Received、Temp_Pulse);

if ((Flag.Pulse 已接收)&&(Flag.Error_Displyed_Once=0))

ucstrpy (g_pRunningError、"---%"、sizeof (g_pRunningError));


其他

sprintf (g_pcRunningError、"%0.2f"、Error);


if (g_ui32Panel == 4)

WidgetPaint ((tWidget *)&g_sRunningError);
WidgetPaint ((tWidget *)&g_sRunnigEnergy);
WidgetPaint ((tWidget *)&g_sRunningPulse);

if (bIntDisabled = false)

IntMasterEnable();

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Rajesh、

    我以前没有使用我们的图形库小工具进行这种开发、但我的一位同事一直在整理我们的图形库的文档、该文档计划在今年晚些时候发布、他可能能够在这里提供更好的指导。 他将於明日返回办公室。 我将请他以他能够提出的任何想法作答复。

    此致、

    Ralph

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     波动意味着什么? 您发送的是静止图像、而不是视频。 因此、很难将错误的内容可视化。 无论如何、我不确定 在 while 循环中调用 WidgetPaint 是否正确。 我查看一些 grlib 示例、WidgetPaint 仅在触发回调的事件之后调用。 为什么需要在 while 循环中调用 UpdateError? 我建议您尝试使用计时器,以便仅  在某些计时器延迟后定期调用 UpdateError,并查看这是否会产生影响。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Charles:

     

    void UpdatePQS 寄存器(void)

       //uint8_t pui8MACAddr[6];

                   

                                  sprintf (g_pcActive_P、   "P:        %d"、boot_cnt);

                                   sprintf (g_pcReactive_QL、"QL:  %0.4f"、无功电能迟滞);

                                   sprintf (g_pcReactive_QC、"QC: %0.4f"、无功_能量_滞后);

                                   sprintf (g_pApprent_S、               "S:        %0.5f"、Apprent_Energy);

                   

                                   if (Timer_flag)

                                   {              

                                                                   Timer_flag=0;

                                                                   WidgetPaint ((tWidget *)&g_sActive_P);

                                                                   WidgetPaint ((tWidget *)&g_sReactive_QL);

                                                                   WidgetPaint (((tWidget *)&g_sReactive_QC);

                                                                   WidgetPaint ((tWidget *)&g_sApprent_S);

                                   }              

                   }

     

    在 void main (void)函数中调用上述函数- UpdatePQSRegister();同时调用 while (1)。

    Timer0中断配置 为1秒、一旦中断到达、我们就设置为 timerflag=1

    然后转到上面所示的小工具喷漆。

     

    我也随附了视频 以供您参考。

    I video 您可以看到 P、QL、QS、S 值在刷新时闪烁。

    e2e.ti.com/.../WhatsApp-Video-2021_2D00_08_2D00_05-at-2.36.11-PM.mp4

    e2e.ti.com/.../WhatsApp-Video-2021_2D00_08_2D00_05-at-2.32.47-PM.mp4

     

    此致、

    Rajesh Varma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rajesh、

     在视频中、我没有特别看到任何错误。 也许亲自观看显示屏会有不同之处。 例如、刷新显示屏后、我会看到 P 值从4419变为4420、4421。 基本而言、我不会闪烁。 也许、您能详细说明一下它是什么闪烁的。  

     做一个实验、您能不能注释掉一些 WidgetPaint? 您看到的是相同的闪烁还是略有改善、尽管我在视频上看不到任何闪烁。

                                                                   WidgetPaint ((tWidget *)&g_sActive_P);

                                   // WidgetPaint ((tWidget *)&g_sReactive_QL);

                                   // WidgetPaint ((tWidget *)&g_sReactive_QC);

                                   // WidgetPaint (((tWidget *)&g_sApprent_S);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已将图形库与 Kentec 显示一起使用。 一个应用程序执行的操作与项目中的操作相同--读取了一个传感器,并使用每个新值来更新显示。

    我刷新了更新状态读数 、方法是先用背景颜色覆盖旧值、然后用前景颜色写入新值。 它是否"闪烁?" 很难说、这取决于调用覆写漆和调用新值漆之间的时间。 是否有更好的方法来实现此目的? 也许、但这需要深入研究库。

    与此相结合、我注意到的一件事是、当您使用具有可变字符宽度的字体时、即字符宽度取决于字符、显示屏可能会根据先前的值和新的值显示跳转。 请观看第二个视频。 当 QC 值从1770到1771到1772时、"1"比其前面的"0"或后面的"2"薄。 因此、当"1770"更改为"1771"时、显示屏中一位数字右侧的所有字符(包括小数点)会稍微向左移动、当"1771"更改为"1772"时、所有字符都会向右移动。 这看起来像是显示屏中的"跳转"。 可能改用固定宽度字体会减轻这种情况。