我用输入捕获测量输入信号,信号的频率是62.5KHz,我在中断中反复切换上升沿、下降沿触发,发现在F103的仿真中,主时钟频率为72M时,很容易就捕捉到每一个上升沿和相邻的下降沿之间的脉冲宽度。当把103的频率降到8M时,每次捕捉的上升沿和下降沿之间总是间隔好几个周期,已经完全不是信号的频率了。
我分析了一下仿真中的Code coverage,TIM3 中断是80个指令,按照1.25DMIPS/MHZ计算,72MHZ系统时钟时,80个指令需要80/(1.25*72)=0.889us 远远小于捕获周期8us,因此可以捕获到62.5KHZ的波形信号。
而当系统时钟降到8MHZ时,80个指令需要80/(1.25*8)=8us,已经等于捕获周期8us.所以不能捕获62.5KHZ的波形信号。
我想向大家求证的是,是不是输入捕获有个最大捕获频率限制,那就是受制于系统时钟和中断的指令周期数?
此外,L152的系统时钟采用内部RC16M,是不是也不能实现对62.5K信号的输入捕获?
如果我要在8M-16M,或者32M的系统时钟下,对62.5KHZ的信号输入捕获,该怎样来实现呢?
莫非只能用大于72M的系统时钟才能实现?谢谢大家。 |