也许这是一个愚蠢的问题:
我有内部20 MHz振荡器,16位定时器和预分频器(1,2,4,8,16,32,64,128),我想产生1毫秒的延迟。我知道如何做到这一点-(20000000/ 1) / 1000 =20000 ->把这个值放到16位寄存器,它就能工作了。
对于预分频器2和4,我得到了相同的结果: 1ms - (20 000 000 / 2) / 1000 = 10 000和(20 000 000 / 4) / 1000 =5 000
我的问题是如何确定使用哪个预分频器?也许,我必须选择预分频器4,因为这个值( 5000 )更接近于0,并且我的计时器开始从0计数到5000。如果我选择10000,计时器会数到2x5000。
提前谢谢你!
发布于 2021-01-16 05:09:16
从数学上讲,你选择哪种组合是没有区别的。
预分频器和计数器都是在硬件中实现的,您不会看到性能影响。
但是,根据您的体系结构,您的预分频器可能会永久运行,从而导致不准确。
您应该将尽可能高的频率(最低的预分频器,最精确的)发送到您的计时器/计数器中。
https://stackoverflow.com/questions/65742121
复制相似问题