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.

定时器的时钟源问题

       定时器的时钟源有三种:外部时钟,内部时钟,gated internal clock(不知道怎么翻译的).当使用外不时钟的时候,只要知道使用的是哪一个pin,以及连接到pin的时钟频率就能知道输入时钟的频率,当使用的是内部时钟内,这个是时钟源来自 哪里,怎么知道它的频率呢?

           另一个问题是EMUMGT_CLKSPD的CLKDIV只有在仿真的情况下有用吗?

  • internal clk时钟源在对应的device data manual中有写,一般是1/6*CPU clock.

    EMUMGT_CLKSPD中的SOFT及FREE bit决定在如单步调测等时timer的工作模式,其中CLKDIV反映timer输入时钟源与CPU clk的关系,在timer user guide中有详述。

  •  谢谢你的回答,我还是有些问题。

     第一个问题:

            我查了一下, internal clk 的时钟频率是CPU clk的1/6,是不是无论是调试,还是运行程序, internal clk 的时钟频率都是CPU clk的1/6,不会改变?

    第二个问题:

    我timer使用的是unchained mode,TIMHI的输入时钟是内部时钟,TIMLO的输入时钟是外部时钟,timer只使能一次,EMUMGT_CLKSPD中的SOFT及FREE bit均为零。外部输入时钟的频率已知,通过读CNTHI和CNTLO的值来估计CPU频率,当直接运行程序时可以得到正确的结果,但是在单步调试的是时候(在for循环处单步运行,见下图),CNTHI和CNTLO会逐渐增加最终变为零。

    而使用clock计时(下图中的时钟书数),每一个单步所增加的时钟数一样。

         这样是不是说明,即使是在单步调试的情况下,两次单步运行的间隔内timer的计数也会增加?