TIM定时器
定时器可以对输入的时钟计数,并在计数值到达设定值时触发中断。
时基单元:16位计数器、预分频器、自动重装寄存器(均为16位)
计数器:执行计数定时的作用,每来一个时钟,计数器加一。
预分频器:对计数器的时钟进行分频,计数更加灵活。
自动重装寄存器:计数的目标值。
在主频72MHz的条件下,最大定时时间为59.65s。
分频后的频率f=72MHz/65536
分频后的周期T=65536/72MHz
最大定时时间t=(65536/72MHz)*65536=65536*0.065536/72=59.65s
定时器除了基本的定时中断功能,还包含输入捕获、输出比较、内外时钟源选择、编码器接口、主从触发模式等。
定时器分成高级定时器、通用定时器以及基本定时器。
三种定时器介绍
基本定时器
内部时钟72MHz通过触发控制器到达时基单元。PSC预触发器根据值来进行分频,赋值为0进行1分频即72/1=72MHz,赋值为1进行2分频即72/2=36MHz。自动重装载寄存器中存入目标值,内部时钟信号上升沿到达时,计数器加1,当计数器从0开始计数,计数达到目标值时,定时时间到,申请中断,计数器清零,此时会产生更新中断和更新事件,更新中断通完NVIC,配置好NVIC,CPU响应更新中断,完成定时中断任务。
主模式触发DAC
该模式可以使硬件不受程序控制的情况下自动运行。
该模式可以将定时器的更新时间映射到触发输出TRGO的位置,TRGO直接接到DAC的触发转换引脚上,此过程不需要软件参与,实现硬件自动化。
通用定时器
通用定时器的时基单元
通用定时器的核心部分时基单元与基本定时器的时基单元基本类似,区别在于通用定时器的计数器有三种模式,向上计数、向下计数和中央对齐,而基本定时器仅有向上对齐一种模式。
向上计数,计数器从零开始计数,计数到目标值后,计数器清零,申请中断。
向下计数,计数器从目标值开始递减,计数递减至零后,计数器恢复至目标值,申请中断。
中央对齐,计数器从零开始计数,计数到目标值后,申请中断,计数器递减,计数器递减至零后,申请中断,重复操作。
通用定时器的时钟输入
对于通用定时器而言,其时基单元的时钟不仅来自内部时钟72MHz,也可以来自外部时钟。
外部时钟分成两种,外部时钟模式1和外部时钟模式2.
外部时钟模式2的时钟来源是ETR引脚。
外部时钟模式1的时钟来源是ETR引脚、其他定时器、CH1引脚的边沿、CH1和CH2引脚。
ITR与其他定时器的关系其他定时器触发中断后,产生中断事件,将中断事件映射到TRGO后,其他定时器的TRGO就作为本定时器的ITR,从而完成定时器的级联。
通用定时器的输入输出
下面的电路是输入捕获电路和输出比较电路。输入捕获电路和输出比较电路不能同时使用。
高级定时器
高级定时器与通用定时器的区别一
时基单元处增加了一个重复次数计数器,重复次数计数器的作用是实现每隔几个计数周期才发生一次更新中断和更新事件。
高级定时器与通用定时器的区别二
下面增加的电路是为了驱动三相无刷电机。