ENTER TITLE基本定时器Basic timer (TIM6/TIM7)
01TIM6和TIM7简介
基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。这2个定时器是互相独立的,不共享任何资源。
02主要特性
TIM6和TIM7定时器的主要功能包括:
①16位自动重装载累加计数器;
②16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频器;
③在更新事件(计数器溢出)时产生中断/DMA请求。
03功能
这个可编程定时器的主要部分是一个带有自动重装载的16位累加计数器,计数器的时钟通过一个预分频器得到。
软件可以读写计数器、自动重装载寄存器和预分频寄存器,即使计数器运行时也可以操作。
自动重装载寄存器是预加载的,每次读写自动重装载寄存器时,实际上是通过读写预加载寄存器(Prescaler control register)实现。
当TIMx_CR1寄存器的UDIS位为’0’,则每当计数器达到溢出值时,硬件发出更新事件;软件也可以产生更新事件。
根据TIMx_CR1寄存器中的自动重装载预加载使能位(ARPE),写入预加载寄存器的内容能够立即或在每次更新事件时,传送到它的影子寄存器。
计数器由预分频输出CK_CNT驱动,设置TIMx_CR1寄存器中的计数器使能位(CEN)使能计数器计数。
ENTER TITLE预分频器(Prescaler description)
预分频可以以系数介于1至65536之间的任意数值对计数器时钟分频。它是通过一个16位寄存器 (TIMx_PSC)的计数实现分频。因为TIMx_PSC控制寄存器具有缓冲,可以在运行过程中改变它的数值,新的预分频数值将在下一个更新事件时起作用。
预分频系数从1变到2的计数器时序图
ENTER TITLE计数模式
计数器从0累加计数到自动重装载数值(TIMx_ARR寄存器),然后重新从0开始计数并产生一个计数器溢出事件。
每次计数器溢出时可以产生更新事件;(通过软件或使用从模式控制器)设置TIMx_EGR寄存器的 UG位也可以产生更新事件。
设置TIMx_CR1中的UDIS位可以禁止产生UEV事件,这可以避免在写入预加载寄存器时更改影子寄存器。在清除UDIS位为’0’之前,将不再产生更新事件,但计数器和预分频器依然会在应产生更新事件时重新从0开始计数(但预分频系数不变)。
另外,如果设置了TIMx_CR1寄存器中的 URS(选择更新请求),设置UG位可以产生一次更新事件UEV,但不设置UIF标志(即没有中断或 DMA请求)。
当发生一次更新事件时,所有寄存器会被更新并(根据URS位)设置更新标志(TIMx_SR寄存器的UIF位):
● 传送预装载值(TIMx_PSC寄存器的内容)至预分频器的缓冲区。
● 自动重装载影子寄存器被更新为预装载值(TIMx_ARR)。
以下是一些在TIMx_ARR=0x36时不同时钟频率下计数器工作的图示例子。
计数器时序图:
内部时钟分频系数为1
内部时钟分频系数为2
ENTER TITLE时钟源
计数器的时钟由内部时钟(CK_INT)提供。
TIMx_CR1寄存器的CEN位和TIMx_EGR寄存器的UG位是实际的控制位,(除了UG位被自动清 除外)只能通过软件改变它们。一旦置CEN位为’1’,内部时钟即向预分频器提供时钟。下图示出控制电路和向上计数器在普通模式下,没有预分频器时的操作。
ENTER TITLE调试模式
当微控制器进入调试模式(Cortex-M3核心停止)时,根据DBG模块中的配置位DBG_TIMx_STOP 的设置,TIMx计数器或者继续计数或者停止工作。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !