基本定时器配置

时间:2024-03-29 08:05:52

基本定时器的功能有两种,第一就是基本定时功能,当累加的时钟脉冲数超过预定值时,能触发中断或者触发 DMA 请求。第二是专门用于驱动数模转换器(DAC)。
基本定时器功能框图
基本定时器配置
基本定时器包括以下
①时钟源
图上1所示的区域 基本定时器的时钟源只能来自内
部时钟
,是由 CK_INK 提供。定时器的时钟不是直接来自 APB1 或 APB2,而是来
自输入为 APB1 或 APB2 的一个倍频器。比如在基本定时器和通用定时器的时钟,
当 APB1 的预分频系数为 1 时,这个倍频不起作用,定时器的时钟频率等于 APB1
的频率;当 APB1 的预分频系数为其它数值(如 2)时,这个倍频器起作用,定
时器的时钟频率等于 APB1 频率的两倍。
②控制器
定时器控制器,对基本定时器的复位、使能以及计数的控制。甚至还专门用
于 DAC 转换触发。
③计数器
定时器实现定时的功能,我们已经知道基本定时器的时钟源是 36MHz,如何
实现准确定时呢?这就是一个计数的过程,分别涉及到三个寄存器:计数器寄存
器(TIMx_CNT)、预分频寄存器(TIMx_PSC)、自动重装载寄存器(TIMx_ARR)

这三个寄存器都是 16 位有效数字,可设置的值为 0~65535。
图 18-1 中,我们可以看到预分频器 PSC 有一个输入时钟 CK_PSC 和一个输
出时钟 CK_CNT。输入时钟来源于控制器部分,通过设置预分频的数值,可以得
到不同的 CK_CNT,它实际计算的式子为:CK_CNT=FCK_PSC/(PSC[15:0]+1)。因为
TIMx_PSC 控制寄存器具有缓冲,可以在运行过程中改变它的数值,新的预分频
数值将在下一个更新事件时起作用。
前面说过,基本定时器只能向上计数,在定时器使能后(CEN 置 1),计数器
COUNTER 根据 CK_CNT 频率向上计数,即每一个 CK_CNT 脉冲,TIMx_CNT 值就
加 1
当 TIMx_CNT 值与 TIMx_ARR 的设定值相等时就自动生成事件(产生 DMA
请求、产生中断信号或者触发 DAC 同步电路),并且 TIMx_CNT 自动清零,然后
重新开始计数,不断重复上述过程。因此我们只要设定 CK_PSCTIMx_ARR
两个寄存器的值就可以控制事件生成时间。对应的就是程序中
定时器预分频设置

定时器周期。具体的定时周期计算,将会在下面程序中讲解,目的是更加的直
接去理解