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.

[参考译文] EK-TM4C1294XL:刷新 MCU TM4C1294NCPDT 的 enet_weather 示例中的天气报告

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/878849/ek-tm4c1294xl-refresh-weather-report-in-enet_weather-example-for-mcu-tm4c1294ncpdt

器件型号:EK-TM4C1294XL

我希望在 enet_weather,以便我在特定时间后刷新数据,例如60秒,现在它只是在开始时更新一次,我想在60秒后刷新网站数据,请建议我最好的方法来做, 我需要在现有示例中进行哪些更改。

请帮助。

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

    我今天无法运行该示例(现在仍是星期日)、但明天我将有人进行响应。  我认为该示例已经有60秒的更新。  

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

    您好!

     如果查看 UpdateUART()函数,您将看到以下代码片段。 请参阅以红色突出显示的、其中仅在  每个 CYCLE 延迟周期刷新终端窗口。 cycle_delay 在 enet_weather.h 文件中使用的值定义  3000000。您可以使用此值调整所需的刷新。 或者、您可以使用计时器创建60s 超时、以便 UART 仅在计时器超时时时更新终端窗口。  

    //
    //检查我们是否应该滚动城市。
    //
    IF (g_ui32UARTDelay = 0 && g_ui32ShowCities)

    //
    //清除终端。 打印横幅和 IP 占位符。
    //
    UARTprintf ("\033[2J\033[H");
    UARTprintf ("以太网天气示例\n");
    UARTprintf ("IP:");

    //
    //打印 IP 地址。
    //
    PrintIPAddress (g_pipAddr、ui32IPaddr);
    UARTprintf ("\n");
    UARTprintf ("hit 'enter' to exit \n"\});

    //
    //打印当前城市信息。
    //
    UpdateCity (ui32City、true);

    //
    //“更新”横幅。
    //
    UARTprintf ("\n\n____________________________ \n\n 更新:");

    if (g_ui32Cycles >= update_cycles)

    //
    //重置城市,使其更新。
    //
    for (ui32Idx = 0;ui32Idx < NUM_Cities;ui32Idx++)

    ResetCity (ui32Idx);

    //
    //表示我们已重置所有城市。
    //
    G_ui32Cycles = 0;

    //
    //重置延迟。
    //
    G_ui32UARTDelay = cycle_delay;

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

    您好、Charles、

    做得好-我们想知道海报"怎么"错过了这个。   (他的"想"是否有理由(有些)进行计划调查?)

    我们是否可以轻度地"浪费"使用 "UARTDelay (UARTDelay)"的"过于精确"的测试?

    IF (g_ui32UARTDelay = 0 && g_ui32ShowCities)

    我们怀疑"<="是"更宽容"的操作员(因此更安全)-同时实现相同的代码目标...

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

    您好 CB1、

     g_ui32UARTDelay 是无符号整型。 我做了一个快速实验。 两个=和<=生成的反汇编代码与编译器将使用 BNE 进行分支相同。 如果我将 g_ui32UARTDelay 更改为有符号整数类型、则==将编译相同的代码、而<=将使用 BGT。 在所有情况下、不会以某种方式影响代码大小。  

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

    您好、Charles、

    是-正常-但是"可能"(任何)干扰或中断可能会导致(严格)"="运算符丢失?

    也许-甚至更好-与"<=3"的比较

    • 转义"无符号/有符号"入侵
    • 继续进行"不严格"比较的"宽恕性质"(即"一个且只有一个"值不再达到"匹配!")

    在我们(长期)的设计/开发控制系统工作中、采用了此类"放弃"测试、从而使系统更加稳健!   (即过于精确的测试会导致漏洞-(真正的)不需要!)

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

    谢谢 Charles。

    掌聲決、

    再次感谢。