32单片机 TIM定时中断

1.简介

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断。

定时器拥有16位计数器(用来执行计数定时的一个寄存器,每来一个时钟,计数器加1)、预分频器(可以对计数器的时钟进行分频,让计数更加灵活)、自动重装寄存器(计数的目标值)的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时。

不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能。

7792bc7234bb483a9ba10802ffa41580.jpeg

993283e49b2b484c8d1e37a7ff6fabf0.jpeg 

 预分频器之前,连接的是基准计数时钟的输入,由于基本定时器只能选择内部时钟,所以可以认为预分频器是直接连到了输入端,即内部时钟CK_INT, 内部时钟的来源是RCC_TIMxCLK,频率值一般都是系统的主频72MHz,通向时基单元的计数基准频率就是72MHz。

下面的预分频器、计数器和自动重装寄存器构成了最基本的计数计时电路,叫做时基单元。预分频器可以对72MHz的计数时钟进行预分频,寄存器写0就是不分频,寄存器写1就是二分频,输出频率=输入频率/2=36Mhz,寄存器写2就是三分频,依次类推。接下来的计数器可以对预分频后的计数时钟进行计数,计数时钟每来一个上升沿,计数器的值就加1。因为计数器也是16位的,里面的值可以一直加到65535,再加的话就会回到0重新开始,计数器的值在计时过程中会不断自增运行,当自增运行到目标值,产生中断,就完成了定时任务。自动重装寄存器是一个存储目标值的寄存器,在运行的过程中,计数值不断自增,自动重装值是固定的目标,当计数值等于自动重装值时,也就是计时时间到了,会产生一个中断信号,并且清零计数器,计数器自动开始下一次的计数计时。

最后,图中向上的折线箭头代表的是这里会产生中断信号,计数值等于自动重装值产生的中断一般叫做更新中断,之后就会通往NVIC,再配置好NVIC的定时器通道,定时器的更新中断就能够得到CPU的响应了。图中向下的折线箭头代表的是会产生一个事件,对应的事件叫做更新事件,更新事件不会触发中断,但可以触发内部其他电路的工作。

3b335a1e6ae4468cad2e22309bdcb473.jpeg

 通用定时器的时钟源不仅可以选择内部的72MHz时钟,还可以选择外部时钟。

第一个外部时钟就是来自TIMx_ETR引脚上,可以在这个引脚上接一个外部方波时钟,配置内部的极性选择、边沿检测和预分频电路,再配置输入滤波电路,这两个电路可以对输入的波形进行滤波。最后滤波后的信号分成两路,一路ETRF进入触发控制器,选择作为时基单元的时钟。另一路TRGI也可以提供时钟,主要是用作触发输入使用。

77f9e3ad05f646a99777455746243d66.jpeg图中左下区域为输入捕获电路,有四个通道,对应CH1~CH4引脚,可以用于测量输入方波的频率等。中间的寄存器是捕获/比较寄存器,是输入捕获和输出比较电路共用,右边是输出比较电路,有四个通道,对应CH1~CH4引脚,可以用于输出PWM波形、驱动电机。申请中断的地方,增加了一个重复次数计数器,就可以实现每隔几个计数周期,发送一次更新事件和更新中断。

 

DTG是死区生成电路, 输出引脚由原来的一个变为了两个互补的输出,可以输出一对互补的PWM波。最后一部分是刹车输入功能,如果外部引脚BKIN产生了刹车信号或内部时钟失效,产生了故障,那么控制电路就会自动切断电机的输出。

dabd9133f425479da647be92b238fdb5.jpeg

9c14e8609f16484db2da6efe6f1bc9ac.jpeg 

0a1ca826dba94ffaadeaef34297538a4.jpeg 

95760dfc8aef4f7ca99d3751b468134b.jpeg 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值