高级定时器的时基单元

高级定时器的时基单元_第1张图片

高级控制定时器实际单元包含如下四个寄存器:

预分频寄存器寄存器(PSC)

通过设置预分频器 PSC 的值可以得到不同的 CK_CNT,可以实现 1 至 65536 分频。实际计算为:
fCK_CNT =fCK_PSC/(PSC[15:0]+1)。

计数器寄存器(CNT)

高级控制定时器的计数器有如下三种计数模式

递增计数模式:CNT的值从0开始,每来一个CK_CNT脉冲,其值+1,直到CNT=ARR,则又从0开始计数并生成计数器上溢事件。

递减计数模式:从ARR的值开始递减,每来一个CK_CNT脉冲,其值-1,直到为0,生成下溢事件。

递增/递减(中心对齐)计数模式 :

CNT的值从0开始,每来一个CK_CNT脉冲,就+1。直到CNT=ARR-1,生成计数器上溢事件,然后从 ARR 值开始递减计数直到 1 生成计数器下溢事件 ,然后又从0开始计数,进入下一个循环。
ARR=5

对于递增式或递减式,若禁用重复计数寄存器,每生成上溢或下溢事件一次,则立刻生成更新事件;若使用了重复计数器,则每上溢或下溢一次,重复计数器的值-1,直到为0,生成更新事件。

对于中心对齐式,每次发生计数器上溢和下溢事件都会马上生成更新事件 。

自动重载寄存器 (ARR)

自动重载寄存器 ARR 用来存放与计数器 CNT 比较的值,如果两个值相等就递减重复计数器。 可以通过 TIMx_CR1 寄存器的 ARPE 位控制自动重载影子寄存器功能,如果ARPE 位置 1,自动重载影子寄存器有效,只有在事件更新时TIMx_ARR 才把值赋给影子寄存器。如果 ARPE 位为 0,则 修改TIMx_ARR 值会立即赋给影子寄存器,也就是修改 TIMx_ARR 值马上有效。

重复计数器寄存器(RCR)

在基本/通用定时器发生上/下溢事件时直接就生成更新事件,但对于高级控制定时器却不是这样,高级控制定时器在硬件结构上多出了重复计数器,在定时器发生上溢或下溢事件是递减重复计数器的值,只有当重复计数器为 0 时才会生成更新事件。在发生 N+1 个上溢或下溢事件(N = RCR 的值)时产生更新事件。

你可能感兴趣的:(STM32)