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.

[参考译文] MSPM0G3507:在编程期间使用 SysTick 来跟踪时间

Guru**** 2464580 points
Other Parts Discussed in Thread: SYSCONFIG, LP-MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476054/mspm0g3507-using-systick-to-keep-track-of-time-during-program

器件型号:MSPM0G3507
主题中讨论的其他器件:SysConfig

工具与软件:

我正在尝试创建一个计时器、以便在使用 LP-MSPM0G3507运行程序时跟踪秒时间。 我使用了示例代码 SysTick_PERIODIC_TIMER 并对其进行了小扩展。 SysConfig 文件相同、但主函数和 Sys Tick_Handler ()如下所示:

现在的目标是使 GPIO_LEDS_USER_TEST 切换以及 GPIO_LEDS_USER_LED_1。 我看到 GPIO_LEDS_USER_LED_1在切换、但没有看到 GPIO_LEDS_USER_TEST 发生切换。 即使我在调试器中看到 time_sec 比 start_time+2大得多、程序似乎卡在 while (time_sec - start_time < 2){}个永远循环(无论__WFI ()是否存在)中。 会发生什么情况? 我需要使用一些函数来清除 SysTick 的中断吗?

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

    TimeSec 应为易失性。 否则、编译器无法知道 TImeSec 可在任何时候在程序的某些部分中进行修改、从而假定 TimeSec 是恒定的。

    我不知道这是有必要的、但您也应该关闭中断来访问 TImeSec。

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

    删除对 DL_SYSCTL_enableSleepOnExit 的调用。 一旦第一个中断发生、MAIN 将不再运行。