Timer基本功能介绍

文章目录

  • 1.Timer基本功能介绍
    • 1.1 寄存器预装载特性
    • 1.2 计数模式
    • 1.3 计数器溢出与重装

1.Timer基本功能介绍

1.1 寄存器预装载特性

定时器中部分寄存器具有预装载特性,即每类寄存器具有双寄存器机制,分别由各自的 影子寄存器预装载寄存器 组成。

定时器中具有预装载特性的寄存器有:

  • PSC:预分频寄存器
  • ARR: 自动重装载寄存器
  • CCR:捕获比较寄存器
  • RCR:重复计数寄存器

影子寄存器: 是真正起作用的寄存器,即实际的寄存器。
预装载寄存器: 是用户操作的寄存器,常用来为影子寄存器提供缓冲,提前做数据或指令准备。发生更新事件时,预装载寄存器的数据拷贝到影子寄存器而发挥作用。

Note: 用户操作的永远只是预装载寄存器,包括DMA的访问。

Q: 为什么要使用双寄存器的机制?
A: 因为定时器工作往往具有一定的周期性,如果每次我们的参数修改都直接作用于实际寄存器,往往不可避免会影响到当前周期的正常计数以及相关的输出动作。

其中 ARR/CCR 影子寄存器的预装载功能可由软件开启或关闭。在开启预装载功能时,影子寄存器的内容必须借助更新事件完成更新。在关闭预装载使能位时,用户修改预装载寄存器的数据后会立即被拷贝进影子寄存器。

PSC/RCR 寄存器无预装载使能控制位,所以对于实际寄存器的数据更新只能通过更新事件实现从预装载寄存器数据到影子寄存器的拷贝更新。

开启预装载使能时:
Timer基本功能介绍_第1张图片
关闭预装载使能时:
Timer基本功能介绍_第2张图片

1.2 计数模式

基本定时器只支持向上计数模式,通用定时器和高级定时器支持向上、向下以及中心计数模式。

向上计数模式: 计数器使能后从0开始计数,直到CNT=ARR,产生溢出事件(即更新事件,UEV),然后从0开始计数。
Timer基本功能介绍_第3张图片
向下计数模式: 计数器使能后,计数器从ARR值开始递减,到0后产生下溢出事件,并重新从ARR递减计数。
Timer基本功能介绍_第4张图片
中心计数模式: 计数器使能后,先从0开始向上计数,到ARR-1产生溢出事件,然后从ARR开始向下计数到1,产生溢出事件,再从0重新开始向上计数。
Timer基本功能介绍_第5张图片

1.3 计数器溢出与重装

不同计数模式下的溢出与重装操作。
Timer基本功能介绍_第6张图片

你可能感兴趣的:(定时器,嵌入式硬件,硬件工程,功能测试)