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:TivaWare_C_Series 示例(enet_tcpecho_server)不能与 TIMER0协同工作

Guru**** 2534260 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1194064/ek-tm4c1294xl-tivaware_c_series-example-enet_tcpecho_server-doesn-t-work-with-timer0

器件型号:EK-TM4C1294XL

我为 EK-TM4C1294XL 电路板编译了其中一个 TivaWare_C_Series-2.2.0.295电路板示例。  示例为:enet_tcpecho_server。  它作为服务器运行良好、但当我尝试添加代码以使用 TIMER0时、我无法使用 timers 文件夹中的 TivaWare 示例代码。  当我将 TIMER0中断的优先级降低到0xE0、但我从未 遇到 TIMER0 ISR 的断点时、enet_tcp_server 应用程序工作正常。  我正在将 TIMER0配置为以400Hz 的频率运行。

使用 lwIP 和 TIMER0有什么特别之处吗?

感谢你的所有帮助。

豪尔赫

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

    您好!

    [引用 userid="175832" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1194064/ek-tm4c1294xl-tivaware_c_series-example-enet_tcpecho_server-doesn-t-work-with-timer0 "]当我将 TIMER0中断的优先级降低到0xE0、但之后从未 遇到 TIMER0 ISR 的断点时、enet_tcp_server 应用程序工作正常。

     如果您降低 TIMER0的优先级、SysTick 和以太网中断将优先于 Timer0中断、因为它们具有更高的优先级。  

    //
    //
    //定义设置系统时钟。
    //
    //
    #define SYSTICKHZ 100
    #define SYSTICKMS (1000/SYSTICKHZ)

    //
    //
    //中断优先级定义。 这些值的前3位是
    //值较低表示优先级较高的中断。
    //
    //
    #define SysTK_INT_PRIORITY 0x80
    #define ETHERNET_INT_PRIORITY 0xC0

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

    感谢您的回应 Charles。  我的问题是、当我将 TIMER0的优先级设置为0xE0时、我只能使 SysTick 和以太网中断正常工作、但 TIMER0不会生成中断、因为我从未遇到我在 TIMER0中断服务例程中放置的断点。

    如何使任何计时器与 SysTick 和以太网中断配合使用?

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

    您好!

     -如果将 TIMER0设置为比 SysTick 和以太网更高的优先级,那么 TIMER0是否起作用?

     -在将优先级设置为0xE0后,如何知道 TIMER0不起作用? 你能做一个实验吗? 在 TIMER0 ISR 中、您能否切换某些 GPIO 而不在 ISR 中放置断点?  您是否看到 GPIO 切换?

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

    查尔斯

    即使 TIMER0的优先级高于 SysTick 和以太网、TIMER0也不起作用。  在我的应用中、TIMER0的目的是切换 GPIO 以生成200Hz 信号、因此我在使用和不使用断点的情况下运行它、从未在 GPIO 线上看到活动。

    我还注意到,我的程序正在到达 IntDefaultHandler(),这是在处理器收到意外中断时发生的。  是否有可能 启用没有 ISR 的中断?

    现在、我最快的解决方案是将以太网代码添加到计时器项目中、查看它是否正常工作、或将计时器代码添加到以太网项目中。  我选择将计时器代码添加到以太网项目、因为我遇到了"未定义的引用错误"、似乎我必须将一个额外的库链接到计时器项目、并且由于我不知道如何执行该操作、我选择了的路径 最小电阻。

    您是否有一个使用计时器的以太网回波服务器的任何位置可以切换 GPIO 线路的示例?

    感谢你的所有帮助。

    豪尔赫

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

    查尔斯

    我的问题最终是,自从我开始使用以太网回显服务器项目以来,中断矢量表中 TIMER0的 ISR 就是 IntDefaultHandler()。  一旦我在表中设置了正确的名称并包含了函数原型、TIMER0中断现在就可以工作了。

    感谢你的所有帮助。

    豪尔赫