关于基本定时器的影子寄存器的解释
-
预分频器和自动重装载寄存器都是有影子寄存器的(预加载寄存器和影子寄存器)。
-
重装载的寄存器中的预加载寄存器是:只要确定了预加载寄存器,那么后续的值会先到预加载寄存器中,等待counter溢出了之后,才会加载到影子寄存器中直接给counter。如果没有勾选预加载寄存器的话,后续的值会直接到影子寄存器中,影子寄存器会实时同步到counter中去。有没有预加载寄存器就是有没有缓存,有的话,需要等待到溢出的时候,其中的值才会实时同步到。没有话,只要改变了重装载中的值,那么就会实时同步到counter。——我们默认是没有的,如果寄存器ARPE是0的话(默认为0),那么就是没有缓存,同步更新;如果这个寄存器是1的话,那么就是有缓存,就不能同步更新。
-
而预分频器中也是有影子寄存器: 预分频器值寄存器TIMx_PSC存在影子寄存器,所以在定时器启动后更改TIMx_PSC的值并不会立即影响当前定时器的时钟频率。要等到下一个更新事件(UEV)发生时才会生效。 总之需要记住,预分频器自动有缓存的功能,只有经过一次更新之后,其频率才能进入到影子寄存器中,然后输出出去,其和上述的重装载寄存器类似,也有一个预分频的寄存器当做是缓存,而这个缓存是一定存在的,是没有控制寄存器的位数来控制的。
-