定时器的计数功能

一、 计数部分图示

在这里插入图片描述

二、PSC作用(以STM32F103为例)

当使用72Mhz时钟时,由于CNT计数器是16位的寄存器,故最大计数值是0xFFFF(十进制为65535),而65535/72M=910us,即使用72Mhz时钟最多时间是910us产生一次更新(溢出)中断,想要得到1ms更新(溢出)中断,可以在CNT前再加一个定时器PSC。
当PSC=0时,72Mhz时钟给PSC一个时钟周期时,PSC直接发生更新(溢出)中断给CNT累加,即CNT的时钟频率就是72Mhz时钟的时钟频率;
当PSC=1时,72Mhz时钟给PSC一个时钟周期时,PSC累加到1,72Mhz时钟再发一个时钟周期,PSC溢出产生更新中断,即72Mhz时钟发送两个时钟周期CNT累加一次,相当于CNT的时钟频率是72Mhz时钟的二分之一;
当PSC=2时,同样的,72Mhz时钟发三个时钟周期CNT累加一次,即CNT的时钟频率是72Mhz时钟的三分之一。
在这里插入图片描述

三、PSC时序图

在这里插入图片描述

当预分频器的参数从1变到2时(预分频系数从1变成2),即预分频控制寄存器的值从0变到1,此刻定时器时钟CK_CNT的频率不会马上改变,而是需要计数到ARR(自动重装载寄存器)设定的值,即溢出发送更新事件(UEV)才会将定时器时钟的频率改变。

四、自动重装载值更改

在这里插入图片描述
当ARPE寄存器等于0时,更改ARR的值时,会立刻生效,即更改时刻起,计数器计数到更改后的值就发生更新事件。
在这里插入图片描述
当ARPE寄存器等于1时,更改ARR的值时,不会立刻生效,而是要等到计数器计数到更改前的ARR值发生更新事件后才会生效。

五、自动加载影子寄存器

在这里插入图片描述
将计数图细分一下,即改变自动重装载寄存器的值后,当ARPE寄存器等于0时,自动重装载寄存器的值会立刻放入影子寄存器,即计数值立刻生效,当ARPE寄存器等于1时,自动重装载寄存器的值不会立刻放入影子寄存器,只有当CNT计数器溢出产生更新事件时自动重装载寄存器的值才会放入影子寄存器,从而让计数值生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值