主题中讨论的其他器件:SysConfig
高支持、
我指定的 Focus 客户备注:
我们没有使用 SysConfig、我将 TMR2CLKCTL 设置为正确的设置(使用对 CPUTimer_selectClockSource 的 DriverLib 调用、并具有 CPUTIMER_CLOCK_SOURCE_INTOSC2的时钟源)。
启动后、我们将系统设置为使用 INTOSC1作为 PLL 的时钟源。 我们使用对 SysCtl_setClock 的调用来生成120mH 的 SYSCLK。 任何一个问题都没有问题。
在代码的稍后部分、我们设置 TIMER0 (使用 SYSCLK 作为源)以生成1kHz 节拍。 任何一个问题都没有问题。
如果我以相同的方式设置 TIMER2 (SYSCLK 作为源)、计时器输出是正确的。
当我切换 TIMER2使用 INTOSC1作为其时钟源(CPUTimer_selectClockSource 具有 CPUTIME_CLOCK_SOURCE_INTOSC1的时钟源)并使用计算周期10000时、一切都正常–我得到1kHz 节拍、计时器周期为1ms。
当我将代码更改为使用 INTOSC2作为 TIMER2源时、情况会变得很奇怪。 与使用 INTOSC1时的设置相同。 唯一的变化是在调用 CPUTimer_selectClockSource 时–我将 CPUTIMER_CLOCK_SOURCE_INTOSC1更改为 CPUTIMER_CLOCK_SOURCE_INTOSC2。 使用相同的周期计数、TIMER2每450ms 触发一次。 一个小数学运算、我得出了一个新的"周期计数"、即22。 当我使用该值而不是计算值(10000)时、我可以获得所需的1ms 周期/1kHz 节拍。
----------------
你的初始回复让我想、所以我在操作过程中暂停系统、并确认 TMR2CLKCTL.TMR2CLKSRCSEL 为2、因此调用 CPUTimer_selectClockSource 似乎会执行我的预期。
BTW–我还修改了 F2800157的一个简单示例应用(timer_ex1_cputimer)、以类似的方式配置计时器并获得相同的结果、因此我相当有信心、这不是我们在这里所做的。 我认为、我们很可能没有在做什么、但需要做些什么。
我可以离线从客户那里获取一些代码、并将其发送给您进行评估、但希望首先对您的完整性进行检查。
谢谢!
此致、
布莱克

