主题中讨论的其他器件: TMS320F28035
我们将 CPU 定时器2用作一种外部脉冲计数器。
到目前为止、我们已使用以下代码来配置 CPU 定时器2:
EALLOW;
SysCtrlRegs.PCLKCR3.bit.CPUTIME2ENCLK = 1; //启用 CPU 计时器2
SysCtrlRegs.CLKCTL.bit.TMR2CLKSRCSEL = 1; //设置计时器2的输入时钟以使用外部引脚
SysCtrlRegs.CLKCTL.bit.TMR2CLKPRESCALE = 0; //将输入时钟源的预分频器设置为/1
SysCtrlRegs.XCLK.bit.XCLKINSEL = 1; //将外部时钟源引脚设置为 GPIO19
EDIS;
除了上电复位、GPIO19的前6个脉冲不会导致 CpuTimer2Regs.TIM 递减计数、一切都正常。 在第6个脉冲之后、CpuTimer 正常递减计数。
这个问题似乎是时间独立和频率独立的。 加电后、我可以等待几分钟、无论什么、前6个脉冲都将丢失。 我还可以将脉冲分开几秒钟、它们也会丢失到第7个脉冲。
我还尝试了设置 TMR2CLKSRCSEL = 0 (SYSCLKOUT)、等待几微秒、然后切换回 TMR2CLKSRCSEL = 1。 使用调试器、我观察 到 CpuTimer2Regs.TIM 在时钟源为 SYSCLKOUT 时递减、但在切换到外部时钟源后、前6个脉冲再次丢失。
有什么想法我做了什么错?
