1
到65535
之间的任何因子。可编程高级控制定时器的主要模块是一个16位计数器及其相关的自动重载寄存器。计数器可以向上计数、向下计数或同时向上和向下计数。计数器时钟可以被预分频器分频。
计数器、自动重载寄存器和预分频器寄存器可以通过软件读写。即使在计数器运行时也是如此。
时基单元包括:
自动重载寄存器是被预装载的。写入或读取自动重载寄存器会访问预装载寄存器。根据 TIMx_CR1 寄存器中的自动重载预装载使能位(ARPE
),预装载寄存器的内容会永久性地或在每次更新事件(UEV
)时传输到影子寄存器。当计数器达到上溢(或递减计数时的下溢)且 TIMx_CR1 寄存器中的UDIS
位等于 0
时,会发送更新事件。它也可以由软件生成。对于每种配置,均详细描述了更新事件的生成。
计数器由预分频器的输出CK_CNT
计时,仅当TIMx_CR1
寄存器中的计数器使能位(CEN
)置位时它才被使能(有关计数器使能的更多信息,另请参考从机模式控制器描述)。
注意,在 TIMx_CR1 寄存器的CEN
位置位后,计数器开始计数1个时钟周期。
预分频器可以将计数器时钟频率除以 1 到 65536 之间的任意因子。它基于通过16位寄存器(在 TIMx_PSC 寄存器中)控制的16位计数器。当该控制寄存器被缓冲时,它可以动态改变。在下一次更新事件时会考虑新的预分频器比率。
图42给出了预分频器比率动态变化时计数器行为的一些示例:
看到这张图是不是就头大?现在很多人都喜欢看文字解释,一看到图表就没耐心了。其实只要静下心来仔细分析就不难理解。
CK_PSC
是定时器的时钟源,它还没有被预分频器分频。CEN
上文已解释,可以把它理解为总开关,它为高时,CK_CNT
才能输出频率。CK_CNT
为预分频器分频后输出的频率。CK_CNT
的频率并没有立即变化,而是等到UEV
事件发生后才变化,可以看到频率是变低了!CK_CNT
中脉冲的个数,来一个脉冲计一个,所以定时器记下的时间就是这么来的,所以CK_CNT
至关重要。CK_PSC
作参考的,可以这么通俗的理解,现在的CK_CNT
的一个周期是由原来的两个周期合成的,看图中虚线,它等于是不停地在数现在的一个周期里,原来频率的脉冲数有几个。预分频值升高后,频率会变低。如果预分频的值为4,那么最后一行的计数值应该是从0~4
计数。本文发布于:2024-02-02 05:17:28,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170682225041604.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |