定时器的时钟源有三种:外部时钟,内部时钟,gated internal clock(不知道怎么翻译的).当使用外不时钟的时候,只要知道使用的是哪一个pin,以及连接到pin的时钟频率就能知道输入时钟的频率,当使用的是内部时钟内,这个是时钟源来自 哪里,怎么知道它的频率呢?
另一个问题是EMUMGT_CLKSPD的CLKDIV只有在仿真的情况下有用吗?
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 的时钟频率是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的计数也会增加?